當SQL SERVER數據庫狀態為質疑(SUSPECT)狀態時,我們可以用以下方法來處理:
1. 修改數據庫為緊急模式:ALTER DATABASE DBName SET EMERGENCY .
2. 檢查數據庫的完整性:DBCC CHECKDB(‘DBName’)
3. 檢查沒有錯誤則恢復數據庫為正常模式:ALTER DATABASE DBName SET ONLINE;
4 如檢查數據庫有錯誤則修改數據庫為單用戶模式,依情況選擇以下命令行進行修復數據;
Code Snippet
- DBCC CHECKDB('DBName', REPAIR_FAST);
- DBCC CHECKDB('DBName', REPAIR_REBUILD);
- DBCC CHECKDB('DBName', REPAIR_ALLOW_DATA_LOSS);
修復完成后將數據庫改為正常模式,重啟SQL服務或重啟服務器。
Code Snippet
- ALTER DATABASE DBName SET EMERGENCY /* 修改數據庫為緊急模式*/
- ALTER DATABASE DBName SET SINGLE_USER /* 修改數據庫為單用戶模式*/
- ALTER DATABASE DBName SET MULTI_USER /* 修改數據庫為多用戶模式*/
- ALTER DATABASE DBName SET ONLINE /* 數據庫從緊急&單用戶&多用戶模式恢復為正常模式*/
- DBCC CHECKDB('DBName') /* 檢查數據庫完整性*/
- DBCC CHECKDB('DBName', REPAIR_FAST) /* 快速修復數據庫*/
- DBCC CHECKDB('DBName', REPAIR_REBUILD) /* 重建索引並修復*/
- DBCC CHECKDB('DBName', REPAIR_ALLOW_DATA_LOSS) /*如果必要允許丟失數據修復,數據庫修復需在單用戶模式下進行