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