obd服务器故障,如何来启动ob集群

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】4.2.1

之前一直使用obd cluster start的方式启动OB集群。
现因OBD服务器故障无法恢复。目前无法使用obd工具启动集群了
能否把测试服务器上面的OBD工具复制到生产上面来管理生产的OB集群?
别外,看到官方有提供ob_shell来接管集群,但obshell cluster start -a 报错,到start zone的时候报错:
task_logs:
- start zone
- 192.168.0.248:2886 end the task
- 192.168.0.249:2886 end the task
- 192.168.0.252:2886 end the task
- 192.168.0.253:2886 end the task
- 192.168.0.241:2886 end the task
- 192.168.0.242:2886 end the task
- 192.168.0.244:2886 end the task
- 192.168.0.245:2886 end the task
- ‘ERROR: get db instance timeout’

1 个赞

可以创建新的obd接管集群,参考下面的方案
https://www.oceanbase.com/docs/community-obd-cn-1000000000774269

1 个赞

感谢指点!
在一个新的服务器上安装了最新版本的OBD工具。计划用新的obd来接管集群。
目前在8个observer节点上启动了observer服务和obshell,端口2881和2883、2886已经正常监听
obd cluster takeover 进行接管时报错。

检查发现其中有两台节点的observer经常自动退出了observer进程。看日志也没报错。
麻烦指导下我们,感谢!

./bin/observer
启动服务的时候,8个节点中有两个节点报错

EDIAG [SERVER] main (main.cpp:596) [2156][observer][T0][YB42C0A800F9-000626C2CF71689D-0-0] [lt=10][errcode=-4000] observer start fail(ret=-4000) BACKTRACE:0x1a5d80d1 0x6859b05 0x6a8b8b4 0x6a8b2b4 0x6a8b1f6 0x6a8b01d 0x94d4639 0x94d3657 0x7ff10e64624a 0x7ff10e646305 0x6d31a82

OBAgent 相关报错

OBD-4000:Fail to reload x.x.x.x

错误原因:该节点的 http_basic_auth_password 与 obd 中存储的 http_basic_auth_password 不符,导致 obd 不能正确的访问 obagent。

解决方法:若您确认二者相符,请检查此次修改的选项中是否包含了当前版本不支持的配置项或者配置项名称是否书写错误。

目前肯定是要先检查两台节点的observer为啥经常挂掉。可以查看下是否是节点之间时区不一致或者持续存在网络波动
发一份服务挂掉时候的obserer日志看看