您现在的位置是:首页 >

sql建立数据库 SQLServer置疑数据库解决方法

火烧 2023-03-22 22:44:46 1046
SQLServer置疑数据库解决方法    首先确认已经备份了 mdf和 ldf文件    在SQL Server中新建一个同名的数据库 然后停止SQL Server服务    用原有的 mdf和 l

SQLServer置疑数据库解决方法  

   首先确认已经备份了 mdf和 ldf文件

   在SQL Server中新建一个同名的数据库 然后停止SQL Server服务

   用原有的 mdf和 ldf文件覆蓋新建数据库对应的 mdf和 ldf文件

   重新启动SQL Server服务 这是应该会看到这个数据库处于置疑(Suspect)状态

   在SQL查询分析器中执行以下命令 以允许更新系统表

  use mastergosp_configure allow updates reconfigure with overridego

sql建立数据库 SQLServer置疑数据库解决方法

   将这个数据库置为紧急模式

  update sysdatabases set status = where name = db_name go

   使用DBCC CHECKDB命令检查数据库中的错误

  DBCC CHECKDB( db_name )GO

   如果DBCC CHECKDB命令失败 请转至第 步 否则先将数据库置为单用户模式 再尝试对其进行修复

  sp_dboption db_name single user true DBCC CHECKDB( db_name REPAIR_ALLOW_DATA_LOSS)GO

  如果在执行DBCC CHECKDB( db_name REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话 则重新启动SQL Server服务 然后继续尝试

   如果DBCC CHECKDB( db_name REPAIR_ALLOW_DATA_LOSS)命令失败 请转至第 步 否则若成功修复了数据库中的错误

  重新执行DBCC CHECKDB( db_name )命令 确认数据库中已没有错误存在

  清除数据库的置疑状态 sp_resetstatus db_name

  清除数据库的单用户模式状态 sp_dboption db_name single user false

  重新启动SQL Server服务 如果一切正常的话 则数据库已经成功恢复

   如果以上步骤都不能解决问题的话 请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据 如果您只有MDF文件 问题就更加复杂一些 我们需要直接重建事务日志了:

   在SQL Server中新建一个同名的数据库 然后停止SQL Server服务

   用原有的ldf文件覆蓋新建数据库对应的 mdf文件 将其日志文件( ldf)删除

   启动SQL Server服务 并将数据库置为紧急模式(同上: 步骤 和步骤 )

   停止并重新启动SQL Server服务

   执行以下命令重建数据库日志文件 (下面是个示例 您要用您实际的数据库名)

  DBCC REBUILD_LOG( cas_db D:cas_dbcas_db_Log LDF )

   重新将该数据库置为单用户模式

lishixinzhi/Article/program/SQLServer/201311/22174  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码