硬體故障、非正常關機導致交易記錄檔損毀,資料庫進入 SUSPECT 狀態,無法分離、無法以 ATTACH_REBUILD_LOG 附加。本文提供經驗證的 僅靠 MDF 檔案重建資料庫 的 10 步驟修復流程,適用於 SQL Server 2005。
Could not redo log record、During redoing of a logged Operation... an error occurred。CREATE DATABASE ... FOR ATTACH_REBUILD_LOG 報錯 The log cannot be rebuilt because the database was not cleanly shut down。.mdf 檔案複製備份至其他位置。.mdf 覆蓋新資料庫的 .mdf。EMERGENCY 模式)。ALTER DATABASE dbname SET EMERGENCY 確保單一使用者模式。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'; -- 恢復多使用者
關鍵提醒:
REPAIR_ALLOW_DATA_LOSS 可能刪除損毀頁面導致資料遺失,務必先備份 MDF。DBCC CHECKDB 驗證一致性,並檢查業務資料完整性。ALTER DATABASE ... SET EMERGENCY、SET SINGLE_USER、DBCC CHECKDB ... REPAIR_ALLOW_DATA_LOSS、SET MULTI_USER 標準語法。