在新建备集群前,需要参考本节内容检查主集群配置,确保该主集群上能添加备集群。

操作步骤

在主集群上,执行以下命令,验证是否允许添加备集群。

  1. obclient > ALTER SYSTEM ADD CLUSTER VERIFY;

注意

主集群上物理恢复租户后,需要合并一轮才能新建备集群。OceanBase 数据库 V2.2.76 以下版本的 ADD CLUSTER VERIFY 命令不会检查该条件,OceanBase 数据库 V2.2.76 及以上版本会检查并提示 NEED MAJOR FREEZE AFTER RESTORE TENANT 的报错信息。

如果命令执行成功,则表示可以添加备集群。

如果命令执行失败,系统会提示错误信息,错误信息的格式为 Add cluster not allowed. Actions: action,其中 action 表示出错原因和建议措施,请参考下表进行分析处理。

错误信息

错误原因及分析

处理建议

NEED MAJOR FREEZE AS SYS SCHEMA CHANGED

系统表 Schema 变更后,未执行合并操作。

主集群执行升级操作后会触发系统表的 Schema 变更,故要求执行升级操作后,需要合并一轮才能添加相同版本的备集群,如果未执行合并,则会报错。

在主集群上发起合并操作,并且等待合并完成。

在主集群发起合并的具体操作请参见 手动触发合并

CHECK TABLE PRIMARY ZONE OR LOCALITY CONFIG

用户表配置了 Primary Zone 或者 Locality。

如果租户下的表配置了 Primary Zone 或者 Locality,目前不支持添加备集群。

去掉表级 Primary Zone 或者 Locality 配置。

CHECK TABLEGROUP PRIMARY ZONE OR LOCALITY CONFIG

Tablegroup 配置了 Primary Zone 或者 Locality。

如果 Tablegroup 配置了 Primary Zone 或者 Locality,目前不支持添加备集群。

去掉 Tablegroup 的 Primary Zone 或者 Locality 配置。

CHECK DB PRIMARY ZONE CONFIG

用户的数据库配置了 Primary Zone。

如果用户的数据库配置了 Primary Zone,目前不支持添加备集群

去掉数据库的 Primary Zone 配置。

CHECK TENANT GTS CONFIG

集群中存在非 GTS 配置的租户。

备集群仅支持 GTS 配置的租户,要求所有租户都配置为 GTS。

检查所有普通租户的系统变量 ob_timestamp_service 的取值,要求配置的值为 GTS

CHECK TENANT IN RESTORE

存在处于恢复状态的租户。

主集群的部分租户处于物理恢复状态时,不支持添加备集群。

等待租户恢复完成,或者删除恢复状态的租户。

NEED OFFLINE GARBAGE REPLICA

存在垃圾副本没有回收。

用户删除表或者删除分区后,会遗留垃圾副本等待回收;在垃圾副本回收前,为避免影响主集群的正常工作,不允许添加备集群。

等待所有垃圾副本被回收后再添加备集群。

CHECK ENABLE_ONE_PHASE_COMMIT CONFIGURATION

ENABLE_ONE_PHASE_COMMIT 配置项为开启状态。

ENABLE_ONE_PHASE_COMMIT 配置项在开启状态时,不允许添加备集群。

ENABLE_ONE_PHASE_COMMIT配置项的值设置为 False

CHECK CLUSTER ROLE

集群角色不是 PRIMARY

只能在主集群上添加备集群,备集群上不能添加备集群。

CHECK CLUSTER UPGRADE MODE

集群处于升级状态。

升级中的主集群不支持添加备集群。

等待升级完成。

NEED WAIT MAJOR FREEZE FINISHED AFTER FAILOVER

执行 Failover 后需要等待合并结束。

执行 Failover 流程后,系统会在内部发起一轮合并,如果需要添加备集群,则需要等合并结束。

等待合并完成后再添加备集群。

REACH ALL CLUSTER COUNT LIMIT

达到集群数上限,不能添加更多的备集群。

OceanBase 数据库的主备库功能支持一个主集群和最多 31 个备集群,不支持添加更多的备集群。

建议通过 V$OB_STANDBY_STATUS 视图查看集群的状态信息,并删除不再使用的备集群。删除备集群相关操作请参见 删除备集群

NEED MAJOR FREEZE AFTER RESTORE TENANT

物理恢复租户后未进行合并,不能添加备集群。

主集群执行物理恢复租户操作后,要求合并一轮后才能添加备集群,如果未执行合并,会影响备集群同步物理恢复租户的数据。

在主集群上发起合并操作,并且等待合并完成。

在主集群发起合并的具体操作请参见 手动触发合并