首批通过分布式安全可靠测评,为关键业务系统打造
OCP 中 add server 在 Run io calibration 阶段报错 -4016,Internal error 的原因和解决方法
更新时间:2024-11-12 08:16
问题现象
1-1-1 集群出现某节点磁盘故障并格式化,需要重装或者替换 OBServer 节点修复,OCP 重装节点时报错 -4016,Internal error,如下图所示。

手动 add server 可复现,OCP 界面失败任务日志中可获取 trace_id,过滤 observer.log:server id maybe invalid,如下图所示。

问题原因
内核频繁重试任务,导致该集群的 MAX_USED_SERVER_ID 被异常推高越过 SQL 层限制的 MAX_SERVER_ID,导致 OCP 添加节点 add_server 后无法建立连接查询 SQL,最终 OCP 添加节点失败。
适用版本
OceanBase 数据库 V4.3.3 GA(oceanbase-4.3.3.0-100000362024093001)之前所有版本。
解决方法
手动修改系统表重置 server_id。
在集群其他节点查看 server_id 的值。
grep 'server_id' observer.log登录 sys 租户操作,更新 value 值比步骤 1 中获取的 server_id 值大即可。
update __all_sys_stat set value=10 where name='ob_max_used_server_id';警告
更新内部表
__all_sys_stat存在风险,请勿自行操作。如果需要修改,请咨询 OceanBase 技术支持。。