【产品名称】oceanbase-ce
【产品版本】3.1.1
【问题描述】集群有3个zone, 每个zone12个节点。由于机器硬件问题,导致集群的一个节点异常掉线。
这种情况下会把掉线节点的partition重新分布到该zone上其它11台机器上么?
现在集群变成了12-11-12这种,会不会影响集群性能?
如果我再把机器加回去,是会把之前11台机器上的partition重新分布到12台机器上么?
机器硬件修复后,数据都还在,我只能把数据和日志清空,类似做个扩容操作来加入到集群么?
有没有这方面详细的文档说明,感激不尽!
上旬
#2
异常掉线的情况不会吧节点的partition重新分布到该zone的其它机器上,该节点的observer进程挂掉之后,还剩余两个节点仍然可以正常运行,不会影响集群性能;
如果再把机器加回去,之后该机器会在原有数据的基础上把数据补平达到和另外两个节点一致的状态。
直接把进程拉起来,在进程的命令行参数上指定zone和root service就可以么?
上旬
#4
直接重启就可以,OceanBase 社区版
如果想要让挂掉的节点上的副本迁到同zone内的其他节点的话,可以按如下顺序进行操作:
1、stop server
2、delete server (该操作会引发副本迁移)
3、kill observer 进程
4、重启进程
5、add server
参考下这个:OceanBase 社区版
https://open.oceanbase.com/docs/community/oceanbase-database/V3.1.0/server_permanent_offline_time,目前集群的这个参数是3600s,已经超过这个阈值,会不会触发节点的数据重建?
上旬
#6
节点下线时间超过server_permanent_offline_time这个参数值,该下线节点上的副本就会被迁移到同zone内的其他节点上,重新上线该节点是会引起节点数据重建的
可以通过下面的语句查看下该机器上的副本是否迁移到其他机器上,如果都相等的话就说明故障机器上的副本已经迁移走了
select b.zone,count(*) from gv$partition a left join __all_server b on a.svr_ip = b.svr_ip where b.status ='active' group by a.svr_ip;

1 个赞
简葵
#7
这种情况下会把掉线节点的partition重新分布到该zone上其它11台机器上么?
-----
会不会把掉线节点的partition重新分布到该zone上其它11台机器要看unit num配的多少,如果小于等于11,会的,如果等于12,就不会;
现在集群变成了12-11-12这种,会不会影响集群性能?
-------
12:12:12的环境,3个副本,挂掉一台server,ob具有高可用能力会将主切到其他的zone,不会影响使用;也不会影响性能;
机器硬件修复后,数据都还在,我只能把数据和日志清空,类似做个扩容操作来加入到集群么?
------
直接拉起来即可,不需要清理数据;
1 个赞
https://github.com/oceanbase/oceanbase/blob/master/docs/docs/junior-training/ob-quick-start/chapter05/5.1.md
1 个赞