数据库质疑修复

来源:互联网 发布:网络传输性能指标 编辑:程序博客网 时间:2024/04/29 18:24
  数据库质疑修复有很多方法,在这里仅提供两种方法。如果第一种方法修复不了,可用第二种方法。第二种方法修复的数据库可不经导出而直接使用。是比较有效的方法。

一、 

先分离数据库
  企业管理器--右键suspect的数据库--所有任务--分离数据库
  然后备份你的suspect数据库的文件,再按下面的步骤处理:
  1.新建一个同名的数据库
  2.再停掉sql server
  3.用suspect数据库的文件覆盖掉这个新建的同名数据库
  4.再重启sql server
  5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
   USE MASTER
        GO

        SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
        GO

        UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑数据库'
        Go

        sp_dboption '置疑数据库', 'single user', 'true'
        Go

        DBCC CHECKDB('置疑数据库')
        Go

        update sysdatabases set status =28 where name='置疑数据库'
        Go

        sp_configure 'allow updates', 0 reconfigure with override
        Go

        sp_dboption '置疑数据库', 'single user', 'false'
        Go

 

 6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
  数据库的脚本创建一个新的数据库,并将数据导进去就行了.
  
  如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧
  企业管理器--右键你的数据库--所有任务--导出数据
       --目标标数据库选择新建
       --选择"在两个sql数据库之间复制对象和数据"
       --把"包含扩展属性"选上,其他的根据需要选择
       --最后完成

 

二、

        -- 1.关闭SQL Server

        -- 2.删除日志文件(LDF)

        -- 3.开启SQL Server
        -- 此时该数据库状态为:置疑

        -- 4.在企业管理器中,设置该服务器属性→服务器设置→选中“允许对系统目录直接修改”
        -- 否则不能将数据库置于回避恢复模式

        -- 5.将数据库置于回避恢复模式以便重建日志
        update sysdatabases set status=-32678 where name='corpwww01_www'
        -- 此时该数据库状态为:正在恢复/只读/脱机/紧急模式

        -- 6.重建日志
        dbcc rebuild_log('corpwww01_www','d:/corpwww01_www_Log.LDF')
        -- 此时该数据库状态为:只供 DBO 使用

        -- 7.检查是否存在错误(可省略)
        DBCC CHECKDB('corpwww01_www')

        -- 8.取消“只供 DBO 使用”状态
        sp_dboption 'corpwww01_www','dbo use only',false

原创粉丝点击