數(shù)據(jù)庫數(shù)據(jù)恢復(fù)環(huán)境:
某品牌存儲(chǔ)存放大小約80TB的SQL SERVER數(shù)據(jù)庫,數(shù)據(jù)庫包含兩個(gè)LDF文件,每10天生成一個(gè)500GB大小的NDF文件。

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)
數(shù)據(jù)庫故障&分析:
存儲(chǔ)損壞,SQL SERVER數(shù)據(jù)庫不可用。對(duì)數(shù)據(jù)庫文件進(jìn)行恢復(fù)后發(fā)現(xiàn)有幾個(gè)NDF文件大小變?yōu)?KB。
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)過程:
1、對(duì)故障存儲(chǔ)所有硬盤做鏡像備份,基于鏡像文件掃描數(shù)據(jù)庫碎片。
2、北亞數(shù)據(jù)恢復(fù)工程師根據(jù)NDF文件的頁面特征,按照文件號(hào)、頁號(hào)拼接碎片,重組生成這些0kb的NDF文件。
3、檢測數(shù)據(jù)庫文件。使用北亞自主研發(fā)的MSSQL文件檢測工具對(duì)所有數(shù)據(jù)文件進(jìn)行檢測,結(jié)果發(fā)現(xiàn)除了拼接出的NDF文件有少量的空頁之外,其他的文件都是正常的。
4、數(shù)據(jù)恢復(fù)工程師分析損壞lun后發(fā)現(xiàn)這些數(shù)據(jù)頁在存儲(chǔ)層面已經(jīng)不存在了。如果不能恢復(fù)這些數(shù)據(jù)頁,這幾個(gè)拼接出來的NDF文件就不能完全恢復(fù)。
5、嘗試附加數(shù)據(jù)庫,報(bào)錯(cuò) “處理數(shù)據(jù)庫的日志時(shí)出錯(cuò),如果可能請(qǐng)從備份還原。如果沒有可用的備份,可能需要重新生成日志”。
6、修改系統(tǒng)表,從系統(tǒng)表剔除掉最后添加的LDF文件,計(jì)算并修改校驗(yàn)。進(jìn)行無日志附加數(shù)據(jù)庫。報(bào)錯(cuò):“數(shù)據(jù)庫存在一致性錯(cuò)誤。”

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)
7、修改系統(tǒng)表,將系統(tǒng)表記錄這幾個(gè)NDF文件的塊數(shù)量的值改為和掃描拼接出來的NDF文件的塊數(shù)量一致,同時(shí)更改這幾個(gè)NDF文件首頁,使得數(shù)據(jù)庫中記錄的文件的塊數(shù)量和拼接出來的NDF的塊數(shù)量一致,計(jì)算并修改校驗(yàn)值。
8、無日志附加數(shù)據(jù)庫,報(bào)錯(cuò)數(shù)據(jù)庫存在一致性錯(cuò)誤。

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)
9、逐個(gè)修改系統(tǒng)表中這幾個(gè)損壞的NDF文件的塊數(shù)量,使其值等于報(bào)錯(cuò)塊前一頁。分析報(bào)錯(cuò),由于空頁都出現(xiàn)在這幾個(gè)NDF文件后面的十幾個(gè)塊中,截?cái)辔募?duì)數(shù)據(jù)完整性影響不大。重新修改系統(tǒng)表和NDF文件,將數(shù)據(jù)庫中記錄NDF塊數(shù)量的值改至報(bào)錯(cuò)的前一頁,計(jì)算并修改校驗(yàn)。
10、重新進(jìn)行無日志附加數(shù)據(jù)庫,報(bào)錯(cuò)“由于數(shù)據(jù)庫沒有完全關(guān)閉,無法重新生成日志”。

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)
11、修改NDF文件中的數(shù)據(jù)庫的狀態(tài)值,讓數(shù)據(jù)庫認(rèn)為是完全關(guān)閉的。重新附加數(shù)據(jù)庫成功。

北亞數(shù)據(jù)恢復(fù)——SQL SERVER數(shù)據(jù)恢復(fù)
數(shù)據(jù)庫恢復(fù)數(shù)據(jù)驗(yàn)證:
數(shù)據(jù)庫文件成功附加后,用戶通過數(shù)據(jù)庫中的對(duì)象進(jìn)行查詢、驗(yàn)證,表中信息完整,確認(rèn)恢復(fù)出來的數(shù)據(jù)有效。
審核編輯 黃昊宇
-
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
712瀏覽量
18983 -
SQL Server
+關(guān)注
關(guān)注
0文章
21瀏覽量
13640
發(fā)布評(píng)論請(qǐng)先 登錄
MySQL數(shù)據(jù)庫備份恢復(fù)方式對(duì)比
Oracle數(shù)據(jù)庫ASM實(shí)例無法掛載的數(shù)據(jù)恢復(fù)案例
mysql數(shù)據(jù)恢復(fù)—mysql數(shù)據(jù)庫表被truncate的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫慢查詢分析與SQL優(yōu)化實(shí)戰(zhàn)技巧
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—服務(wù)器異常斷電導(dǎo)致Oracle數(shù)據(jù)庫故障的數(shù)據(jù)恢復(fù)案例
Oracle數(shù)據(jù)恢復(fù)—格式化分區(qū)導(dǎo)致Oracle數(shù)據(jù)庫報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫文件丟失的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫被加密如何恢復(fù)數(shù)據(jù)?
oracle數(shù)據(jù)恢復(fù)—oracle數(shù)據(jù)庫誤執(zhí)行錯(cuò)誤truncate命令如何恢復(fù)數(shù)據(jù)?
SQLSERVER數(shù)據(jù)庫是什么
MySQL數(shù)據(jù)庫是什么
分布式存儲(chǔ)數(shù)據(jù)恢復(fù)—虛擬機(jī)上hbase和hive數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例
不用編程不用聯(lián)網(wǎng),PLC和儀表直接對(duì)SQL接數(shù)據(jù)庫,有異常時(shí)還可先將數(shù)據(jù)緩存
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)——MongoDB數(shù)據(jù)庫文件拷貝后服務(wù)無法啟動(dòng)的數(shù)據(jù)恢復(fù)
SQL SERVER數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例
評(píng)論