修复SQLServer2005/2008/2012数据库质疑/Suspect状态
昨天夜间机房断电后SQLServer2008服务器重启,早上Sharepoint系统不能登录,使用SQLServer的管理工具检查后发现,SharePoint_Config数据库上多了一个黄色的三角符号,并提示数据库为质疑/Suspect状态.
立即使用以下SQL脚本进行强制恢复数据库
USE master DECLARE @databasename VARCHAR(255) SET @databasename='SharePoint_Config' sp_configure 'allow updates',1 reconfigure WITH override --强制修改数据库状态 UPDATE master..sysdatabases SET STATUS = 16 WHERE name = @databasename --尝试恢复数据库 dbcc dbrecover(@databasename, IGNOREERRORS) |
结果还是质疑/Suspect状态,估计是数据库日志文件有损坏. 好在只是SharePoint_Config数据库,对用户数据没有影响。直接使用了以下方法进行了恢复数据库。
1.停止SQLServer服务
2.到SQLServer的数据库文件夹下备份SharePoint_Config和SharePoint_Config的Log数据
3.启动SQLServer服务
4.删除并创建新的同名SharePoint_Config数据库
5.停止SQLServer服务
6.到SQLServer的数据库文件夹下替换SharePoint_Config为之前备份的SharePoint_Config。
7.启动SQLServer服务
8.设置SharePoint_Config为emergency状态
ALTER DATABASE SharePoint_Config SET emergency |
9.恢复SharePoint_Config数据库(过程中出现大量恢复错误)
USE master DECLARE @databasename VARCHAR(255) SET @databasename='SharePoint_Config' --设置为单用户模式 EXEC sp_dboption @databasename, N'single', N'true' --恢复数据(允许数据丢失) dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS) --恢复数据(重建数据库结构) --dbcc checkdb(@databasename,REPAIR_REBUILD) --检查约束 —dbcc checkconstraints --恢复为多用户模式 EXEC sp_dboption @databasename, N'single', N'false' |
10.重新启动SQLServer服务
11.数据恢复完成,手动处理恢复后的数据和备份数据的差分
以上方法只适用于数据库文件完整,Log文件不完整或丢失的情况,如果数据库文件不完整,请注意不要使用。
参考网址
http://blog.csdn.net/htl258/article/details/4136908
http://blog.sina.com.cn/s/blog_75a555e401015o4z.html
Recent Comments