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