多派数节点宕机后恢复ob的集群

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】
我有3个节点xjws1,xjws2,xjws3然后在做高可用的测试,先手动停掉了xjws1的节点之后在数据库中插入了多条数据,然后手动停掉了xjws2的节点,然后发现整个集群使用不了,然后就想恢复手动停掉的xjws1节点和xjws2节点此时发现报如下错误(我是登录到obproxy的时候进行启动的)

obclient -h10.0.4.7 -P2891 -uroot -p’Y{z0A)w9f]k)(|/’ -Doceanbase -A

Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 2106672
Server version: OceanBase_CE 4.2.1.1 (r101010012023111012-2f6924cd5a576f09d6e7f212fac83f1a15ff531a) (Built Nov 10 2023 12:13:59)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

obclient [oceanbase]> alter system start server ‘10.0.4.7:2889’;
ERROR 4012 (HY000): Timeout
obclient [oceanbase]> alter system start server ‘10.0.4.8:2889’;
ERROR 4012 (HY000): Timeout

最开始我使用这个命令启动然后提示超时就换了上面的命令也超时,我的ob的端口2889,obproxy的端口是2891
obclient [oceanbase]> alter system start zone xjws2;
ERROR 4012 (HY000): Timeout

alter system start server ‘ip:rpc_port’ zone ‘zone_name’;

rpc_port:默认是2882那个,2881 是mysql_port


老师还是超时

确认一下所有 observer 进程的存在情况


需要使用ob的端口 非obproxy端口。
你使用2882端口试试。


老师我试了一下还是不行

确认下每个节点的observer进程是否存在。如果不存在,可以进入对应的observer的 homepath 执行./bin/observer 拉起进程

第一台不行


第二台感觉没有启动

observer.rar (695.1 KB)
observer.rar (4.5 MB)
宕机两台的ob的日志

#没有将 OceanBase 数据库的 LIB 加到环境变量 LD_LIBRARY_PATH 中
echo ‘export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/oceanbase-ce/lib/’ >> ~/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/oceanbase-ce/lib/

ps -ef|grep obs 查看是否有进程


我试着重启整个集群感觉4.7的磁盘不够了我清理一下空间在试试

除了磁盘问题,端口占用问题,可以把节点上的obs obp进程杀掉 再启动。

我将服务器重新启动然后重启了一下集群现在三个节点正常了,然后有个问题就是想问一下如果我发现我之前改的内存的值当我重启整个集群或者是我重启我的服务器我修改的内存值又回到了之前的大小


想问一下这个我怎么持久化呢,就是我重启的集群的时候我修改的值不失效

memory_limit是支持动态调整,且会持久化,看下memory_limit当前值,可能是内存不足申请不到。可以清理内存,并调大该参数。

麻烦老师这个在哪看呢

obclient [oceanbase]> alter system set memory_limit=‘10G’;
我使用的这个命令然后在开机加重启就不行了

obd cluster edit-config 部署名称, 修改内存 再重启看下。

image
老师是这样操作的么?

看提示是 不存在xhws2部署名称。 是不是写错了。

老师,这个是我写错了,使用obd cluster list 查看集群名然后在使用obd cluster edit-config demo 集群名然后改了一下内存大小,这个正在测试是否重启生效
老师现在有个问题就是我将3个节点中的一个节点手动kill然后在想启动的时候状态不对


是我拉起的命令不对么?
alter system start server ‘10.0.4.7:2890’ zone ‘xjws1’;
说明:2890是rootserver的端口号
2889是ob的端口号2891是obproxy的端口号(我更换了端口号)
image
在4.7服务器中查看不到端口号