SQL Server 2000报错“SUSPECT-可疑“的处理过程

一、问题描述
    连接数据库(HBNX_MCC_DEV和HBNX_MCC_UAT)时,报错“SUSPECT”(数据库“可疑”,外界无法使用)。
    
二、问题原因
    服务器意外down机,导致有连接未断开的数据库状态变为“可疑”。
    
三、问题解决
    由于没有前一天的备份文件,所以需要找回数据库的数据!
    1、开通系统表修改权限
        sp_configure 'allow updates', 1;
        reconfigure with override;
        
    2、将数据库状态设置为-32768(只读\脱机\紧急模式)
        update sysdatabases set status = -32768 where name in ('HBNX_MCC_DEV','HBNX_MCC_UAT')
        
    3、新建数据库HBNX_MCC_DEV_20190121和HBNX_MCC_UAT_20190121
    
    4、找一份原来的备份文件,进行数据库还原(获取表结构、索引、触发器和存储过程等)
        --在HBNX_MCC_DEV_20190121上使用HBNX_MCC_DEV的老备份文件进行还原操作
        --在HBNX_MCC_UAT_20190121上使用HBNX_MCC_UAT的老备份文件进行还原操作
    
    5、只读模式下无法备份,可以使用“DTS导出”数据,但是DTS不能导出索引、触发器和存储过程等,所以有上一步的还原操作
        --使用DTS将HBNX_MCC_DEV中的数据导出到HBNX_MCC_DEV_20190121
        --使用DTS将HBNX_MCC_UAT中的数据导出到HBNX_MCC_UAT_20190121
        
    6、恢复原数据库状态(将出问题的数据库状态改为0-正常,如果一直处于“紧急模式”,可能会对其他数据库操作有影响)
        update sysdatabases set status = 0 where name in ('HBNX_MCC_DEV','HBNX_MCC_UAT')
        
    7、关闭系统表修改权限
        sp_configure 'allow updates', 0;
        reconfigure with override;
        
四、附录
    1、查询数据库当前状态参数
        select * from sysdatabases where name = 'HBNX_MCC_DEV'
        
    2、检查并处理数据库1
        dbcc checkdb('HBNX_MCC_DEV')
        
    3、检查并处理数据库2
        dbcc checkalloc('HBNX_MCC_DEV')

企业管理器--右键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='his222'   Go      sp_dboption 'test', 'single user', 'true'   Go      DBCC CHECKDB('test')   Go      update sysdatabases set status =28 where name='test'   Go      sp_configure 'allow updates', 0 reconfigure with override   Go      sp_dboption 'test', 'single user', 'false'   Go      6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用   数据库的脚本创建一个新的数据库,并将数据导进去就行了.      如果这样改不加数据库状态,你就把数据库导成一个新库来代替旧库吧      企业管理器--右键你的数据库--所有任务--导出数据        --目标标数据库选择新建        --选择"在两个sql数据库之间复制对象和数据"        --把"包含扩展属性"选上,其他的根据需要选择        --最后完成 问题是恢复后数据的确是可以使用,但数据就少了许多,最近的数据也只有8.16日的数据。 求求各位有没有更好的方法恢复呢,不然我就好坎坷.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值