本文主要是介绍【OceanBase诊断调优】—— checksum error ret=-4103 问题排查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
适用版本
OceanBase 数据库所有版本。
什么是 checksum
-
data checksum:一个 SSTable 中所有宏块内存二进制计算出来的 checksum 值。反映了宏块中的数据和数据分布情况。如果宏块中数据一致但是数据分布不一致,计算出来的 checksum 也不相等。
-
column checksum:SSTable 中所有行中相同列计算出来的 checksum 值,假设这个表共有 3 列,则会有 3 个 column checksum 值与每个列对应。
checksum 什么时候校验
在合并之后,Root Service 会进行 checksum 校验,主要校验两种情况。
-
副本间 data checksum:校验一个分区多个副本,相同 snapshot 的 Major SSTable 的 data checksum,应该相等。
-
主表索引表 column checksum:校验主表和索引表,相同 snapshot 的 Major SSTable,相同列的 column checksum,应该相等。
如果任一分区出现了 checksum 不一致的情况,就会报错 CHECKSUM ERROR。
CHECKSUM ERROR 如何排查
-
如何判断是否出现了 checksum error。
-
OceanBase 数据库 V1.x、V2.x、V3.x 版本。
obclient> select * from __all_zone; // 看 merge_status 列
-
OceanBase 数据库 V4.x 版本。
obclient> select * from CDB_OB_MAJOR_COMPACTION; // 看 IS_ERROR 列和 INFO 列
-
-
查看具体哪个分区出现了 checksum error。
obclient> select * from CDB_OB_TABLET_CHECKSUM_ERROR_INFO; obclient> select * from CDB_OB_COLUMN_CHECKSUM_ERROR_INFO;
附录
OceanBase 敏捷诊断工具(OceanBase Diagnostic Tool, 简称obdiag) 是一款源代码开源敏捷黑屏诊断工具,可以对OceanBase集群进行一键集群巡检、一键分析、一键根因分析以及一键诊断信息收集。
obdiag 下载地址:https://www.oceanbase.com/softwarecenter
obdiag 官方文档:https://www.oceanbase.com/docs/obdiag-cn
obdiag github地址:https://github.com/oceanbase/obdiag
obdiag 开发者营地:诊断工具 · OceanBase 技术交流
这篇关于【OceanBase诊断调优】—— checksum error ret=-4103 问题排查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!