数据库置疑的原因会有多种多样,不同的问题采用的步骤也会有所不同,以下的步骤不能适用所有的情况,但包括了一些基本的步骤。

数据库置疑是指数据库内部处于不一致的状态,很有可能会有数据丢失。我们推荐您从做数据库备份之前,检查过DBCC  CHECKDB没有错误,备份的数据库没有更改。

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

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

  3. 用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。

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

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

  use mastergosp_configure ‘allow updates’,1reconfigure with overridego

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

  update sysdatabases set status = 32768 where name = ‘db_name’go

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

  DBCC CHECKDB(‘db_name’)GO

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

  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服务,然后继续尝试。

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

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

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

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

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

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

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

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

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

  4. 停止并重新启动SQL Server服务。

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

  DBCC REBUILD_LOG(’cas_db’, ‘D:cas_dbcas_db_Log.LDF’)

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

  7. 再次尝试使用DBCC CHECKTABLE或DBCC CHECKDB命令检查并修复数据库中的错误。

最新文章

  1. Android AppWidget
  2. addSubView需要注意的几个点
  3. Android实现button一边圆角一边直角
  4. win8双屏敲代码
  5. linux命令之seq
  6. PHP读取EXCEL时写入数据乱码解决办法
  7. json具体解释
  8. 2019/1/10 redis学习笔记(二)
  9. Bootstrap 做一个简单的母版页
  10. 【eclipse】eclipse报错:the resource is not on the build path of a java project
  11. Ubuntu中Android SDK Manager无法更新解决办法
  12. Linux Shell管道调用用户定义函数(使shell支持map函数式特性)
  13. 转Google Protocol Buffer 的使用和原理
  14. JAVA 多线程机制(二)
  15. apm的学习资料
  16. 最好的原型和流程图绘制工具:OmniGraffle_交互设计
  17. 010-Shell 输入/输出重定向
  18. bzoj2724: [Violet 6]蒲公英(离散化+分块)
  19. CentOS 64位上编译 Hadoop2.6.0
  20. selenium的元素定位-iframe

热门文章

  1. PAT1003
  2. Centos yum 安装mysql报错 No package mysql-server available.
  3. 转 如何使用V7包中ActionBar(Eclipse版)
  4. 2016大连网络赛 Weak Pair
  5. 1381: Munching(BFS)
  6. USACO Section 1.3 Prime Cryptarithm 解题报告
  7. Python 之路:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
  8. Counting Haybales
  9. IOS之按钮控件--Button全解析及使用 分类: ios技术 2015-01-17 17:09 169人阅读 评论(0) 收藏
  10. Ajax 下拉加载数据