SQL SERVER 2005 数据库状态为“可疑”的解决方法


在被设置为“可疑”后很纳闷,之前没有遇到此类情况,问了几个前辈依然未找到问题所在。最后还是解决了,现在给大家分享我的解决办法:

 

首先,不能使得数据库脱机、分离等操作,在这种情况下,数据库不能惊醒备份的。如果你真的使得数据库脱机,就再也没有办法解决了。我也干过这件傻事,千万不能重蹈覆辙哦。(切记!切记!)

其次,执行下列代码,将MyDB换成你自己的数据库。

USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE MyDB SET EMERGENCY
GO
sp_dboption 'MyDB', 'single user', 'true'
GO
DBCC CHECKDB('MyDB','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE MyDB SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'MyDB', 'single user', 'false'
GO

接着,尽管这样能够使得数据库恢复正常,至少可以让对数据库进行操作。包括查询、更新等。但是这并没有真正的解决问题,只是修改了数据库的“可疑”状态。

下面就要找具体问题所在,发生这种情况的缘由很多,或是数据库操作、或是触发器、存储过程、索引、日志。

如果你的数据库不是很大,其间的数据不多,希望能够重新建立数据库,然后再导入数据。

如果很大,而且很重要不能及时更新的话,希望大家搜索一下数据库或者系统、应用程序的日志,看一下日志记录,或许你会发现一些可疑的苗头。

最后,发现数据库在记录日志的时候出现了问题,建议删除久的日志文件(当然主日志文件是不能删除的),你可以添加新的日志文件。并检查数据库、日志的自增长是否正常。

转自:http://solin.cn.blog.163.com/blog/static/53640237200991521229795/

方法二:

问题背景:

日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无故停止数据库,从而导致Sql Server 2005数据库不正常中断,当再次打开数据库时会发现某些数据库会被标记为“可疑”(suspect),即在数据库名旁加上了黄色的惊叹号,这时数据库就不能再被打开了,但数据库的结构及数据内容都还是存在的。

解决方法:

当数据库发生这种操作故障时,可以按如下操作步骤可解决此方法,打开数据库里的Sql 查询编辑器窗口,运行以下的命令。

1、修改数据库为紧急模式

ALTER DATABASE Sharepoint_Config SET EMERGENCY

2、使数据库变为单用户模式

ALTER DATABASE Sharepoint_Config SET SINGLE_USER

3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。

DBCC CheckDB (Sharepoint_Config , REPAIR_ALLOW_DATA_LOSS)

4、使数据库变回为多用户模式

ALTER DATABASE Sharepoint_Config SET MULTI_USER

5、开始->运行->输入cmd->打开DOS命令窗口,输入以下命令重启数据库服务

Net stop mssqlserver --停止服务

Net start mssqlserver --启动服务

再次,打开Sql Server 2005时被标记为“可疑”的数据库已恢复正常状态。

 


Whatever is worth doing is worth doing well.