当前集群三个节点的agent版本信息
上述报错的 cluster agent 指的是你集群中已存在的 obshell 节点的版本号是 4.2.3.0,扩容到集群中的 obshell 节点的版本号是 4.2.4.2。
至于为什么会出现这个情况,稍等我确认一下。
非常抱歉!
上周我用OBD扩容,最后obshell启动不了也是这个问题。
我不理解为什么新扩容的节点,任何组件不是完全按照已有节点的版本来进行。
存量ob节点 obshell版本: 4.2.4.2
新扩容ob节点,obshell版本:4.2.3.0
是很奇怪,马上排查!
是的,到 start obshell 这一步的时候,observer 其实是已经扩容进去了的。
麻烦再问一下,您使用 obd 部署这个集群的时候,也是指定了 ob 的版本是4.3.4.0 吗?
或者说你期间有做过 ob 的升级之类的吗?
另外,如果这个问题有阻塞到你的话,可以直接在 ocp 上跳过这个任务,不会影响后续的集群运维的。
然后我们在一块排查 obshell 的问题。
我再等等你们吧,我目的就是想顺利扩容一个节点,以后再慢慢继续扩。
当初OBD初始化集群应该是V4.3的低版本,然后随着你们发布新版本,一路OBD升级到当前的V4.3.4的。
昨天用obd web部署了独立metadb的OCP,今天用OCP接管了集群,然后扩容新节点,然后卡在obshell这一步。
解决办法:
- kill 掉所有节点(包括55)上 obshell 的进程 server 和 daemon(守护) 都要kill掉,kill 掉之后 check 一下没有 obshell 进程。
- 删除所有节点(包括55)/oceanbase/obtest/oceanbase/下的 .meta 文件。
- 连接 ob 集群,删除 ocs 数据库。
drop database ocs
- 将 55 机器上的二进制文件 /oceanbase/obtest/oceanbase/bin/obshell 替换到其他节点中。
- 在任一节点上执行 export OB_ROOT_PASSWORD=“你的密码”; /oceanbase/obtest/oceanbase/bin/obshell cluster start -a
请放心操作,这些动作并不会影响到集群或者 ocp 的运维。
5、 是任一节点 还是所有节点都有执行?
应该是所有节点启动吧
分析学习
任一节点就可以的,obshell 会自动拉起其他节点的
按照步骤执行,有两点补充
1、拷贝的obshell文件要注意属性
chmod 755 obshell
2、在其中一台启动obshell它并没有去拉起其他的,逐台执行启动obshell后正常
目前所有obshell已经统一版本,并且启动成功。
我再次执行之前失败的任务,依然超时,估计是还是任务杀掉obshell,但是因为密码特殊字符导致的无法启动。
我现在还是在55上手动启动,然后绕过这个任务,继续扩容?
不用了,直接 跳过这个任务继续执行后面的任务就可以了,此时扩容实际上已经完成了。
如果发现 55 上的 obshell 被杀掉了就直接 通过 obshell agent start 拉起来就可以了