sql server資料庫錯誤資料恢復(資料庫連線失效,無法附加查詢)
1.伺服器硬體裝置清單
2.故障描述
需要進行資料恢復的伺服器是一臺r520型號儲存,共有7塊SAS硬碟分別組成raid1和raid5兩組磁碟陣列。主要sql server資料庫存放在C盤中,在使用過程中,客戶發現C盤容量即將佔滿,於是將資料庫路徑指向了D盤,在D盤生成了一個.ndf檔案。客戶在繼續使用了大約10天之後,資料庫出現故障,連線失效,無法正常附加查詢。
3.備份資料
考慮到資料的安全性以及可還原性,在做資料恢復之前需要對所有源資料做備份,以防萬一其他原因導致資料無法再次恢復。使用dd命令或winhex工具將所有磁碟都映象成檔案。4.故障分析
(a)分析故障原因
由於資料庫檔案所在磁碟容量不足,導致資料庫無法繼續正常執行,出現邏輯錯誤(b)分析RAID組結構
客戶伺服器上共7塊300G硬碟,其中2塊硬碟做RAID 1,用於安裝作業系統,其餘5塊硬碟做RAID 5存放資料。分析RAID 1和RAID 5的相關結構,重組虛擬出RAID 1和RAID 5,檢視其中資料。
(c)分析原始資料庫檔案
由於客戶在資料庫發生故障之後,進行過多次資料庫恢復嘗試,並且每一次嘗試都是在源環境下進行的,導致原始資料庫檔案被更改覆蓋,並且磁碟空間被多次複寫,無法使用嘗試恢復之後的資料庫檔案進行修復。詢問客戶得知,客戶在資料庫發生故障的時候,備份過一分原始的故障資料庫檔案。
5.資料庫修復
從虛擬出的RAID 5空間中將客戶之前備份的資料庫檔案複製出來,嘗試在資料庫中附加,附加失敗,錯誤提示如下:圖一:
錯誤提示主資料庫檔案和次級資料庫檔案不匹配,檢視.ndf檔案底層,發現.ndf檔案中幾乎沒有資料,嘗試取消.mdf檔案和.ndf檔案之間關聯,只用.mdf檔案進行附加。
嘗試後發現,只用.mdf檔案附加時也發生錯誤,但是錯誤提示改變
圖二:
此時錯誤提示日誌檔案(.ldf)和資料庫檔案(.mdf)不匹配。
之後對資料庫嘗試進行無資料庫附加,附加成功。但是發現資料庫系統表損壞,無法正常使用。
圖三:
對資料庫的系統表嘗試修復,但由於系統表損壞過於嚴重,無法修復。
資料庫記錄提取
解析資料庫檔案中的資料庫記錄
編寫相應的程式提取資料庫檔案中的資料庫記錄
根據客戶以前的資料庫備份獲取資料庫中的表結構
重構表結構並肩提取出的資料庫記錄匯入到新的表中
6.資料驗證
由客戶對提取出的資料庫記錄進行驗證,所有資料完全恢復,本次資料恢復成功。7.資料恢復結論
在資料庫使用過程中,要合理分配資料庫檔案所在磁碟空間,及時清理垃圾資料,保證資料庫的正常、安全執行。來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2152267/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- SQL Server資料庫出現邏輯錯誤的資料恢復SQLServer資料庫資料恢復
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】SqlServer資料庫無法讀取的資料恢復案例資料庫資料恢復SQLServer
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- SQL Server DACPAC資料庫部署錯誤SQLServer資料庫
- 解決無法連線SQL Server資料庫的方法BWSQLServer資料庫
- 【資料庫資料恢復】誤truncate table的Oracle資料庫資料恢復方案資料庫資料恢復Oracle
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 【資料庫資料恢復】Oracle資料庫誤truncate table的資料恢復案例資料庫資料恢復Oracle
- iis網站資料庫無法連線資料庫網站資料庫
- c#連線SQL Server資料庫C#SQLServer資料庫
- 【資料庫資料恢復】突然斷電造成Syabse資料庫無法啟動的資料恢復案例資料庫資料恢復
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 【oracle資料庫資料恢復】誤操作導致的資料庫誤刪除的資料恢復案例Oracle資料庫資料恢復
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- 【資料庫資料恢復】無法啟動MongoDB服務的資料恢復案例資料庫資料恢復MongoDB
- SQL Server資料庫恢復常見問題SQLServer資料庫
- 阿里雲資料庫連線資料庫錯誤:如何解決?阿里資料庫
- 【資料庫資料恢復】LINUX環境下ORACLE資料庫誤刪除的資料恢復資料庫資料恢復LinuxOracle
- 【資料庫資料恢復】ASM磁碟組掉線的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- sql server資料庫連線失敗/無法附加解決過程SQLServer資料庫
- 資料庫資料恢復——Windows無法啟動MongoDB服務的資料恢復案例資料庫資料恢復WindowsMongoDB
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- SQL Server 跨資料庫查詢SQLServer資料庫