问题现象
磁盘扩缩容后重启拉起归档失败。
关键诊断信息
触发条件
需同时满足下列 3 个条件。3 个条件之间有依赖关系,前一个条件满足后再看下一个条件是否满足。
曾经开启过归档到 OSS,且后来停止了归档。
做过替换整个集群机器的操作。
新增一批节点。
将所有 unit 从老节点迁移到新节点。
下掉所有老节点。
重新开启归档。
事前巡检
无 。
事后诊断
日志中有 get backup dest failed 的 ERROR 日志,错误码为 -4334 。
Unexpected internal error happen, please checkout the internal errcode(errcode=-4334, file="ob_archive_service.cpp", line_no=406, info="get backup dest failed")
问题原因
迁移系统租户的 unit 时,部分元信息没有同步到新机器,导致归档的地址无法解码。
问题的风险及影响
归档任务卡住且无法停止。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版 V4.2.1 GA(oceanbase-4.2.1.0-100000182023092722)及之后版本。
解决方法及规避方法
解决方法:
修改内部表。
警告
手动修改内部表存在一定的风险,请联系 OceanBase 技术支持团队咨询。
规避方式:
由于触发条件 1 和 2 都是不可逆的,需要对不同情况使用不同的规避方法:
当触发条件 2 不满足时。
升级到 OceanBase 数据库企业版 V4.2.1 BP3(oceanbase-4.2.1.3-103000052023122809)及之后版本。
磁盘扩缩容期间保持归档开启
当触发条件 2 已经满足时,则无法通过升级解决,只能在重新开启归档前,手动改内部表来规避。
警告
手动修改内部表存在一定的风险,请联系 OceanBase 技术支持团队咨询。