首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2005 記錄檔 (LDF) 損壞修復完整流程

     編輯:關於SqlServer

硬體故障、非正常關機導致 LDF 損壞,資料庫呈現「置疑」、事件記錄 9003/824 錯誤、無法分離、ATTACH_REBUILD_LOG 失敗。修復流程:

修復步驟 (以資料庫 Test 為例)

  1. 停止 SQL Server 服務。
  2. 複製損壞資料庫的 MDF 檔案至備份位置。
  3. 啟動 SQL Server 服務。
  4. 確認 MDF 備份完成 → SSMS 刪除損壞資料庫。
  5. 建立同名新資料庫 (同檔名)。
  6. 停止 SQL Server 服務。
  7. 用備份 MDF 覆蓋新資料庫 MDF。
  8. 啟動 SQL Server 服務。
  9. 設定緊急模式:ALTER DATABASE Test SET EMERGENCY
  10. 執行修復腳本:

USE MASTER;
DECLARE @dbname VARCHAR(255) = 'Test';
EXEC sp_dboption @dbname, N'single', N'true';  -- 單一使用者
DBCC CHECKDB(@dbname, REPAIR_ALLOW_DATA_LOSS); -- 允許資料遺失修復
DBCC CHECKDB(@dbname, REPAIR_REBUILD);         -- 重建索引修復
EXEC sp_dboption @dbname, N'single', N'false'; -- 恢復多使用者

關鍵點

  • 此法**僅需 MDF**,LDF 遺失/損壞均可修復。
  • REPAIR_ALLOW_DATA_LOSS 可能刪除損壞頁/資料列,**務必先嘗試 REPAIR_REBUILD**;若無效再用前者。
  • SQL 2005+ 不再支援直接更新系統表 (sp_configure 'allow updates' 已移除),改用 ALTER DATABASE ... SET EMERGENCY。
  • 修復後驗證資料完整性、重建索引、更新統計資料。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved