快速修复
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. 小测试 php代理,nginx代理,直接访问对比

    #php proxy total sent request num: 507 total handle read times: 506 506 fetches, 2 max parallel, 2.7 ...

  2. solr 通过URL删除索引

    使用:update 参数:stream.body=<delete><query>date:[2014-06-15T00:00:00Z TO *]</query>&l ...

  3. MyEclipse 免安装版制作

    前言:以MyEclipse6.0为例,安装目录,例如如d:\java\MyEclipse6.0 (1)新建MyEclipse 6.0.bat文件 新建位置:当前MyEclipse根目录 文件内容: s ...

  4. Linux系统环境变量的四个配置文件的关系

    Linux系统环境变量配置有四个文件分别是: /etc/environment,/etc/profile,/etc/bash.bashrc,~/.bashrc 各配置文件意义 /etc/environ ...

  5. web编程速度大比拼(nodejs go python)(非专业对比)

    C10K问题的解决,涌现出一大批新框架,或者新语言,那么问题来了:到底谁最快呢?非专业程序猿来个非专业对比. 比较程序:输出Hello World! 测试程序:siege –c 100 –r 100 ...

  6. VS2010 win32项目windows窗体程序 向导生成代码解析

    目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的window ...

  7. Mysql 学习记录

    ( xampp 的mysql 与 直接用 dnf 安装的 mysql 有冲突! ) 1. 数据库基本知识: 一张表的行 又称为 记录 一张表的列 又称为 字段 表结构:所有字段,规定了你的每一条记录所 ...

  8. Eclipse、MyEclipse优化,提高运行速度

    MyEclipse 是公认的优秀的软件开发工具,使用非常广泛.相信很多人在使用的过程中,发现其运行速度比较慢,因为每次操作的背后,它调用了很多的命令,执行了很多操作:但是其中大部分的操作都是非必须的: ...

  9. java之Set源代码浅析

    Set的接口和实现类是最简单的,说它简单原因是由于它的实现都是基于实际的map实现的. 如 hashSet 基于hashMap,TreeSet 基于TreeMap,CopyOnWriteArraySe ...

  10. block 解析 - 内存

    block结构体相应的也有一个成员引用,这样会增加对局部变量的 _para1引用,在Block销毁的时候引用就释放掉了 我们了解到了用__block修饰的变量,可以在block内部修改,__block ...