4.0 observer 节点故障恢复

【 使用环境 】生产环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
ocp:版本435
observer :版本435

通过 ocp 部署的 ob4.0 集群其中一个节点DEV026 死机了。发现后重启服务器。

节点重启后 ocp 上 显示observer服务 不可用,查看dev026节点 observer.log 它一直再刷日志,没有发现 error 错误。 ocp上集群信息显示 当前集群不可用 ,请联系管理员。

ocp 上点击 启动 报错

observer 。log 日志
observer.log.tar.gz (4.4 MB)

3 个赞

3个节点 obclient可以分别黑屏登录成功吗?

3 个赞

我使用 ocp 安装的 三个节点上都没有 obclient 命令。

在ocp 界面显示的服务状态。

1 个赞

可以手动安装一个obclient客户端
yum install obclient

4 个赞

ob4.0 集群 (172.17.151.124、172.17.151.125、172.17.151.126)

使用obclient 命令连接:

172.17.151.124 节点可以的登陆
172.17.151.125 节点显示错误
172.17.151.126 节点显示在初始化

[root@dev026 data]# obclient -h172.17.151.125 -P2883 -uroot@odc#ob435 -pRoot_123 -A
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
[root@dev026 data]# ^C
[root@dev026 data]# obclient -h172.17.151.124 -P2883 -uroot@odc#ob435 -pRoot_123 -A
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 312746
Server version: OceanBase_CE 4.3.5.0 (r100000202024123117-5d6cb5cbc3f7c1ab6eb22e40abec8e160a8764d5) (Built Dec 31 2024 17:35:01)

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 [(none)]> Bye
[root@dev026 data]# obclient -h172.17.151.125 -P2883 -uroot@odc#ob435 -pRoot_123 -A
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
[root@dev026 data]# obclient -h172.17.151.126 -P2883 -uroot@odc#ob435 -pRoot_123 -A
ERROR 2002 (HY000): Can’t connect to MySQL server on ‘172.17.151.126’ (115)
[root@dev026 data]# netstat -tnpl|grep 288
tcp 0 0 0.0.0.0:2881 0.0.0.0:* LISTEN 1288/observer
tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 1288/observer
tcp6 0 0 :::2882 :::* LISTEN 1288/observer
tcp6 0 0 :::62888 :::* LISTEN 1208/ocp_mgragent
tcp6 0 0 :::62889 :::* LISTEN 1209/ocp_monagent
[root@dev026 data]# obclient -h172.17.151.126 -P2881 -uroot@odc#ob435 -pRoot_123 -A
ERROR 8001 (08004): Server is initializing

另外 使用 客户端工具连接 是 失败的

4 个赞

1.125走2881端口连接试下

2.任意一节点使用root@sys连接上后执行 发下结果
select * from dba_ob_zones;
select * from dba_ob_servers;

3 个赞

学习学习

2 个赞

可以先用obdiag巡检下集群

obdiag check run

https://www.oceanbase.com/docs/common-obdiag-cn-1000000002968718

2 个赞

125 节点无法登陆, 124 节点可以访问sys 租户,下面的 SQL 显示没有选择数据库,show databases 报错了
obclient [(none)]> show databases;

ERROR 4012 (HY000): Timeout, query has reached the maximum query timeout: 10000000(us), maybe you can adjust the session variable ob_query_timeout or query_timeout hint, and try

again.

2 个赞

125登录时不要加“#集群名

select * from oceanbase.dba_ob_zones;
select * from oceanbase.dba_ob_servers;

1 个赞

生成配置文件 卡住了。。

image

1 个赞

不写上 报错

1 个赞

这里是obdiag连不上数据库,使用obdiag诊断分析下近30分钟的日志看下
obdiag analyze log [options]
https://www.oceanbase.com/docs/common-obdiag-cn-1000000002968720

1 个赞

这个查下

select * from oceanbase.dba_ob_zones;
select * from oceanbase.dba_ob_servers;

1 个赞

从OCP 上,172.17.151.124 ,172.17.151.126 都正常,可以考虑重新部署172.17.151.125 这一台。
不过,在实际诊断中,你出现了直连ob server 与通过ob proxy 访问两种方法,不能确定172.17.151.124 ,172.17.151.126 的状态。

  1. ob server 直连的方式是通过2881 端口访问,你可以使用 obclient -h172.17.151.124 -P2881 -uroot@odc#ob435 -pRoot_123 -A 继续访问124 这个ob server 看看是否是ERROR 8001 (08004): Server is initializing,如果有,就表示直连ob server 有一些未知的故障!就可以忽略,查看步骤2
  2. 任意一节点使用root@sys连接上后执行 发下结果
    select * from dba_ob_zones;
    select * from dba_ob_servers;
    如果确定只有125 为异常,就可以考虑重装125 这台ob server

手动把故障节点observer进程kill干净,再在OCP上启动这个observer行不行

查询出错了

有个日志
result_details.txt (726 字节)

应该是配置有问题,没有分析到日志,你在ocp上将这3台主机同时重启下,然后观察集群是否恢复了?

初始化过程出问题了吧