SQL Server 數據庫損壞修復


當數據庫損壞時可以在數據庫上先運行 DBCC CHECKDB,以了解損壞情況和相關信息。
根據備份修復:

  • 如果只有一個頁面被損壞,可以進行單頁面恢復。
  • 如果只有一個文件組被損壞,可以執行單個文件組還原。
  • 如果是非聚集索引損壞
BEGIN TRANSACTION;
ALTER INDEX IndexName ON TableName DISABLE;
ALTER INDEX IndexName ON TableName REBUILD WITH (ONLINE = ON);
COMMIT TRANSACTION;

 

注意事項:

  • 如果你的數據庫已損壞,請不要嘗試將其從實例中分離,因為可能無法再次附加連接它,因為已損壞。尤其是數據庫狀態為 SUSPECT的時候。
  • 如果你的 SQL Server 實例已損壞,並且數據庫也已損壞,請不要嘗試將其附加到較新版本的 SQL Server或升級,因為升級可能會失敗導致數據庫無法附加到任一版SQL Server 的舊版本或新版本。
  • 如果崩潰恢復正在運行,請不要試圖關閉 SQL Server 並刪除日志文件。這保證至少會導致數據不一致和最壞的損壞。崩潰恢復有時可能需要很長時間,具體取決於崩潰時必須回滾的打開事務的長度。
  • 某些情況下的損壞是無法修復(例如損壞的表元數據),這時"必須"使用備份或冗余副本還原。
  • 最后可以嘗試REPAIR_ALLOW_DATA_LOSS的方式進行修復(可能會丟失數據以進行修復)。由於損壞無法執行REPAIR_ALLOW_DATA_LOSS時將數據庫設置為緊急狀態(失敗的話可以嘗試先OFFLINE然后ONLINE)和單用戶模式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM