在使用 YashanDB 主备集群部署时,有部分用户反馈:使用 yasboot 在线缩容后,YCM 无法正常托管缩容后的集群节点,系统提示报错,影响后续运维操作。本文将带你快速梳理问题根因,并提供有效的规避方案。
一、问题背景
用户通过 yasboot 对主备集群进行在线缩容操作,将位于 IP 地址 192.168.33.168 的节点(节点 1-3)从集群中移除。
紧接着尝试通过 YCM(Yashan Control Manager)托管此缩容后的数据库时,系统提示:
需将192.168.33.168也加入监管列表
当用户照做后再次托管,又出现报错:
host003 is not found in node map
托管流程就此中断。
二、影响版本说明
影响范围:YashanDB 23.2.3.100 及以前版本;
修复状态:目前该问题尚未在版本中修复,需手动规避。
三、问题根因分析
通过排查发现:
yasboot 执行在线缩容时,只删除了节点(node)相关信息;
但与之绑定的 主机(host)记录仍保留在 OM(运维管理)组件的本地 sqlite 数据库中;
当 YCM 托管时读取数据库发现 host 信息不一致,导致报错。
换句话说:节点“看起来”被删了,实际上还残留了“主机指纹”,YCM 在检查时发现信息不匹配,自然无法继续。
四、规避方法(手动修复)
目前可以通过以下方法绕过该问题:
① 登录 OM 组件所在的主机;
② 进入 OM 目录,找到 OM 使用的本地 sqlite 数据库文件;
③ 使用 sqlite 命令行工具手动清理残留的 host 信息;
④ 清理完成后,重新使用 YCM 进行托管操作即可。
注意:此操作有一定技术门槛,建议由具备操作系统及数据库经验的人员进行。
五、操作建议
缩容操作建议:尽量在测试环境充分验证流程后再应用至生产环境;
YCM 托管建议:托管前先确认 om 数据一致性,避免历史残留影响;
升级建议:后续版本如有修复,建议优先升级避免手动操作。
六、小结
YashanDB 在主备集群的在线扩缩容能力上已相对成熟,但在旧版本中存在 host 数据未完全清理的问题,导致后续 YCM 托管异常。通过手动清理 OM 中的 sqlite 数据可有效解决。后续建议官方完善该流程,提升托管体验的一致性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。