网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > SQL语法 > 正文

SqlServer数据库被置疑解决方法

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

【网学网提醒】:网学会员,鉴于大家对SqlServer数据库被置疑解决方法十分关注,会员在此为大家搜集整理了“SqlServer数据库被置疑解决方法”一文,供大家参考学习!


    首先确认已经备份了.mdf和.ldf文件。
    2.在SQLServer中新建一个同名的数据库,然后停止SQLServer服务。
    3.用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
    4.重新启动SQLServer服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
    5.在SQL查询分析器中执行以下命令,以允许更新系统表:
    usemaster
    go
    sp_configure‘allowupdates’,1
    reconfigurewithoverride
    go
    6.将这个数据库置为紧急模式:
    updatesysdatabasessetstatus=32768wherename='db_name'
    go
    7.使用DBCCCHECKDB命令检查数据库中的错误:
    DBCCCHECKDB(‘db_name’)
    GO
    8.如果DBCCCHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:
    sp_dboption'db_name',’singleuser’,’true’
    DBCCCHECKDB(‘db_name’,REPAIR_ALLOW_DATA_LOSS)
    GO
    如果在执行DBCCCHECKDB(‘db_name’,REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQLServer服务,然后继续尝试。
    9.如果DBCCCHECKDB(‘db_name’,REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
    重新执行DBCCCHECKDB(‘db_name’)命令,确认数据库中已没有错误存在。
    清除数据库的置疑状态:sp_resetstatus'db_name'
    清除数据库的单用户模式状态:sp_dboption'db_name',’singleuser’,’false’
    重新启动SQLServer服务,如果一切正常的话,则数据库已经成功恢复。
    10.如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。
    如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
    1.在SQLServer中新建一个同名的数据库,然后停止SQLServer服务。
    2.用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
    3.启动SQLServer服务,并将数据库置为紧急模式(同上:步骤5和步骤6)。
    4.停止并重新启动SQLServer服务。
    5.执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
    DBCCREBUILD_LOG(’cas_db’,'D:\cas_db\cas_db_Log.LDF')
    6.重新将该数据库置为单用户模式。
    
    SqlServer数据库被置疑解决方法
    环境win2000sqlserver2k
    问题:数据库进行一般更新查询的时候,突然被“置疑”无法继续使用
    自己进行了一下处理不能解决问题:
    1、关闭sqlserver数据库,将对应数据库的.mdf.ldf文件移到其它目录下,删除原有数据库
    2、启动sqlserver数据库,新建一个同名数据库,
    3、关闭sqlserver数据库,用原数据库的.mdf.ldf文件覆盖现新建数据库对应文件。问题依旧存
    在,没用。
    通过在网上查找资料并成果解决问题:
    1、关闭sqlserver数据库,将被置疑的数据库文件(.mdf.ldf)拷出来备份。
    2、开启sqlserver数据库,新建一个同名数据库,
    3、关闭sqlserver数据库,用备份的.mdf文件覆盖新的数据库的同名文件
    4、开启sqlserver数据库,在“查询分析器”中执行以下语句,允许对系统目录直接修改
    usemaster
    go
    sp_configure'allowupdates',1
    go
    reconfigurewithoverride
    go
    updatesysdatabasessetstatus=-32768wheredbid=DB_ID('newdb')
    5、对新建数据库进行重建log
    dbccrebuild_log('newdb','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\newdb_log.ldf')
    处理完这一步,你可能发现的数据处于一种“只读/脱机/”状态,请继续下面的操作
    6、dbcc检查
    dbcccheckdb('newdb')
    进行到这一部可能会发现有错误提示,你可以看看提示的哪几个数据表,如果不是很关键的表,那可以先放过。
    7、设置数据库为正常状态
    sp_dboption'newdb','dbouseonly','false'
    8、关闭对数据库的直接修改权限,不允许对系统目录直接修改
    sp_configure'allowupdates',0
    go
    reconfigurewithoverride
    go
    当然在做第一遍这个步骤的时候,我的数据并没有恢复。我有从头进行了一遍以上操作,之后我的数据库恢复正常了,感觉非常高兴。
    总觉,个人感觉这次数据库被置疑,应该是因为数据库日志太过庞大,数据库的日志竟然达到了15G。不过我还不是很确定,继续学习中。
    加油!!!
    SQL2000数据库置疑解决方法2009-03-2109:12按下面的步骤处理:
    1.新建一个同名的数据库
    2.再停掉sqlserver
    3.用备份的数据库MDF的文件覆盖掉这个新建的同名数据库文件
    4.再重启sqlserver
    5.此时打开企业管理器时新建的同名数据库会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
    USEMASTER
    GO
    SP_CONFIGURE'ALLOWUPDATES',1RECONFIGUREWITHOVERRIDE
    GO
    UPDATESYSDATABASESSETSTATUS=32768WHERENAME='数据库名'
    Go
    sp_dboption'数据库名','singleuser','true'
    Go
    DBCCCHECKDB('数据库名')
    Go
    updatesysdatabasessetstatus=28wherename='数据库名'
    Go
    sp_configure'allowupdates',0reconfigurewithoverride
    Go
    sp_dboption'数据库名','singleuser','false'
    Go
    数据库置疑恢复之经典
    /*****************************************************************
    *这类故障是一般是由于磁盘读写问题造成的。
    *下面的语句是修复总部数据库的SQL,如需要修复分部的数据库,请将'hbposv5'改为'hbposv5_branch'
    *超市之星系统直接执行
    *快捷通、进销存系列,请将'hbposv5'改为'isd2001v3',如果是分部,改为'isd2001v3_branch'
    *商务通系列,请将'hbposv5'改为'isd2001v4',如果是分部,改
    为'isd2001v4_branch'
    ******************************************************************/
    --请在查询分析器中执行下列语句.执行前断开其它所有数据库连接,最好是断开网线
    USEmaster
    Go
    --单用户模式
    EXECsp_dboption'hbposv5','singleuser','TRUE'
    go
    --数据库检查
    DBCCCHECKDB('hbposv5')
    Go
    --如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
    --数据库修复
    DBCCCHECKDB('hbposv5',repair_rebuild)
    Go
    --再次数据库检查,如果返回结果中没有了红色的提示文字,说明修复成功;
    DBCCCHECKDB('hbposv5')
    Go
    --否则意味着还需要更高级别的修复;尝试将上面修复语句的'repair_rebuild'换为'repair_allow_data_loss'再试,之后再次检查数据库。
    --如果还有错误未修复,
    --退出前请一定要执行以下语句返回到多用户模式
    EXECsp_dboption'hbposv5','singleuser','FALSE'
    go
    数据库置疑处理方法
    步骤1:
    创建一个新的数据库,命名为原来数据库的名字。
    步骤2:
    停止SQLServer
    步骤3:
    把老数据库的MDF文件替换新数据库的相应的MDF文件,并把LDF文件删除。
    步骤4:
    重新启动SQLServer服务,然后运行如下命令:
    UseMaster
    Go
    sp_configure'allowupdates',1
    reconfigurewithoverride
    Go
    begintran
    updatesysdatabasessetstatus=32768wherename='hbposv5'
    --Verifyonerowisupdatedbeforecommitting
    committran
    步骤5:
    停止SQL然后重新启动SQLServer服务,然后运行如下命令:
    DBCCTRACEON(3604)
    DBCCREBUILD_LOG('db_name','c:\mssql7\data\hbposv5_log.ldf')
    Go
    步骤6:
    停止SQL然后重新启动SQLServer服务,然后运行:
    usemaster
    updatesysdatabasessetstatus=8wherename='hbposv5'
    Go
    sp_configure'allowupdates',0
    reconfigurewithoverride
    Go
    步骤7:
    运行dbcccheckdb(hbposv5)检查数据库的完整性
    注:都要替换成真实的数据库名字。
    
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师