• 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库又能正常使用。

    完成后赶快将数据库再次备份一次。呵呵

  • 相关阅读:
    内部类
    java的静态方法多态和匿名对象
    java的重载 和重写
    java多态成员的特点
    java 接口的概念
    linux时间修改-hwclock和date
    mysql配置主从复制和常见问题
    mysql日志种类、二进制日志模式、mysqlbinlog解析二进制日志
    mysql主从复制介绍
    mysql备份与还原-mysqldump备份、mysql与source还原
  • 原文地址:https://www.cnblogs.com/wangpei/p/1805253.html
Copyright © 2020-2023  润新知