MSDB資料庫置疑的解決方法

Rain Man發表於2014-10-31

1.原因

機房停電,伺服器非法關機,導致MSDB資料庫被“置疑”

2.Msdb資料庫的作用

Msdb 資料庫供SQLServer 代理程式排程警報和作業以及記錄操作員時使用。比如,我們備份了一個資料庫,會在表backupfile中插入一條記錄,以記錄相關的備份資訊。

3.實現邏輯

由於Msdb資料庫並未儲存特別重要的資訊,因此可以從別的機器拷貝一份相同的msdbdata.mdf和msdblog.ldf覆蓋掉即可。

4.解決步驟

A伺服器為被“置疑”的伺服器;B伺服器上裝有和A伺服器相同版本的資料庫軟體。我的版本是SQL SERVER 2000。

步驟1、停止B伺服器上的SQL SERVER 服務,拷貝出“msdbdata.mdf”和“msdblog.ldf”檔案。

步驟2、停止A伺服器上的SQL SERVER 服務,將從B伺服器上拷貝出的“msdbdata.mdf”和“msdblog.ldf”檔案覆蓋掉A伺服器上的這兩個檔案。 3、重新啟動A伺服器上的SQL SERVER服務。

步驟3、如果MSDB資料庫仍然是置疑狀態,可以執行下面的SQL。

USE MASTER 
GO 
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE 
GO 
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb' 
Go 
sp_dboption 'msdb', 'single user', 'true' 
Go 
DBCC CHECKDB('msdb') 
Go 
update sysdatabases set status =28 where name='msdb' 
Go 
sp_configure 'allow updates', 0 reconfigure with override 
Go 
sp_dboption 'msdb', 'single user', 'false' 
Go 

相關文章