無法恢復被刪除的SQL Server數據庫文件?試試這種方法!
瀏覽量: 次 發布日期:2023-08-17 21:49:16
無法恢復被刪除的sql server數據庫文件?試試這種方法!
隨著計算機中數據存儲管理技術的飛速發展,越來越多的應用領域采用數據庫來存儲和處理信息資源。同時,數據庫文件又容易因誤操作或者惡意破壞而遭到刪除。因此,恢復被刪除的數據庫文件具有極高的實用價值。
SQL Server數據庫文件被刪除后,其存儲于磁盤中的數據并不會被立刻抹除,但是文件系統中的元信息可能被刪除或者覆蓋,該情況下無法通過文件系統恢復刪除的數據文件。由于數據庫通常會存儲大量數據,數據文件相對較大,并且會隨著數據的不斷錄入而持續增長。這些因素導致數據文件在磁盤中存儲時會大量分片,通過文件頭特征的簽名恢復手段無法有效地恢復刪除文件。此時,本文中的文件雕復方法可有效地恢復刪除的數據文件。
關于SQL Server數據庫
基礎知識篇
在詳細介紹文件雕復方法之前,效哥先帶大家簡單認識一下SQL Server數據庫。SQL Server是微軟推出的企業級關系型數據庫,具有高性能、高易用性、可伸縮性好、與相關軟件集成度高等優點,可方便快捷地構建高可用和高性能的數據應用程序,被廣泛應用于各種信息管理系統、辦公自動化系統、決策支持系統等。在數據庫使用排名中,SQL Server以較大優勢常年占據第三的位置。
2023年1月數據庫使用排名,來源:DB-Engines
SQL Server數據庫的文件結構
進階理論篇
以上淺表概念僅勾勒了SQL Server的輪廓,我們還需要對其形成更深層次的了解。通過研究SQL Server數據庫的文件結構,可以發現文件數據被劃分為固定大小的片段,該片段稱為“頁”。頁的大小一般為8192個字節。頁也是SQL Server數據庫存儲數據的基本單元。文件結構如下圖所示:
研究發現,每個頁的前0x60個字節都具有固定的結構,稱為“頁頭”,頁頭結構如下圖所示:
上述頁頭結構中,每一項都具有特定的取值范圍,并且部分取值范圍極小,構成了區別于非SQL Server數據庫文件數據的獨特特征。特別地,頁頭中的m_pageId為頁ID,它是頁的邏輯編號,數據文件中的頁ID按照從0開始依次遞增的順序進行編號。
SQL Server數據庫文件碎片掃描
恢復步驟一
根據前面所述,頁頭特征可有效區分數據片段是否為SQL Server數據庫文件的頁,為碎片掃描提供了理論依據。
我們需要從頭至尾讀取磁盤數據,按扇區檢查數據。假定數據為SQL Server數據庫文件的頁,檢查頁頭結構中的每一項值是否在取值范圍內。若頁頭檢查通過,則認為從該位置開始的8192個字節數據為一個頁,并從該位置的8192個字節后繼續檢查數據;否則,繼續檢查下一個扇區的數據。
通常情況下,會出現前后相接的多個頁。若它們的頁ID是連續遞增的,則認為它們屬于同一個數據文件,合并為一個文件碎片;否則,認為它們屬于不同數據文件,分散為多個文件碎片。
掃描完磁盤后,將得到大量文件碎片,下一步則是對碎片進行重組,得到一個或者多個數據文件。
SQL Server數據庫文件碎片重組
恢復步驟二
掃描完碎片后,會有兩種情況:
情況一
01
磁盤上僅有一個數據文件。該情況下碎片重組較為簡單,將所有碎片按照頁ID從小到大排列,組合為數據文件,完成恢復。
情況二
02
磁盤中存在多個數據文件,這也是實際應用中最為常見的情況。該情況下碎片重組較為復雜,難點主要在如何區分每個碎片屬于哪個文件,特別是在部分文件碎片被覆蓋而丟失的時候,非常容易出現重組錯誤。
由于每個數據文件中的數據都有一定差異,經過大量深入的研究分析,已發現多個SQL Server數據特征的提取方法。經過驗證,可從多個維度去收集和轉換每個文件碎片的數據特征。在此基礎上,將特征相似且頁ID不存在沖突的文件碎片按照頁ID從小到大排列,組合為數據文件,完成恢復。該情況下會恢復出多個數據文件。
效哥小結
Summary
本文介紹了一種恢復刪除的SQL Server數據庫文件的方法——文件雕復方法,該方法區別于傳統恢復手段,不依賴于文件系統,直接從磁盤數據中提取文件碎片,并將文件碎片重組為數據文件,在文件多分片情況下依然有效。
END
上述文件雕復方法已被融合于DBF6300數據庫取證分析系統當中,助力了無數案件偵查過程中的數據恢復與提取。但在DBF6300之外,還有一款產品同樣具備數據庫恢復功能。
全介質數據恢復取證產品
DRP6700數據恢復先鋒系統
DRP6700支持廣泛、功能強大,集計算機恢復、手機數據恢復、監控視頻恢復、數據庫恢復于一體,是數據恢復軟件中的「六邊形戰士」;一款軟件提供多重數據恢復功能,是性價比追求者的不二之選。近期,我們還對DRP6700進行了升級,其數據庫提取恢復能力得到進一步強化。
(公檢法相關行業客戶?免費試用?:效率源公眾號后臺回復“試用”,即可進入產品試用通道。)
南京兆柏數據恢復中心 南京兆柏數據恢復中心 南京兆柏數據恢復中心
. 數據庫的恢復模式有哪些,SQL Server數據庫的恢復模式詳解
. SQL Server 恢復掛起狀態,原因、診斷與解決方法
. sqlserver備份到其他服務器,SQL Server數據庫備份到其他服務器的實用
. 2008數據庫怎么還原數據庫,SQL Server 2008 數據庫還原指南
. sqlserver數據庫恢復掛起狀態,什么是SQL Server數據庫恢復掛起狀態?
. sqlserver數據庫恢復50g大約多少時間,了解SQL Server數據庫恢復
. sql server數據庫顯示恢復掛起,什么是SQL Server數據庫恢復掛起?
. sqlserver數據庫恢復進度,什么是SQL Server數據庫恢復進度?
. sqlserver數據庫恢復步驟,SQL Server數據庫恢復步驟
. sqlserver數據庫恢復數據,什么是SQL Server數據庫恢復數據?
. sqlserver數據庫恢復,什么是SQL Server數據庫恢復?
. sqlserver數據庫恢復掛起什么導致的,什么是SQL Server數據庫恢復掛起
. sqlserver數據庫恢復掛起,什么是SQL Server數據庫恢復掛起?
. sqlserver數據庫恢復工具,什么是SQL Server數據庫恢復工具?
. sqlserver數據庫恢復模式,什么是SQL Server數據庫恢復模式?
. sqlserver數據庫恢復掛起怎么解決,什么是SQL Server數據庫恢復掛起?
. sqlserver誤刪數據庫怎么恢復,什么是SQL Server誤刪數據庫
. 不支持的sql server版本怎么解決,不支持的sql server版本
. MySQL server has gone away,為什么MySQL server