ob 3节点集群其中1节点服务器断电无法启动

【 使用环境 】生产环境
【 OB or 其他组件 】 OB
【 使用版本 】OceanBase_CE 4.1.0.0 (r100000202023040520-0765e69043c31bf86e83b5d618db0530cf31b707) (Built Apr 5 2023 20:26:14)
【问题描述】obd部署的3节点集群,其中一个节点服务器断电后,无法重启。
当前集群状态:


在2024-01-16号凌晨**.170因断电早上重启后,该节点未正常重启。
当时报错如下:

后于中控机上指定该节点进行重启,未成功:
分别尝试了下面两个命令:

obd cluster start obcluster -c oceanbase-ce -s **.170
obd cluster restart obcluster -c oceanbase-ce -s **.170

display-trace 41310f76-c1b0-11ee-bfea-bc305bf89398.txt (10.6 KB)

该集群用obd在中控机(**.155)上进行的部署。

后在**.170上启动ob进程

/home/admin/oceanbase-ce/bin/observer -i em3 -c  1  -p 2881 -P 2882 -z zone3 -n obcluster -d /data/oceanbase/  -r '192.168.10.170:2882:2881' -l INFO -o "system_memory=15G,datafile_size=200G,log_disk_size=150G,memory_limit=110G,cpu_count=32"

可以看到该节点状态正常且可以正常访问。

但是无法用obd cluster start obcluster -c oceanbase-ce -s **.170进行管理
而且查询集群状态会提示未启动

【附件及日志】
**.170断电后日志
election_192.168.10.170_20240116.rar (1.8 MB)
election.wf_192.168.10.170_20240116.rar (1.8 KB)

1 个赞

配置文件发下。 obd cluster edit-config . 类似这个命令

1 个赞

或者尝试这 把 这个server重做了吧

  1. 时间这么旧了,数据较久超过参数设置了server_permanent_offline_time。 可能不会让加入了
1 个赞

那如何恢复呢,是要重建数据库么,或者用备份恢复?

select * from oceanbase.__all_server 查下这个表


/home/admin/oceanbase-ce/bin/observer -r 我用这个命令拉起了坏掉的节点,但是副本并没有重新平衡过去,有什么方式可以重新平衡副本的。

你是如何判断【副本没有重新平衡】?由于你是三副本三节点,每个节点都有全部的数据。
看看当前租户的 primary_zone 设置。

select tenant_Id,tenant_name,primary_zone,locality from oceanbase.DBA_OB_TENANTS;


但是查询数据存储情况:

看看下面 视图 oceanbase.CDB_OB_TABLE_LOCATIONS 的数据。

看提供的obd 启动日志 只有start步骤,你可以测试下

obd cluster stop 部署名称 -c oceanbase-ce -s xx.170

再obd cluster start 部署名称 -c oceanbase-ce -s xx.170

确认下状态是否正常。
同时确认下obd 版本是否太低。

obd 上的状态非实时获取的,只有obd命令操作会更新对应状态,因为断电后obd状态上ob的状态是running ,因此重启时是先检查状态,再确认是否重启的。


只查出来两个节点

stop可以把节点的ob进行干掉,但是start并没有拉起