复制遇到8630错误

在SQL SERVER 2005 SP3环境中,复制过程中遇到8630错误,表现为命令执行失败并不断重试。通过检查数据库日志发现表数据页存在不一致问题,执行DBCC CHECKTABLE揭示了3个一致性错误。删除特定索引ID解决了该问题。建议在无法下线的在线数据库中,通过分析SQLDUMP定位问题并谨慎处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:SQL SERVER 2005 SP3

         Windows 2003 Eenterprise Server

 

      复制出现了一点小故障,复制监视器显示一个发布下的某个订阅一直在出错重试,错误信息如下:

 

Command attempted:
if @@trancount > 0 rollback tran
(Transaction sequence number: 0x0009CC1F0000109F000100000000, Command ID: 1)

Error messages:
内部查询处理器错误: 查询处理器在执行过程中遇到意外错误。 (Source: MSSQLServer, Error number: 8630)
Get help: http://help/8630
内部查询处理器错误: 查询处理器在执行过程中遇到意外错误。 (Source: MSSQLServer, Error number: 8630)
Get help: http://help/8630

 

 

代理作业的错误信息如下

 

消息
2011-04-23 03:57:12.091 Error executing a batch of commands. Retrying individual commands.
2011-04-23 03:57:44.013 Disconnecting from Subscriber 'DB192168001028'
2011-04-23 03:57:44.013 Connecting to Subscriber 'DB192168001028'
2011-04-23 03:57:44.013 Error executing a batch of commands. Retrying individual commands.
2011-04-23 03:59:06.779 Disconnecting from Subscriber 'DB192168001028'
2011-04-23 03:59:06.779 Connecting to Subscriber 'DB192168001028'
2011-04-23 03:59:06.779 Error executing a batch of commands. Retrying individual commands.

查看下订阅端的系统日志,发现有异常,在SQLDUMP中查看发现一个表的数据页有存在不一致的问题。

 

DBCC CHECKTABLE结果如下,

Msg 8933, Level 16, State 1, Line 1
表错误: 对象 ID 111039877,索引 ID 15,分区 ID 72057598626103296,分配单元 ID 72057598631215104 (类型为 In-row data)。页 (3:6035092) 上的低键值(级别 2)不 == 父代 (3:6035107) 槽 0 中的键值。
Msg 8934, Level 16, State 2, Line 1
表错误: 对象 ID 111039877,索引 ID 15,分区 ID 72057598626103296,分配单元 ID 72057598631215104 (类型为 In-row data)。页 (3:9325720) 上的高键值(级别 0)不小于下一页 (3:6033495) 的父代 (3:6035177) 槽 0 中的低键值。
Msg 8934, Level 16, State 3, Line 1
表错误: 对象 ID 111039877,索引 ID 15,分区 ID 72057598626103296,分配单元 ID 72057598631215104 (类型为 In-row data)。页 (3:9325720) 上的高键值(级别 0)不小于下一页 (3:6033495) 的父代 (3:6035177) 槽 0 中的低键值。
对象 'Bizoffersearchby010F' 的 107715 页中有 600381 行。
CHECKTABLE 在表 'Bizoffersearchby010F' (对象 ID 111039877)中发现 0 个分配错误和 3 个一致性错误。
对于由 DBCC CHECKTABLE (searchoffer2010.dbo.Bizoffersearchby010F)发现的错误,repair_rebuild 是最低的修复级别。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

 

删除ID=15 的索引,问题解决。

 

PS:如果是在线的数据库且不能下线,不推荐在线checktable,可以做备份,也可以仔细分析SQLDUMP,用其它方式定位问题点。

 

SQLDUMP 文件中给出的有相应的页号,可以使用DBCC PAGE 查出相关的信息

dbcc page(7,1,1441203,3) with tableresults
.....

PAGE HEADER: Page @0x0000000A604DE000 Metadata: IndexId 0
PAGE HEADER: Page @0x0000000A604DE000 Metadata: ObjectId 111039877

.....

 

依据OBJECTID 和 indexid 查出对象和索引信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值