某天访问某个数据库的时候,系统报错。连上去看了一下,服务器是SQL2008R2。由于有上次修复的经验,先使用DBCC查看数据库情况。

DBCC的返回:

XXXXXXXXXXX发生异常数据库 ID 7,页 (1:1350625) 已标记为 RestorePending,可能表明磁盘已损坏。要从此状态恢复,请执行还原操作。

消息 8978,级别 16,状态 1,第 1 行
表错误: 对象 ID 1195151303,索引 ID 2,分区 ID 72057594063421440,分配单元 ID 72057594074234880 (类型为 In-row data)。页 (1:387592) 缺少上一页 (1:1350625) 对它的引用。可能是因为链链接有问题。
消息 8928,级别 16,状态 1,第 1 行
对象 ID 1195151303,索引 ID 2,分区 ID 72057594063421440,分配单元 ID 72057594074234880 (类型为 In-row data): 无法处理页 (1:1350625)。有关详细信息,请参阅其他错误消息。
消息 8939,级别 16,状态 98,第 1 行
表错误: 对象 ID 1195151303,索引 ID 2,分区 ID 72057594063421440,分配单元 ID 72057594074234880 (类型为 In-row data),页 (1:1350625)。测试(IS_OFF (BUF_IOERR, pBUF->bstat))失败。值为 12716041 和 -6。
消息 8976,级别 16,状态 1,第 1 行
表错误: 对象 ID 1195151303,索引 ID 2,分区 ID 72057594063421440,分配单元 ID 72057594074234880 (类型为 In-row data)。在扫描过程中未发现页 (1:1350625),但该页的父级 (1:1231035) 和上一页 (1:799122) 都引用了它。请检查以前的错误消息。

考虑到该数据库为生产数据库,且频繁读写,DBCC修复时间无法预计,故尝试手工修复。

首先查看ID为1195151303的对象:

select * from sys.objects where object_id='1195151303'

查询结果显示该对象是一个数据表,名称就是DBCC信息开始的表名。

注意到出错信息显示“索引 ID 2”,怀疑是索引损坏,查询该表所有索引

select * from sys.indexes where object_id='1195151303'

结果显示,该索引是一个非聚集索引兼主键。

删除并重建该索引,再次DBCC,未报告错误。

SQL2008R2下数据库修复一例的更多相关文章

  1. Oracle 数据库修复一例

    Oracle 数据库修复一例:(系统装有两个实例,分别是:bhorcl,orcl)今天一台生产服务器的Oracle不能正常登录,用plSql登录,提示:TNS:listernet does noet ...

  2. 【教程】SQLite数据库修复

    SQLite 大家都知道,就不多说了. 有时候数据量大了,或者存储过程中出现异常,数据库就可能会出问题. 这是以前公司产品出现过的问题,导致软件都打不开了,我花了不少时间才解决的,趁现在有空贡献出来. ...

  3. 用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法

    用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及 ...

  4. MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

    微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...

  5. SQL数据库修复/数据库置疑修复

    SQL数据库修复的三大核心技术: 1.磁盘阵列分析重组技术: 2.数据库恢复与修复技术: 3.SCSI盘物理故障开盘技术. 至今已经成功恢复数百台服务器的SQL数据库,用户覆盖全国. 导致SQL数据库 ...

  6. sql server mdf碎片级数据库修复,数据库碎片级提取

    sql server mdf碎片级数据库修复,数据库碎片级提取   大家都知道MDF数据库文件一般都比较大,在磁盘中往往被存放到不连续的逻辑簇中,久而久之就形成了文件碎片,当文件被误删除或者格式化后, ...

  7. Windows平台上Caffe的训练与学习方法(以数据库CIFAR-10为例)

    Windows平台上Caffe的训练与学习方法(以数据库CIFAR-10为例) 在完成winodws平台上的caffe环境的搭建之后,亟待掌握的就是如何在caffe中进行训练与学习,下面将进行简单的介 ...

  8. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  9. .NET下数据库的负载均衡(有趣实验)(续)

    .NET下数据库的负载均衡(有趣实验)这篇文章发表后,受到了众多读者的关注与好评,其中不乏元老级程序员. 读者来信中询问最多的一个问题是:它是否能支持"异种数据库"的负载均衡?? ...

随机推荐

  1. python利用ThreadPoolExecutor实现有任务异常,就终止线程池中的所有剩余任务

    先描述一下场景: 我有一批任务需要放入线程池中去处理,但是一旦线程池中有1个任务出现了异常(抛了Exception)就将线程中尚未开始的任务全部取消不执行. 需要说明的是正在执行的任务因为无法撤销,所 ...

  2. K8S的DNS服务

    k8s集群部署完后第一件事就是要配置DNS服务,目前可选的方案有skydns, kube-dns, coredns kube-dns是k8s中的一个内置插件,目前作为一个独立的开源项目维护,见http ...

  3. 单片机成长之路(51基础篇)- 024 基于 N76E003 的按键按键状态机

    前端时间要用按键,搞了个状态机(如图): main.c #include <N76E003.H> #include <SFR_Macro.h> //N76E003 SFR寄存器 ...

  4. .Net Core 学习路线图

    今天看  草根专栏 这位大牛的微信公众号,上面分享了一张来自github的.net core学习路线图,贴在这里,好让自己学习有个方向,这么一大页竟然只是初级到高级的,我的个乖乖,太恐怖了. 感谢大牛 ...

  5. 让您的WinForm控件快速支持拖拽文件

    实现原理:使用扩展方法. /// <summary> /// 控件扩展 /// </summary> public static class ControlExt { /// ...

  6. 初探Tomcat的架构设计

    Tomcat 作为 servlet 容器实现,它是基于 Java 语言开发的轻量级应用服务器.因为 Tomcat 作为应用服务器,它有着完全开源,轻量,性能稳定,部署成本低等优点,所以它成为目前 Ja ...

  7. Lucene PriorityQueue & JDK PriorityQueue

    麻蛋,原来是最小堆呀!  数据结构不熟害死人呀! 看来待复习复习数据结构了 在lucene源码中对多个段合并的时候,会先将多个段放到一个PriorityQueue中,不要被这个名字迷惑,这个Prior ...

  8. Linux组管理(6)

    在linux中每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念. 文件/目录的所有者:一般为文件的创建者,谁创建了该文件,就自然成为该文件的所有者 查看文件 ...

  9. React路由安装使用和多种方式传参

    安装路由 npm i react-router-dom -S 引入路由 import { BowserRouter as Router, Route, Switch, ... } from " ...

  10. ES6 Set和Map集合(六)

    一.Set集合创建Set实例:let set = new Set();1.特性:a.Set本身是一个构造函数,用来生成Set数据结构[类比数组结构]b.Set函数可以接受具有Iterable接口的数据 ...