转自:http://www.cnblogs.com/firstrose/p/4256257.html

某个SQL2000的数据库,在通过备份/还原的方法升级到2005时发生错误:

查找解决方法未果

正好最近在看 @一线码农 的《sql server之旅》,就想自己试试解决这个问题

首先运行dbcc checkdb命令,结果如下:

仔细查看出错信息,里面反复提到一个“对象 ID 2”。另外,信息里还提到“该文本的所有者是由 RID = (1:152:9) id = 213575799 and indid = 37 标识的数据记录”。联想到最近看的《sql server之旅》,觉得第二段信息可能是在说某个数据表。于是select之:

果然都有对应的表!

分别select这两个表,发现问题出在sysindexes上:

这和上面的出错信息也是一致的。

立刻尝试用dbcc checkdb和dbcc checktable修复,但是却得到以下回应:

DBCC 语句的修复级别导致回避了此修复

至此尝试进入了死胡同……

再次查看,发现出错信息里有2条比较有意思。一条说某节点未被引用,一条说没发现另外一个节点。两个节点的槽号和文本ID都是一样,只有页不同。手贱看了看页号,发现342=0x156,4194646=0x400156,只差一个字节!

灵机一动,这个错误肯定是页号因为某种原因错了!

突然想起,在DBCC命令那篇里面提到DBCC IND命令,干脆死马当活马医:

但是看不出什么鬼,很明显我没人家那水平……

干脆Page一下:

找到slot9的偏移,看看有没有0x400156:

好像撞大运了……

参考《第六站》,脱机,打开mdf,找到Slot9对应偏移8192*152+0x860=0x130860,把那个40改成00

联机,dbcc checkdb,没有查出错误!

再次尝试在SQL2005中恢复,成功!

附加收获:SQL2000貌似没有checksum,否则我改mdf应该会报错的。

msql 2000 使用DBCC CHECK DB 得出错误,槽引用错误的更多相关文章

  1. 发布后500访问错误 —— dll引用错误

    System.Net.Http相关dll

  2. VS中程序包错误,引用错误该如何解决

    1.找到包的文件.packages.config 对应于: 2.删除掉 packages.config 报错的项.然后再重新添加一次.就没有解决的不了的问题. 是不是很爽.....

  3. Microsoft OLE DB Provider for SQL Server 错误 '80040e21'

    我的是因为数据库满了,正在向服务商申请增加数据库容量 原文地址:Microsoft OLE DB Provider for SQL Server 错误 '800作者:欧阳IT记事本 昨天打开网站还正常 ...

  4. http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误)

    http500:服务器内部错误案例详解(服务器代码语法错误或者逻辑错误) 一.总结 服务器内部错误可能是服务器中代码运行的时候的语法错误或者逻辑错误 二.http500:服务器内部错误案例详解 只是一 ...

  5. android导入项目出现style错误,menu错误

    android导入项目出现style错误,menu错误 style //查看 res/values/styles.xml 下的报错点. <style name="AppBaseThem ...

  6. C#FTP下载文件出现远程服务器返回错误: (500) 语法错误,无法识别命令

    如果下载多个文件的时候,有时候莫名其妙的出现500服务器错误,很有可能是没有设置KeepAlive 属性导致的. 出现应用程序未处理的异常:2015/1/6 11:40:56 异常类型:WebExce ...

  7. LabVIEW的错误簇以及错误处理函数

    我们可以在LabVIEW的Modern>>Array, Matrix & Cluster控件面板找到表示错误簇数据类型的错误输入(Error In)以及错误输出(Error Out ...

  8. 【初级坑跳跳跳】[NULLException] findViewById() id 引用错误,导致空指针

    在学习Intent页面切换,几个页面切换,导致view id 写错,写成另一个xml里的id去了,导致空指针异常 setContentView(R.layout.activity_second); B ...

  9. VS2012编译错误信息,错误列表却没显示

    今天在写代码的时候,发现VS有编译错误,在错误列表里面却没有显示错误信息,百思不得其解. 后来终于发现,错误列表弄了个筛选,所以就看不到错误信息了,晕死.有遇到该问题的,可以参考下.

随机推荐

  1. 灾备用Oracle语句备查

    Oracle常用Sql . 查看数据库的归档模式及闪回是否启用            select log_mode,open_mode,flashback_on .查看实例状态        sel ...

  2. 20180113Go匿名函数和闭包

    最近codereview看到闭包,得学习下 https://studygolang.com/articles/5057 匿名函数:没有函数名的函数 闭包:外部函数定义的内部函数. 闭包给访问外部函数定 ...

  3. SVN Client API的.net 接口 SharpSvn介紹 Checkout操作实例

    Subversion是一個文件版本管理工具, 廣泛的被大家採用來作為源代碼版本管理. 已有的工具不管是其自帶的命令行工具還是Windows UI的tortoiseSVN等還是很方便實用的, 但是如果想 ...

  4. 单页应用seo收录神器 -- seo-mask

    前言 看到标题的人肯定会问,seo-mask是什么,为什么可以解决单页应用seo无法被收录的难题呢? 简单来讲seo-mask做的就是为已经发布线上运营的的单页应用项目建立另一个简单的利于seo的镜像 ...

  5. 时间序列 R 读书笔记 04 Forecasting: principles and practice

    本章開始学习<Forecasting: principles and practice> 1 getting started 1.1 事件的可预言性 一个时间能不能被预言主要取决于以下三点 ...

  6. Linux下查看硬件信息的方法

    用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart) 查看CPU信息:cat /proc/cpuinfo 查看板卡信息:cat /proc/pci 查 ...

  7. mock异常

    在类开始的时候: @Rule public ExpectedException expectedEx = ExpectedException.none(); 在方法中执行下面代码: expectedE ...

  8. MVVMLight-Mensenger 学习笔记

    MVVMLight-Mensenger  最近一直在使用WPF,配合美工很容易能搭配出效果不错的UI来,开发效率也明显加快 自己也是最近才开始使用Mvvmlight,通过view和viewmodel分 ...

  9. A Survey of Shape Feature Extraction Techniques中文翻译

    Yang, Mingqiang, Kidiyo Kpalma, and Joseph Ronsin. "A survey of shape feature extraction techni ...

  10. char * const p和const char *p的区别

    1. 前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,后者P为地址变量,地址变量是指向该变量的存储地址值如:4B3F6A,不能赋给一个字符值(字符相当于ascii表 ...