3节点集群中的一个节点挂掉了,如何恢复?

实在不行,你把故障节点踢了,重新加入不行吗??


显示不出来版本

配置环境变量,否则启动 observer 会报错:找不到 libmariadb.so.3: cannot open shared object file

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

observer日志在哪儿看


我这里怎么还不行呢?

  1. 配置文件home_path设置得路径下得log里。
  2. home_path路径下得lib

不懂,请详细说明一下

1.可以参考下 【SOP 系列 19】OceanBase 生态组件重启方式 - 社区问答- OceanBase社区-分布式数据库
image
换成你得实际路径即可

  1. 提供observer.log日志把

  2. 可以联系企业版的交付同学。

提供下observer.log日志或者通过obdiag巡检下日志和集群情况
obdiag文档:OceanBase分布式数据库-海量数据 笔笔算数1

企业版跟社区版的OB 目录文件名不一定完全一样。

su - admin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib
cd ~/oceanbase && bin/observer

等1分钟

ps -ef|grep observer

再等 3分钟
到数据库里查节点状态。如果状态正常就好,如果还是不正常,估计节点由于宕机太久已经永久下线了。那就需要重建这个节点。
三副本的情况下 OCP 里是无法剔除这个节点的。
重建的思路:

  1. 杀掉 ob 进程。
  2. 删除 ob相关目录下的文件
    下面是参考,生产环境还是找 售后做。
su - admin
cd oceanbase && /bin/rm -rf etc/*config*  run/* log/*

删除 sstable 、clog、 slog 下面的所有文件。
然后重新用完整的参数 启动这个 observer 进程。启动成功后节点会重新加入到 OB 集群并自动同步数据。

如果是生产环境,找原厂售后做安全一些。

1 个赞

看了一下文档,好像后来的 OCP 版本是可以做节点重装。
参考: OceanBase分布式数据库-海量数据 笔笔算数

先试试 OCP 的重装节点。如果不行的话,再考虑上面手动的办法。

应该是宕机太久的原因,我看5月23号就停了。我用OCP进行重装,在alter system delete server IP:port这一步报错了,系统删不掉这个服务


我手动删也删不掉

那看来 ocp 的这个方法还是不行。三节点的情况下是不允许删除节点。
ocp 不要动了。也不需要删除节点。
按前面我说的那个思路去做(不用 delete server,也就没有 add server 这一步)

单节点故障处理方式: 【SOP 系列 14】OceanBase 集群单台机器故障后处理方法

参考这个 视频 5.2 重建 OceanBase 集群节点 - OceanBase数据库视频中心
这是社区版视频,企业版也一样,不过目录不一样。
文档参考 社区版第一个版本的 入门实践文档,讲的比较详细。
数据库学习 - 数据库知识培训 - OceanBase学习中心

ocp 里先 回滚任务。

是不是OB节点的 server_permanent_offline_time时间太久了,导致节点已经无法加入到集群。可以在ocp上面删除节点么

3节点的不能删除,只能按照他说的步骤重建