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

企业版跟社区版的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节点的不能删除,只能按照他说的步骤重建