SQL数据库msdb置疑(急)
转自:http://lcj240856742.blog.163.com/blog/static/65675342008268474915/
答案一: 假设 kmjx 为被置疑的数据库。
5.把数据库设成紧急状态: 
在SQL查询分析器中逐条执行以下语句 
sp_configure 'allow',1 
reconfigure with override 
update sysdatabases set status=32768 where name='kmjxc' 
6.重建日志文件(请将路径换成你的数据文件路径) 
其中“D:\MSSQL$PROD\Data\”为存放数据库文件的路径 
“KMJXC_log.ldf”为一个新的不存在的文件,在执行以下语句时将自动建立 
dbcc rebuild_log('kmjxc','D:\MSSQL$PROD\Data\KMJXC_log.ldf') 
7.逐条执行以下语句,取消紧急模式 
update sysdatabases set status=0 where name='kmjxc' 
restore database kmjxc with recovery 
sp_configure 'allow',0 
reconfigure with override 
8.重起sql server 
先做上面的步骤了,不行再执行下面的步骤, 
1、在SQL查询分析器中执行以下语句:(注以下所用的dbname为数据库名称,请客户手工改为自己的数据库名) 
use dbname 
dbcc checkdb 
2、查看查询结果,有很多红色字体显示,最后结果有这样的提示: 
CHECKDB 发现了x个分配错误和 x 个一致性错误(在数据库 'dbname' 中)。 
一般情况下,引起分配错误的原因是磁盘损坏或突然停电;一致性错误可能是数据库中的表或索引坏,一般都可修复。 
3、查看红色字体,并把有错误的数据库表名记录下来,或把索引损坏的表名记录下来。 
4、把数据库设置为单用户模式,直接在查询分析器中执行以下语句即可: 
EXEC sp_dboption 'dbname', 'single user', 'TRUE'. 
5、进入查询分析器执行如下语句: 
use kmjxcv3 
dbcc checkdb(’dbname’,repair_allow_data_loss)-------修复数据库 
dbcc checkdb ('dbname',REPAIR_REBUILD)----------------修复数据库索引 
6、再执行:dbcc checkdb,检测数据库,出现结果为: 
CHECKDB 发现了0个分配错误和 0个一致性错误(在数据库 'dbname' 中)。 
数据库已经修复完毕。 
7、取消单用户模式,即直接在查询分析器中执行以下语句即可: 
EXEC sp_dboption 'dbname', 'single user','FALSE'
答案二:
lddl单位的SQL2000的MSDB数据库,因为不正常关机,成了置疑状态,怎么弄都不行,后在网上查到以下的修复代码:
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
方法三:
数据库系统出现严重问题,msdb 数据库置疑 本人解决方案
问题背景:
操作系统: WINDOWS 2000 SERVER + SP4
数据库系统: MS SQL SERVER 2000 ENTERPRISER + SP3
问题表现:
msdb 数据库和本人所建的另一个数据库MARK出现置疑,MS SQL SERVER 2000中系统中该在的文件都还在,但是msdb 数据库和MARK数据库置疑,点击显示无文件。
解决问题要达到的目标:
其中,MARK数据库是本人开发的一个C/S成绩管理系统所用的数据库,现正为学校期中考试过后,期中成绩正在录入,而且,每天的数据库不一样,该数据库有备份, 但是前一天的。若强行恢复,只怕丢失今天上午的数据,最好要做到,所有成绩都要不要丢失
MARK数据库解决过程
1:MARK数据库,该数据库虽然出现置疑,但很容易解决。
先停止整个数据库,将该数据库的文件mark_Data.MDF 和mark_Log.LDF拷贝粘贴出来。
2:从企业管理器中将MARK数据库删除。
3:将备份好的数据库文件复制过来原先的目录下。
4:选择 数据库右击鼠标 --》所有任务--》附加数据库 之后依照操作完成数据库的附加。
5:MARK数据库能够正常工作,解决了MARK数据库置疑的过程。
6:使用成绩管理系统,发现能够正常使用。
7:第一个问题解决
注:以上过程中,由于MSDB数据库也处于置疑的过程中,会出现几次错误提示,不用理会。一般说来是可以成功的
MSDB数据库解决过程
难点:由于MSDB数据库不能删除,将其文件拷出来,再次附加数据库,但新的附加数据库不能叫MSDB,也就是不能同名,遇到了困难。
1:先停止整个数据库,将该数据库的文件msdbdata.mdf和msdblog.ldf拷贝粘贴出来到另一个目录下。
2:将以上的文件再拷贝到另一个目录下,也就是说复制两次。
3:选择 数据库右击鼠标 --》所有任务--》附加数据库 将复制出的一个备份文件附加上去,其中,数据库名称叫MSDB1,用户是SA或ADMINISTRATOR。
4:将MSDB1数据库备份,备份成一个文件,当时我的叫MSDB。BAK。
5:选择置疑的数据库MSDB,选择恢复数据库,将刚才备份出来的数据库强行恢复到MSDB。
6:问题解决,MSDB库又能正常使用。
完成后赶快将数据库再次备份一次。呵呵
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号