数据库版本为sqlserver2008
早上公司断电,服务器启动后有一个数据库编程可疑状态无法查询,在网上搜了下,执行了以下命令
1、修改数据库为紧急模式
ALTER DATABASE jd13dafa SET EMERGENCY
2、使数据库变为单用户模式
ALTER DATABASE jd13dafa SET SINGLE_USER
3、修复数据库日志重新生成,此命令检查的分配,结构,逻辑完整性和所有数据库中的对象错误。当您指定“REPAIR_ALLOW_DATA_LOSS”作为DBCC CHECKDB命令参数,该程序将检查和修复报告的错误。但是,这些修复可能会导致一些数据丢失。
DBCC CheckDB (jd13dafa , REPAIR_ALLOW_DATA_LOSS)
4、使数据库变回为多用户模式
ALTER DATABASE jd13dafa SET MULTI_USER
在执行CheckDB时报错,然后数据库可以查询了,但是发现很多表和视图查询时报错“数据库页已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作”
最后把还能用的表导了出来,重新创建的数据库,唉,就这样吧
http://www.cnblogs.com/whai/p/5118646.html
虽然我们用的oracle。但应该是一样的原因吧。
http://www.cnblogs.com/whai/p/5118646.html
已经在执行下面的语句了,当前还有没有别的办法
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
ALTER DATABASE A_LinTaoOA SET EMERGENCY
GO
sp_dboption 'A_LinTaoOA', 'single user', 'true'
GO
DBCC CHECKDB('A_LinTaoOA','REPAIR_ALLOW_DATA_LOSS')
GO
ALTER DATABASE A_LinTaoOA SET ONLINE
GO
sp_configure 'allow updates', 0 reconfigure with override
GO
sp_dboption 'A_LinTaoOA', 'single user', 'false'
GO
http://www.bubuko.com/infodetail-1306523.html
之前也遇到过类似问题
上面给出的三个其实是一个方法,并且不好用呀