資料庫進入 SUSPECT 模式、DBCC 檢測到一致性錯誤、備份不可用時的緊急修復。
-- 1. 設為單一使用者模式,強制回滾現有連線
ALTER DATABASE accp SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
-- 2. 設為緊急模式,允許系統管理員存取
ALTER DATABASE accp SET EMERGENCY;
GO
-- 3. 檢查損壞詳情
DBCC CHECKDB ('accp');
GO
-- 4. 依錯誤嚴重度依序嘗試修復
-- 輕微錯誤:快速修復
DBCC CHECKDB ('accp', REPAIR_FAST);
GO
-- 索引損壞:重建索引修復
DBCC CHECKDB ('accp', REPAIR_REBUILD);
GO
-- 嚴重損壞:允許資料遺失修復(最後手段)
DBCC CHECKDB ('accp', REPAIR_ALLOW_DATA_LOSS);
GO
-- 5. 恢復多使用者模式
ALTER DATABASE accp SET MULTI_USER WITH ROLLBACK IMMEDIATE;
GO
| 選項 | 適用情境 | 風險等級 |
|---|---|---|
| REPAIR_FAST | 輕微結構錯誤、向前相容性 | 低 |
| REPAIR_REBUILD | 索引損壞、非叢集索引重建 | 中 |
| REPAIR_ALLOW_DATA_LOSS | 資料頁損壞、配置錯誤 | 極高(會刪除損壞資料) |
DBCC CHECKDB 確認無錯誤DBCC CHECKDB 排程(建議離峰時段)CHECKSUM:ALTER DATABASE ... SET PAGE_VERIFY CHECKSUM