首批通过分布式安全可靠测评,为关键业务系统打造
主备库手工解耦操作
更新时间:2026-05-09 07:56
主备库解耦是指解除主库与备库的主备关系,使得备库成为独立的主库。
通常,我们使用 OCP 进行备库的创建以及主备库的解耦。但是,OCP 不支持对 OceanBase 数据库 V2.2.77 bp9 之前的版本进行解藕操作,需要人工进行解藕。
适用版本
OceanBase 数据库 V2.x、V3.x 版本。
检查阶段
检查主备库同步状态正常。
在主库检查
__all_virtual_standby_status的 synchronization_status 值是 OK 的。检查备库正在进行的 DDL 任务和副本完整性。
- 在备库检查
__all_ddl_helper,确保没有正在进行的 DDL 任务。 - 在备库执行
select * from __all_virtual_meta_table where is_restore != 0,确保备库上副本都在。
- 在备库检查
准备阶段
上述检查都符合预期之后,进行主备库之间的网络隔离,特别注意 2881/2882 端口。
实施阶段
杀备库上的历史活跃会话。
select * from __all_virtual_processlist where state<>'sleep';修改备库的集群名。
alter system set `cluster`=`cluster_new`;在备库执行 failover 操作,将备库升级为主库。
alter system activate pyhsical standby cluster;使用新的集群信息,重建原备库的 OBProxy。

解耦后可能会遇到的问题
备库 schema 刷新不出来
select * from_all_virtual_server_schema_info;解决方式:对 RS 节点指定参数进行启动,
/home/admin/oceanbase/bin/observer -m disabled_cluster。备库部分分区无主
select * from __all_virtual_clog_stat where role!='LEADER' or status !='ACTIVE';解决方式:可能和事务状态机回放有关,重起进程是有概率恢复,对该节点进行重启。
备库合并报错
select * from __all_zone; 合并状态为merge error解决方式:在
rootservice.log中搜索merge error关键字,根据对应的 trace 和 table_id 去对应 OBServer 节点上进一步查询报错信息。