999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

MS SQL SERVER數據庫恢復方法實例

2017-09-22 10:09:46李寧
進出口經理人 2017年9期
關鍵詞:恢復數據庫

李寧

摘 要:MS SQL SERVER的數據庫恢復的案件實例和恢復還原的方法和原理。筆者在2011年曾經協助我院自偵部門辦理過一件貪污案件,在案件中涉及恢復一個MS SQL SERVER的數據庫。在經過常規的數據恢復方法無法正常恢復的情況下,經專家指點使用數據庫逆向還原的方法恢復了數據。

關鍵詞:MS SQL SERVER 數據庫;恢復;還原

一、恢復數據的過程

筆者拿到證據硬盤后首先對硬盤做了鏡像拷貝,保證證據硬盤沒有收到污染和破壞。其次,使用常用數據恢復軟件對鏡像硬盤進行掃描,試圖恢復數據庫的MDF文件或者備份文件。但是掃描結果是多個備份文件已經被刪除,并在硬盤上找不到任何刪除的數據庫的文件名和存儲位置信息。顯然常規方法行不通,筆者經過多方查找資料和聯系專家,經專家指點找到一種恢復數據庫的方法即利用數據庫MDF文件的數據硬盤頁式存儲結構信息,逆向還原MDF 文件。實際做法如下:

1、首先定義數據頁特征:MDF文件的數據頁大小為8K,應該符合以下幾個條件:第0字節為1, 0x40字節至0x60字節全為0。當數據庫只有一個mdf文件時,屬于該mdf文件的頁0x24字節為1, 0x25字節為0, 頁號記錄在0x20 處,從0開始。

2、建立一個日志文件1.log,對鏡像硬盤進行遍歷. 然后讀取每一個扇區,檢查是否符合數據頁要求。如符合,輸出0x20處,長度為4的頁id, 同時輸出當前扇區號到1.log文件。到這樣就能夠得到一個記錄了格式符合SQL數據頁的位置和頁號的日志。

3、對1.log中,上下兩行頁號的差等于扇區的差除以16(數據頁大小為16個扇區)的話, 可以認為這兩個數據頁連續。這樣,當遇到數據頁不連續時,可以將上一頁作為一個文件碎片的結束,而不連續的那個頁作為下一個文件碎片的開始。記錄下每一個碎片的開始扇區, 結束扇區,開始數據頁號,結束數據頁號, 以及包含頁數量。將這些信息記錄在2.log文件中。

4、第0號頁中包含了數據庫文件的總頁數, 其位置在0xAF到0xB2中。根據這個長度創建一個空文件1.mdf。

5、如果鏡像硬盤中只包含一個數據庫,2.log中的數據可以直接使用,將記錄的對應扇區中的數據頁拷貝到1.mdf中。如果包含多個數據庫,可以手工調整,例如只保留其中物理位置比較接近,較完整,且能夠逆向還原整個數據庫。

二、逆向還原數據庫的原理

(一)數據庫文件數據頁結構分析

SQL Server的MDF文件是頁式存儲格式。文件被劃分成若干數據頁。數據頁是包含所有非文本或圖像的數據的結構。就像使用SQL Server中的其他類型的頁面一樣,數據頁面具有8KB(或8192字節)的固定大小。它們由三個主要部分組成:頁面標題、數據行和行偏移量數組,在每個數據頁中,頁面標題占用了前96個字節(剩下的8096字節用于數據和行偏移量)數據頁的頁號pageID是從0開始, 順序排列。

(二)文件RAW恢復方法

通過對整個磁盤按扇區逐一掃描,找出文件頭和文件腳信息的這種恢復技術叫做RAW文件恢復。RAW文件恢復方式可恢復一些特定類型的文件,也經常用于恢復SQL Server 數據庫 .MDF文件。

RAW文件恢復程序按以下工作步驟;

在硬盤上按扇區同步搜索一種或多種文件類型的文件頭。如果找到任何一個文件頭,則保存這些數據到一個文件,同時檢查下面4個條件,關閉和保存該文件。

1、找到該文件的文件頭;

2、找到相同文件類型的另一個文件頭;

3、找到另一個文件類型的一個文件頭;

4、當找不到文件腳或其他此類文件頭時,計算文件長度(某些類型的文件,其長度保存在文件前部或按預先設定的文件長度的最大值)。

(三)基于數據庫文件頁式存儲格式的恢復方法

利用數據庫文件的頁式存儲格式重建.mdf文件,首先確定要恢復的數據庫文件在硬盤上的第0頁的位置,即查找pageType = 0F的頁。在第0頁可獲取文件的總頁數,根據總頁數創建一個與要重建的文件等長度的空文件(文件的內容全為0)。遍歷整個硬盤,根據頁號pageID提取數據頁,將數據頁寫入已經創建好的空文件的對應位置。寫入所有的頁數據或硬盤遍歷完畢后,文件的重建即可完成。設新創建的空文件為 F,

則 F =(n=總頁數)

Fi 為新建空文件的第i頁,用 Si 表示在硬盤上查找到的pageID = i的數據頁,

令 Fi = Si ,文件F 將被重建成數據庫文件。

但在實際恢復過程中將會遇到以下兩種情況:

1、Si = { },即Si 不存在;

2、Si 不唯一;

(四)數據庫文件的低層恢復

重建的數據庫文件可能不能直接使用,主要原因是由于數據庫文件有缺頁。如果有缺頁Si在文件的用戶表的位置上,可以通過修改 Si-1 和 Si+1 的 nextPage 和 prePage修復,即 Si-1 的 nextPage = i+1, Si+1 的prePage = i-1, 當然這是有損修復。

如果重建的數據庫文件缺頁太多或缺頁在文件的系統表的位置上,數據庫文件就不可能被數據庫直接使用,因此必須通過直接提取用戶表的數據。SQL Server 主要有4張系統表記錄了數據文件的頭信息、系統表信息和用戶表信息,它們是 sysobjects、sysindexes、syscolumns 和systypes, 通過這4張表記錄的信息再結合數據頁的objID 就能將指定的用戶表的數據完整的或部分的提取出來,轉換成文本文件格式或其他數據格式。endprint

猜你喜歡
恢復數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
NUB恢復ORACLE數據庫
利用存儲系統恢復服務器系統
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2010年20期)2010-10-19 01:48:32
主站蜘蛛池模板: 国产伦片中文免费观看| 色综合中文字幕| 超级碰免费视频91| 国内精品视频| 久草性视频| 中文字幕人妻无码系列第三区| 99视频只有精品| 911亚洲精品| 91在线高清视频| 99久久精品国产自免费| 2022精品国偷自产免费观看| 国产成人调教在线视频| 精品国产自在在线在线观看| 久久99精品久久久久纯品| www成人国产在线观看网站| 91小视频在线观看| 午夜精品久久久久久久99热下载| 国产99精品久久| 欧美不卡视频一区发布| 91国内外精品自在线播放| 高清不卡毛片| 日韩a级片视频| 三级国产在线观看| 精品国产网站| 色综合中文字幕| 亚洲欧美另类日本| 国产jizzjizz视频| 久久久久久久久亚洲精品| 欧美一级在线| 国产极品美女在线播放| 青青久久91| 国产在线一二三区| 国产96在线 | 国产成人资源| h网址在线观看| 久久精品国产999大香线焦| 福利在线免费视频| 72种姿势欧美久久久大黄蕉| 中文无码精品A∨在线观看不卡| 欧美综合区自拍亚洲综合天堂| 国产精品深爱在线| 日韩精品久久无码中文字幕色欲| 五月综合色婷婷| 2022国产91精品久久久久久| 国产精品自拍露脸视频| 亚洲中文久久精品无玛| 久久精品这里只有国产中文精品| 中国黄色一级视频| 日韩色图在线观看| 草逼视频国产| 国产正在播放| 亚洲三级电影在线播放| 人妻夜夜爽天天爽| 亚洲精品欧美重口| 欧美精品一区在线看| 久久这里只精品国产99热8| 国产第一页免费浮力影院| 97成人在线观看| 国产精品所毛片视频| 成人日韩视频| 国产亚洲视频在线观看| 国产特级毛片aaaaaaa高清| 日韩欧美中文字幕一本| 重口调教一区二区视频| 高清久久精品亚洲日韩Av| 亚洲视频免费播放| 久久影院一区二区h| 99精品高清在线播放| 色香蕉影院| 亚洲国产第一区二区香蕉| 国产精品yjizz视频网一二区| 中国国产高清免费AV片| 亚洲免费三区| 中文字幕色在线| 欧洲欧美人成免费全部视频| 国产精品性| 久久综合AV免费观看| 日韩一区二区在线电影| 亚洲黄网视频| 亚洲性视频网站| 成人欧美日韩| 国产后式a一视频|