快速修复
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. JAVA 语 言 如 何 进 行 异 常 处 理 , 关 键 字 : throws,throw,try,catch,final

    throws是获取异常throw是抛出异常try是将会发生异常的语句括起来,从而进行异常的处理,catch是如果有异常就会执行他里面的语句,而finally不论是否有异常都会进行执行的语句.

  2. Linux学习之crontab定时任务

    为当前用户创建cron服务 1.  键入 crontab  -e 编辑crontab服务文件 例如 文件内容如下: */2 * * * * /bin/sh /home/admin/jiaoben/bu ...

  3. Java 初始化的个人理解

    先说明一下由来吧,下面是同学的一道笔试题,以前感觉对java初始化也是了解一二的,结果,看到这题泪奔了,不会...上网查,自己添加println,总算是能把自己讲明吧了,不知理解的对不对,先记录下吧, ...

  4. 派生类地址比基类地址少4(子类与基类指针强行转换的时候,值居然会发生变化,不知道Delphi BCB是不是也这样) good

    大家对虚表并不陌生,都知道每个含有虚函数的类对象都有1个虚指针,但是在现实使用中,却总是因为这而调试半天,才发现原来是虚指针惹的祸.我这几天在调试代码时候也中招了,我的问题是这样的,如下图,CTree ...

  5. hdu 5461 Largest Point

    Thinking about it: 对于式子 a * ti * ti + b * tj,可以看作时有两部分构成 a * ti * ti 和 b * tj,如果整个式子要最大,则要求这两部分都要尽量大 ...

  6. tpopela/vips_java

    tpopela/vips_java Implementation of Vision Based Page Segmentation algorithm in Java

  7. Hive Server 2 安装部署测试

    Hive 0.11 包含了Hive Server 1 和 Hive Server 2,还包含1的原因是为了做到向下兼容性.从长远来看都会以Hive Server 2作为首选 1. 配置hive ser ...

  8. c/c++处理参数

    直接上代码:涉及函数getopt(),getopt_long() #include <unistd.h> #include <stdlib.h> #include <st ...

  9. JS+canvas实现人机大战之五子棋

    效果图: html代码如下: <!DOCTYPE html><html>    <head>        <meta charset="utf-8 ...

  10. 一般处理程序在VS2012中打开问题

    问题:如果你用vs2012建立的一个一般处理程序,运行查看是,出现这样的界面 原因:VS2012默认使用IIS Web服务器,而不是Visual Studio开发服务器,基于安全考虑IIS默认不允许浏 ...