當SQL SERVER數據庫狀態為質疑(SUSPECT)狀態時,我們可以用以下方法來處理:
1. 修改數據庫為緊急模式:ALTER DATABASE DBName SET EMERGENCY .
2. 檢查數據庫的完整性:DBCC CHECKDB(‘DBName’)
3. 檢查沒有錯誤則恢復數據庫為正常模式:ALTER DATABASE DBName SET ONLINE;
4 如檢查數據庫有錯誤則修改數據庫為單用戶模式,依情況選擇以下命令行進行修復數據;
- DBCC CHECKDB('DBName', REPAIR_FAST);
- DBCC CHECKDB('DBName', REPAIR_REBUILD);
- DBCC CHECKDB('DBName', REPAIR_ALLOW_DATA_LOSS);
修復完成后將數據庫改為正常模式,重啟SQL服務或重啟服務器。
- 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) /*如果必要允許丟失數據修復,數據庫修復需在單用戶模式下進行
-
1. 關掉所有能訪問數據庫的程序, 比如iis和windows服務. 保證不會有連接請求 數據庫
ALTER DATABASE nopapp SET EMERGENCY .設置緊急模式
2. 用sp_who2查看連接, 用kill {pid} 殺死連接
3. 切到單用戶下.
4. dbcc 修復數據
5. 切到多用戶或者先重啟數據庫實例再切.
6. ALTER DATABASE nopapp SET ONLINE;