【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程
資料庫資料恢復環境:
某公司儲存上部署SQL SERVER資料庫,資料庫中有1000多個檔案,該SQL SERVER資料庫每10天生成一個NDF檔案,資料
庫包含兩個LDF檔案。
資料庫故障&分析:
儲存裝置出現故障導致SQL SERVER資料庫異常,經過檢測發現有幾個ndf檔案大小變為0KB。
雖然儲存故障導致NDF檔案大小變為0KB,但是資料恢復工程師推測NDF檔案還存在於磁碟中。可以透過編寫資料庫掃描碎
片程式掃描資料庫碎片,透過碎片拼接來恢復NDF檔案,最後修復資料庫。
資料庫資料恢復過程:
1、將故障儲存中所有磁碟以只讀方式進行全盤備份,後續的資料分析和資料恢復操作都基於映象檔案進行,避免資料恢復
過程中可能對原始資料造成的二次破壞。
2、由北亞企安資料恢復工程師編寫資料庫碎片掃描程式掃描資料庫碎片。
3、根據NDF檔案的頁面特徵,按照檔案號,頁號拼接掃描出來的資料庫碎片,重組生成出這些0kb的NDF檔案。
4、使用北亞企安自主開發的MSSQL檔案檢測工具對所有資料檔案進行檢測,結果發現拼接出的4個NDF檔案有少量的空數
據頁,其他檔案正常。
5、進一步分析儲存中損壞的lun,發現這些空資料頁在儲存層面已經完全損壞,無法恢復,即這4個NDF檔案不能完全恢復。
6、嘗試附加資料庫,報錯 “處理資料庫的日誌時出錯,如果可能請從備份還原。如果沒有可用的備份,可能需要重新生成
日誌”。
7、修改系統表,從系統表剔除掉最後新增的LDF檔案,計算並修改校驗。嘗試進行無日誌附加資料庫,報錯:“資料庫存在
一致性錯誤”。
8、修改系統表中這4個損壞的NDF檔案的塊數量,使資料庫中記錄的檔案的塊數量和拼接出來的NDF的塊數量一致,計算並
修改校驗值。無日誌附加資料庫,仍然報錯“資料庫存在一致性錯誤”。
9、由於空資料頁都出現在這4個NDF檔案後面的十幾個塊中,截斷檔案對資料完整性影響不大。重新修改系統表和NDF檔案
,將資料庫中記錄NDF塊數量的值改至報錯的前一頁,計算並修改校驗。重新進行無日誌附加資料庫,報錯“由於資料庫沒
有完全關閉,無法重新生成日誌”。
10、修改MDF檔案中的資料庫的狀態值,讓資料庫認為是完全關閉的。重新附加資料庫,附加成功。
資料庫資料驗證:
資料庫檔案成功附加後,使用者透過資料庫中的物件進行初步查詢、驗證,經過反覆驗證後確認表中資訊正確,資料完整可用
。本次資料恢復工作完成。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2949144/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 伺服器資料恢復—透過拼接資料庫碎片恢復SqlServer資料庫資料的資料恢復案例伺服器資料恢復資料庫SQLServer
- 資料庫恢復過程資料庫
- 資料庫修復資料恢復資料庫資料恢復
- MSSQL資料庫資料恢復案例:ndf檔案大小變為0KB恢復資料SQL資料庫資料恢復
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- PostgreSQL 恢復大法 - 恢復部分資料庫、跳過壞塊、修復無法啟動的資料庫SQL資料庫
- 儲存崩潰資料恢復過程;資料恢復案例資料恢復
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 通過duplicat恢復資料庫資料庫
- 資料恢復新姿勢——通過ibd和frm檔案恢復資料資料恢復
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 資料恢復記錄:硬碟分割槽損壞修復SqlServer資料庫過程資料恢復硬碟SQLServer資料庫
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 【資料庫資料恢復】EXT3檔案系統下MYSQL資料庫恢復案例資料庫資料恢復MySql
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】linux系統下MYSQL資料庫資料恢復案例資料庫資料恢復LinuxMySql
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- MySQL 透過 binlog 恢復資料MySql
- 伺服器資料恢復案例:FreeNAS資料恢復過程記錄伺服器資料恢復
- 伺服器RAID資料恢復,磁碟陣列資料恢復過程伺服器AI資料恢復陣列
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 資料恢復:AMDU資料抽取恢復資料恢復
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer