突然断电,电脑重启后发现MSDB置疑,运行如下语句后置疑解决,但是建立‘数据库维护计划’时提示错误:错误3908:未能在数据库‘MSDB’中运行BEGIN TRANSACTION ,回为该数据库处于回避恢复模式。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

解决方案 »

  1.   


    update sysdatabases set status =28 where name='msdb' 
    后没改回去?
    最好改之前记住了之前的status值,改回去: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 =65544 where name='msdb' 
    Go 
    sp_configure 'allow updates', 0 
    reconfigure with override 
    Go 
    sp_dboption 'msdb', 'single user', 'false' 
    Go 
      

  2.   

    改回去了也没用,一样的报错。而且我发现把数据库停止后再重启的话MSDB又变成置疑了
      

  3.   

    MSDB如何重新附加?这个库好像是无法分离的吧。。
      

  4.   


    设置数据库为紧急模式
       停掉SQL Server服务;
       把应用数据库的数据文件XXX_Data.mdf移走;
       重新建立一个同名的数据库XXX;
       停掉SQL服务;
       把原来的数据文件再覆盖回来;
       运行以下语句,把该数据库设置为紧急模式;
       运行“Use Master
      Go
      sp_configure 'allow updates', 1
      reconfigure with override
      Go”具体看看这个链接:http://www.wangchao.net.cn/bbsdetail_41775.html
      

  5.   

    已经解决了,在网络上搜索到的方法:
    MSDB数据库解决过程
    难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的附加数据库不能叫MSDB,也就是不能同名,遇到了困难。
    1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。
    2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。
    3:选择   数据库右击鼠标 --》所有任务--》附加数据库   将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。
    4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。BAK。
    5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。
    6:问题解决,MSDB库又能正常使用。