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

SQL Server 2005 記錄檔損壞?資料庫疑似狀態完整修復流程 (含無記錄檔情況)

     編輯:關於SqlServer

硬體故障、非正常關機等原因可能導致 SQL Server 2005 記錄檔 (LDF) 損壞,資料庫進入 疑似 狀態,事件日誌出現 Could not redo log record 等錯誤,且無法卸離、無法以 ATTACH_REBUILD_LOG 附加。

完整修復步驟 (以 MDF 檔案為基礎重建)

  1. 停止 SQL Server 服務。
  2. 備份 MDF 檔案 至其他位置(建議複製而非移動)。
  3. 啟動 SQL Server 服務。
  4. 確認備份完成後,在 Management Studio 中刪除 原資料庫。
  5. 建立同名新資料庫(檔案名稱也要相同)。
  6. 再次停止 SQL Server 服務。
  7. 用備份的 MDF 覆蓋 新資料庫的同名 MDF 檔案。
  8. 啟動 SQL Server 服務(資料庫將顯示為疑似/緊急模式)。
  9. 執行 ALTER DATABASE dbname SET EMERGENCY 設為緊急模式。
  10. 執行以下修復腳本:
USE master
DECLARE @databasename VARCHAR(255)
SET @databasename = '目標資料庫名稱'

EXEC sp_dboption @databasename, N'single', N'true'  -- 設為單一使用者模式
DBCC CHECKDB(@databasename, REPAIR_ALLOW_DATA_LOSS)  -- 允許資料遺失修復
DBCC CHECKDB(@databasename, REPAIR_REBUILD)          -- 重建索引等
EXEC sp_dboption @databasename, N'single', N'false'  -- 恢復多使用者模式

關鍵說明

  • 此法僅需 MDF 檔案,即使 LDF 遺失也可修復。
  • REPAIR_ALLOW_DATA_LOSS 可能導致資料遺失,請務必先備份 MDF。
  • 修復完成後,務必執行 DBCC CHECKDB 驗證一致性。

此流程為實務中最常用的「唯有 MDF 檔案」災難復原手法,建議平時演練熟悉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved