企業管理員中資料庫標示為 Suspect (置疑),無法正常存取。常見原因:記錄檔損毀、磁碟故障、非正常關機導致交易未完成。
.mdf、.ldf 至安全位置。USE MASTER;
GO
EXEC sp_configure 'allow updates', 1; RECONFIGURE WITH OVERRIDE;
GO
UPDATE sysdatabases SET status = 32768 WHERE name = 'YourDB_Name'; -- 設為 Emergency 模式
GO
EXEC sp_dboption 'YourDB_Name', 'single user', 'true';
GO
DBCC CHECKDB('YourDB_Name'); -- 檢查並嘗試修復
GO
UPDATE sysdatabases SET status = 28 WHERE name = 'YourDB_Name'; -- 恢復正常模式
GO
EXEC sp_configure 'allow updates', 0; RECONFIGURE WITH OVERRIDE;
GO
| Status | 含義 |
|---|---|
| 32768 | Emergency 模式:僅允許 sysadmin 進入,不執行復原,可讀取資料、匯出、DBCC 修復。 |
| 28 | 正常線上模式。 |
DBCC CHECKDB('YourDB_Name') 確認無錯誤。SQL Server 2005+ 提供 EMERGENCY、SINGLE_USER、REPAIR_ALLOW_DATA_LOSS 更完整的修復選項:
ALTER DATABASE YourDB SET EMERGENCY;
ALTER DATABASE YourDB SET SINGLE_USER;
DBCC CHECKDB('YourDB', REPAIR_ALLOW_DATA_LOSS); -- 最後手段,可能遺失資料
ALTER DATABASE YourDB SET MULTI_USER;
CHECKSUM 頁面驗證(ALTER DATABASE ... SET PAGE_VERIFY CHECKSUM)。DBCC CHECKDB 排程(建議每週)。RESTORE VERIFYONLY 定期測試。REPAIR_ALLOW_DATA_LOSS 會刪除損毀頁面,導致資料遺失。 僅在無備份可還原且業務接受遺失時使用。生產環境首選:從最後可用備份還原 + 記錄備份前滾。