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