【 使用环境 】 准生产环境
【 OB 】
【 使用版本 】4.2.1.7
【问题描述】社区版ob集群合并卡住
【复现路径】查询CDB_OB_MAJOR_COMPACTION视图status字段为COMPACTING,报错代码是error_no=-4108,核查系统日志没发现磁盘问题
可以使用obdiag分析下, 完成后将收集的有效信息进行打包并上传到这里
obdiag rca run --scene=major_hold
https://www.oceanbase.com/docs/common-obdiag-cn-1000000001491169
看到有4108报错,这边先取下YB420A010439-0006200142081F4D-0-0的日志吧(可以通过obdiag gather log --grep “YB420A010439-0006200142081F4D-0-0” 快速获取日志),初步怀疑是是物理盘有问题。
此外从rca结果中发现以下几点:
-
获取合并诊断信息失败,需要手动执行下:SELECT * FROM oceanbase.__all_virtual_compaction_diagnose_info WHERE status=“FAILED”;
-
卡合并时间较早,从九月份就开始,已经很久了,
是的,9月13日就出现问题了
目前需要
- 手动采集下合并诊断信息SELECT * FROM oceanbase.__all_virtual_compaction_diagnose_info WHERE status=“FAILED”;
- 这边先取下YB420A010439-0006200142081F4D-0-0的日志吧(可以通过obdiag gather log --grep “YB420A010439-0006200142081F4D-0-0” 快速获取日志)
看过9月份的操作系统日志,没有相关的IO报错,这个环境是部署在虚拟机的,一般不会出现IO问题。
这个日志我提交到研发同学分析,有进展会尽快回复你
这个集群是多副本吗?如果是多副本的话,看下其他副本的合并是否成功?
是的,多副本(1-1-1),其他副本是成功的
原因分析:
4108是物理checksum不一致,4103是逻辑checksum不一致,这里4108可以确定是机器方面的问题,可能是磁盘,总线,memroy之类的错误,由于dmesg没有发现异常,具体排查较困难,其它副本的合并是成功的,可以确认不是OB的问题,
OB及其它数据库没有这能力探测硬件故障原因,只能防御性做数据校验,或者依赖底层调用返回错误码。
建议:更换机器规避下,多副本的好处就是规避单点故障。
目前将故障observer kiil掉后重新拉起,自动完成了一次合并,现在状态正常,后续继续观察。