obshell 命令无法remove 节点

【 使用环境 】生产环境
【 OB or 其他组件 】ob obshell
【 使用版本 】4.3.2
【问题描述】按照文档中删除节点和删除ZONE的介绍,使用纯 SQL 在数据库中删除两个节点和 zone3 信息 ,已经成功操作完成

现在需要在 obshell 中同步删除节点和 ZONE ,但通过 obhsell cluter remove 命令操作报错,无法删除,不知道什么原因

参考文档发出来看一下,目前应该不需要单独操作obshell了,都是obd集成了obshell

删除节点-V4.3.2-OceanBase 数据库文档-分布式数据库使用文档

用obd 删除zone配置会 提示redeploy ,这个操作会销毁线上集群

obshell cluster remove是在集群初始化之前将节点从集群中移除。
你想进行的应该是缩容的动作,obshell暂时还未提供缩容的命令,后续 obshell 将支持,届时可直接通过 obshell 命令进行集群缩容。

缩容已经按照这个文档: 删除节点-V4.3.2-OceanBase 数据库文档-分布式数据库使用文档 完成了.
现在我担心如果 obshell 的信息没有同步更新,我以后使用 obd 操作启停集群会失败

OBD和OBShell都暂不支持缩容,目前已经obshell的缩容已经在迭代中。你可以加入operation SIG了解更多的进度信息

你可以通过以下方式分别为OBD和OBShell维护元信息。

OBShell

  1. 在各个节点的工作目录下执行
sqlite3 .meta 'delete from all_agent where zone="zone3"'
  1. 登录sys租户执行
delete from ocs.all_agent where zone="zone3"
  1. 如果缩容掉的节点孩子啊,就需要清理zone3内的节点
    在原zone3的2个节点上的工作目录执行
./bin/obshell admin stop
rm -fr 工作目录

OBD

  1. 在OBD中控机上执行vim ~/.obd/cluster/<deploy name>/config.yaml 其中需要提换成实际的部署名
  2. 在servers中删除zone3的节点信息
1 个赞

当前已删除了节点的话如需修复可以采用玉楼老师给的方法。yaml文件记得备份,使用vim修改具有一定风险

1 个赞