某公司因為某個財務應用連接不上,要重啟服務器,服務器也有業務應用數據庫,雖然通知下去,但是并不是所有人都在意,可能有人沒有退出;而重啟服務器者采用了強行斷電關機然后重啟的辦法;結果造成業務數據庫無法正常使用,現象是能夠正常登錄,但是一些操作出錯;檢查服務器附加數據庫正常,但是備份失敗,檢測固態硬盤,發現三個柱面的壞區,六處共七八十個壞扇區;
一,硬盤掃描。首先掃描數據庫所在的D盤,詳細報告如下:

(D盤)磁盤檢測結果: 被檢測磁盤:HD1:NVMetigoSSD256GB(238GB) 檢測范圍:柱面 10484 - 24507 (該磁盤柱面總數:31130) 完成時間:2023-10-31 20:56:07 共檢測到 3 個壞道區域。詳細壞道信息如下:       柱面號     磁頭號       扇區號     扇區數目     柱面耗時(ms)   修復情況   當前錯誤信息        10522        163       42-57             16           32       未處理   數據錯誤(循環冗余檢查)。        10522        188        3-34             16           32       未處理   數據錯誤(循環冗余檢查)。        10522        212       43-58             16           32       未處理   數據錯誤(循環冗余檢查)。        10715        158       28-55             28            0       未處理   數據錯誤(循環冗余檢查)。        21621        199       51-58              8           16       未處理   數據錯誤(循環冗余檢查)。
E盤區域也有損壞,盤面掃描也有很多錯誤;
二、數據提取     一般的拷貝提取,是無法進行的,往往中斷退出。決定強行提取數據庫文件,使用diskgenius提取,使用提取的文件,用SQL命令和數據庫修復軟件進行修復,結果都不理想,后來發現拷貝數據不完整,存在跳躍現象、尾部有大量的數據填充,整個文件8.7G,填充差不多占10-20%;不壞才怪; 后來使用win-hex專業磁盤編輯提取、RST專業恢復軟件提取,跳過壞扇區,文件大小一點不差,沒壞部分完全提取。
三、數據庫修復
使用第一次提取的數據,使用斯泰勒數據庫修復軟件修復,雖然修復成功,但是使用存在錯誤,說明數據有損失,提取的文件存在問題,數據不全;
因此再次使用其它反復、其它工具,詳細設置,到單扇區級,最大限度的提取數據。感覺提取接近完美。 使用后來提取的數據,使用允許有損修復命令,修復成功,使用檢查完整無誤。而使用快速修復、重建索引都不行,存在兩個一致性錯誤,個別表ID有問題;
single用戶模式下,使用DBCC CHECKDB (''ytyl'' REPAIR_ALLOW_DATA_LOSS)修復;
四、更換硬盤,拷貝數據,還原系統和應用。
五、關于硬盤修復,數據無損修復 因為是固態硬盤,盤面壞道是無法修復的,曾經做過嘗試,不行; 而機械硬盤,遇到這種問題,大多數往往是邏輯壞道,正常無法讀取,但是是可以修復的,因為是磁性強弱問題導致的弱(軟)物理損壞,不是劃傷之類的硬物理損壞。修復之后,硬盤和數據都完全恢復正常。 |