共計 1142 個字符,預計需要花費 3 分鐘才能閱讀完成。
這篇文章主要講解了“Sql Server 數據庫文件丟失要怎么恢復”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Sql Server 數據庫文件丟失要怎么恢復”吧!
故障描述:
5 塊 2T 硬盤組建 RAID5,劃分 LUN 供 windows 服務器使用。在 windows 服務器內裝有 Sql Server2008 數據庫。存儲空間內共有三個邏輯分區,大小分別為 500G、800G、2.3T。數據庫文件丟失,主要涉及五個數據庫,表個數約為 6000 個左右。丟失原因未知,且不能確定數據存儲位置。三個數據庫的大小分別為 8G、15G、20G。在文件丟失后服務器仍處于開機狀態,但并未寫入大量數據。
初檢流程:
1、使用 RAID 信息及內部數據塊信息重組 RAID。
重組 RAID
2、提取 LUN 內三個分區鏡像。
3、掃描文件系統內丟失文件,未找到被刪除數據庫文件。
4、初檢結果為數據庫文件丟失,通過文件系統角度無法恢復。
恢復流程:
1、制定恢復方案。在數據庫文件被刪除且判定為無法恢復文件后,只能通過掃描數據頁,并提取頁內記錄的方式進行恢復。
2、使用北亞自主編數據頁掃描程序掃描分區內數據頁并提取。在分別掃描兩個分區鏡像后發現 500G 系統盤內數據頁數量極少且數據頁斷裂情況嚴重,另一分區內掃描到數據頁個數較多。暫定此分區為數據庫文件存儲空間。
掃描數據頁
3、重組系統表。Sql Server 數據庫使用系統表來管理所有用戶表,在這些系統表內記錄了各表的列數、數據類型及約束信息等。解析系統表過程中發現提取出的數據頁內系統表損壞,無法正常讀取信息。在與客戶溝通后得知有備份文件,且備份完成后沒有大量改動表結構,系統表可用。
4、還原備份。
還原備份
5、分別提取三個庫中各表表結構信息
提取表結構信息
6、解析表結構腳本。將各表的列信息存入數據庫內便于后續使用。
掃描腳本文件
表結構信息存入數據庫
7、解析系統表獲取用戶表 id 信息、關聯表結構與數據頁。(為保護客戶隱私,后續步驟涉及用戶表表名及數據頁內數據部分均未截圖)
8、新建數據庫,使用北亞自主編寫軟件解析記錄并導入到恢復環境內。
9、整理恢復結果。在此分區內除數據庫文件外還存有備份文件若干,所以在導出記錄后可能存在重復數據,必須去重。編寫 SQL 存儲過程進行去重。
數據庫去重
10、客戶驗證數據。客戶在查驗過數據后表示數據可以接受,移交數據到客戶存儲設備,恢復成功。
感謝各位的閱讀,以上就是“Sql Server 數據庫文件丟失要怎么恢復”的內容了,經過本文的學習后,相信大家對 Sql Server 數據庫文件丟失要怎么恢復這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!