合并报错4103逻辑校验失败

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】4.2.1.4
【问题描述】4.2.1.4版本,某张表合并时出现4103逻辑校验失败,阻塞合并操作
【复现路径】在生产和测试环境均正常复现错误
【附件及日志】

相关诊断记录.pdf (524.6 KB)

疑难杂症,最后是关闭微块校验后合并在重新打开就没复现了吗 :joy:

短期没出现了,最近又合并失败了,可能和这张表的数据有变更有关,表很小,只有10来条记录。

这个诊断记录确实很详细,手动点赞:+1:

PS: 诊断工具obdiag 有卡合并的根因分析场景,可以试试:https://www.oceanbase.com/docs/common-obdiag-cn-1000000001768208

1 个赞

好的,多谢,目前数据在本地环境还原后可以稳定复现该问题,我用obdiag再诊断一轮试试。

可以提供一下问题表的表结构及数据么。托敏即可

是企业版的问题,我对接了产研售后,目前确认是产品缺陷,细节暂时没同步,有细节结论的话我也同步一份到这个帖子

1 个赞

最终结论

  • 当采用Oracle模式默认建表的压缩算法(默认为archive)时,带时区的字段,时间值一样,但存储的时区格式数据不一样时,压缩数据时误认为是一行数据,导致压缩后校验值出错,导致这条记录的data checksum不一致。最终合并卡住。

临时处理办法有几个:

  1. 更新表带时区的数据,统一用一个格式。

  2. 建表或修改表的压缩算法为非archive模式,可以用COMPRESS FOR OLTP或者COMPRESS FOR QUERY LOW

  • ALTER TABLE XXX COMPRESS FOR OLTP;

版本修复计划

  • 产研内部还在评估,修复时间和版本暂未确定。