快速修复
DBCC CHECKDB ('数据库名', REPAIR_FAST)     

重建索引并修复

DBCC CHECKDB ('数据库名', REPAIR_REBUILD)

如果必要允许丢失数据修复

DBCC CHECKDB ('数据库名'', REPAIR_ALLOW_DATA_LOSS)
如果出现错误:未处理修复语句。数据库需处于单用户模式下。
可以先启用单用户模式,方法如下执行存储过程:
Use master

go

sp_dboption 数据库名, single, true
--更改成单用户

     alter   database   ams2   set   single_user   with   rollback   immediate  
--还原数据库为多用户模式

   alter database ams2 set multi_user   with rollback immediate
手工修复数据库试例
操作步骤:
----------------------------------------------------------------------------------------------

   进入SQL查询分析器,执行语句:
   --检查数据库完整性

     dbcc checkdb('ams1')
     执行结果:

---------------------------------------------------------------

     CHECKDB 发现了 0 个分配错误和 11 个一致性错误(在数据库 'ams1' 中)。

repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKDB (ams1 ) 发现的错误而言)。

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

   说明数据库确实有问题,11个错误,找到错误地方:
-------------------------------------------------------------------------------

   对象 'Tb_Archives_File_1' 有 3777 行,这些行位于 172 页中。

CHECKDB 发现了 0 个分配错误和 2 个一致性错误(在表 'Tb_Archives_File_1' 中,该表的对象 ID 为 907150277)。
     表明 'Tb_Archives_File_1' 表确实有2个错误,难怪一查询就要死机,于是运行语句进行表修复:
--------------------------------------------------------------------------------------

     --以repair_allow_data_loss级别修复表

     dbcc   checktable('Tb_Archives_File_1',repair_allow_data_loss)  

     go  
     执行结果:

     服务器: 消息 7919,级别 16,状态 3,行 2

     未处理修复语句。数据库需要处于单用户模式下。

     DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
   ---------------------------------------------------------------------------------------------------
     需要将数据库改为"单用户模式",于是再执行:

     --更改成单用户

     alter   database   ams2   set   single_user   with   rollback   immediate  

go  

     --已repair_allow_data_loss级别修复表

     dbcc   checktable('Tb_Archives_File_1',repair_allow_data_loss)  

go  

     --若还有问题,修复索引表

   DBCC   DBREINDEX('Tb_Archives_File_1')  
   --再修复表

   DBCC   CHECKTABLE('Tb_Archives_File_1')  
   直到返回的结果没有错误!
   --查询是否正常

   select * from Tb_Archives_File_1
   再查询那张错误表,不报错,也不死机了,数据也完好无损.....哈哈....
   --还原数据库为多用户模式

   alter database ams2 set multi_user   with rollback immediate

DBCC CHECKDB用法 手工修复数据库的更多相关文章

  1. SQL Server 修复数据库 相关 脚本 之 DBCC CHECKDB 用法 来自同事分享

    DBCC CHECKDB 用法详解, 手工修复数据库 1. 快速修复 DBCC CHECKDB ('数据库名',REPAIR_FAST) 2.重建索引并修复 DBCC CHECKDB ('数据库名', ...

  2. (4.4)dbcc checkdb 数据页修复

    转自:http://blog.51cto.com/lzf328/955852 三篇 一.创建错误数据库 以前看Pual写过很多数据恢复的文章,他很多的测试都是自己创建的Corrupt数据库,其实我们自 ...

  3. sql sever2008 R2 检测到索引可能已损坏。请运行 DBCC CHECKDB。

    1.设置成单用户状态 USE MASTER ALTER DATABASE DBNAME SET SINGLE_USER; GO --DBNAME为修复的数据库名 2.执行修复语句,检查和修复数据库及索 ...

  4. MS Sql Server 数据库或表修复(DBCC CHECKDB)

    MS Sql Server 提供了很多数据库修复的命令,当数据库质疑或是有的无法完成读取时可以尝试这些修复命令.  1. DBCC CHECKDB  重启服务器后,在没有进行任何操作的情况下,在SQL ...

  5. DBCC CHECKDB

    DBCC CHECKDB 算是管理员们最常用的命令也是必须要知道的命令了.定期的检查及问题的修复都是比较重要的!!下面介绍一下 DBCC CHECKDB 的一些基本用法. DBCC CHECKDB 完 ...

  6. 【生产问题】-dbcc checkdb报错-数据页故障

    更多操作参考:https://www.cnblogs.com/gered/p/9435282.html [生产问题]-dbcc checkdb报错-数据页故障 数据页故障,索引页故障 use db_t ...

  7. SQL Server dbcc checkdb 做了什么。

    第一步: 读取系统元数据.读完这些数据后dbcc checkdb 就知道自己要检测的是一个怎样的数据库了.如果在这一步就出错了.dbcc 就直接出错 了.不会再运行下去. 第二步: 在dbcc che ...

  8. SQL Server dbcc checkdb 修复

    默认dbcc checkdb 只做数据库的检测数据库是否完好.不会主动做数据库的修复,要修复数据库,需要数据库设单用模式. 1.repair_allow_data_loss  可能导致数据丢失. 2. ...

  9. MS SQL巡检系列——检查数据库上一次DBCC CHECKDB的时间

    DBCC CHECKDB检查指定数据库中的所有对象的逻辑和物理完整性,具体请参考MSDN文档.我们必须定期对数据库做完整性检查(DBCC CHECKDB),以便能及时发现一些数据库损坏(Corrupt ...

随机推荐

  1. BZOJ 2946: [Poi2000]公共串( 后缀自动机 )

    一个串建后缀自动机, 其他串在上面跑, 然后用当前串跑的去更新全部 ------------------------------------------------------------------ ...

  2. Hive学习之动态分区及HQL

    Hive动态分区 1.首先创建一个分区表create table t10(name string) partitioned by(dt string,value string)row format d ...

  3. 1 2 5 10 20 --> 800

    用1元 2元 5元 10元 20元的钞票凑成800元的方法种数计算,使用了动态规划. 结果没打出来,只是保留在函数里各个vector中,调试可看所有结果. 优点:快 缺点:占空间占内存 耗时时间测试: ...

  4. LINUX诞生

    编辑 Linux[1]  是一类Unix计算机操作系统的统称.Linux操作系统也是自由软件和开放源代码发展中最著名的例子.在1991 年的十月,由一个名为 Linus Torvalds的年轻芬兰大学 ...

  5. android小知识之EditText输入框之值监控以及类型限制(数字,英语字母,下划线,是否为星号密码)

    1.设置EditText的值监听事件 . <span style="font-size:14px;color:#990000;"> EditText ed=new Ed ...

  6. RedisTemplate.htm

    http://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/RedisTe ...

  7. API各函数作用简介

    API各函数作用简介 1.控件与消息函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 ArrangeI ...

  8. iOS 技能集结号

    1. 获取磁盘总空间大小 2. 获取磁盘可用空间大小 3. 获取指定路径下某个文件的大小 4. 获取文件夹下所有文件的大小 5. 获取字符串(或汉字)首字母 6. 将字符串数组按照元素首字母顺序进行排 ...

  9. BZOJ 1997: [Hnoi2010]Planar( 2sat )

    平面图中E ≤ V*2-6.. 一个圈上2个点的边可以是在外或者内, 经典的2sat问题.. ----------------------------------------------------- ...

  10. 5.6.3 String类型

    String类型是字符串的对象包装类型,可以像下面这样使用String构造函数来创建. var stringObject = new String("hello world"); ...