本文讲述 OceanBase 主备集群 Failover 演练过程。
注意
有损 Failover 在 OceanBase 数据库 V3.x 的实现中(OceanBase 数据库 V2.x 和 V4.x 不存在此问题,无损 failover 也不存在此问题),预期 RTO 会耗时较长。
假设原来的主备关系是 A(主)- B(备),备集群保护模式为最大性能。演练步骤如下:
停掉 A 集群(Failover 的前提是主集群不可用)。
备集群保护模式为最大性能,因此 OCP 上可以直接操作容灾切换,对应的是有损 Failover。
B 集群做 Failover,角色变为主。
在 B 上完成演练。
在 OCP 上删除 B 集群。
登录 OCP 的 metadb,手工修改 A 的状态为“已停止”。
obclient> select * from ob_cluster where name = [集群名] and ob_cluster_id = [主集群ob id]; -- 查到原主,确认status字段是ABANDONED update ob_cluster set status = "STOPPED", sync_status = "VALID" where name = [集群名] and ob_cluster_id = [主集群ob id] ;在 OCP 上重启 A 集群。
以命令行方式登录 A 集群,手工删除备库。
obclient> alter system remove cluster '[集群名]' cluster_id = [备集群id] ;在 OCP 上重建 A 集群的备库。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本。