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