banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。