当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) /*如果必要允许丢失数据修复,数据库修复需在单用户模式下进行