修復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




--------------------------------------------------------------------------------------

- 版權聲明:

- 如在本頁面內無特別說明,本文內容均爲[李大仁博客]原創,本文版權歸[李大仁博客]所有。

- 歡迎轉載,轉載請務必在文章頁面明顯位置提供原文鏈接並註明出處。歡迎您在轉載本文時保留本段聲明。

- 文章標題:修復SQLServer2005/2008/2012數據庫質疑/Suspect狀態

- 獨立博客:李大仁博客

- 永久鏈接:http://www.lidaren.com/archives/1499

--------------------------------------------------------------------------------------

以上內容由博客自動發佈工具自動發佈,最終顯示內容和效果會與原文內容有所偏差,敬請諒解。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章