在新建备集群前,需要参考本节内容检查主集群配置,确保该主集群上能添加备集群。
操作步骤
在主集群上,执行以下命令,验证是否允许添加备集群。
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
表示出错原因和建议措施,请参考下表进行分析处理。
错误信息 | 错误原因及分析 | 处理建议 |
---|---|---|
| 系统表 Schema 变更后,未执行合并操作。 主集群执行升级操作后会触发系统表的 Schema 变更,故要求执行升级操作后,需要合并一轮才能添加相同版本的备集群,如果未执行合并,则会报错。 | 在主集群上发起合并操作,并且等待合并完成。 在主集群发起合并的具体操作请参见 手动触发合并。 |
| 用户表配置了 Primary Zone 或者 Locality。 如果租户下的表配置了 Primary Zone 或者 Locality,目前不支持添加备集群。 | 去掉表级 Primary Zone 或者 Locality 配置。 |
| Tablegroup 配置了 Primary Zone 或者 Locality。 如果 Tablegroup 配置了 Primary Zone 或者 Locality,目前不支持添加备集群。 | 去掉 Tablegroup 的 Primary Zone 或者 Locality 配置。 |
| 用户的数据库配置了 Primary Zone。 如果用户的数据库配置了 Primary Zone,目前不支持添加备集群 | 去掉数据库的 Primary Zone 配置。 |
| 集群中存在非 GTS 配置的租户。 备集群仅支持 GTS 配置的租户,要求所有租户都配置为 GTS。 | 检查所有普通租户的系统变量 |
| 存在处于恢复状态的租户。 主集群的部分租户处于物理恢复状态时,不支持添加备集群。 | 等待租户恢复完成,或者删除恢复状态的租户。 |
| 存在垃圾副本没有回收。 用户删除表或者删除分区后,会遗留垃圾副本等待回收;在垃圾副本回收前,为避免影响主集群的正常工作,不允许添加备集群。 | 等待所有垃圾副本被回收后再添加备集群。 |
|
| 将 |
| 集群角色不是 | 只能在主集群上添加备集群,备集群上不能添加备集群。 |
| 集群处于升级状态。 升级中的主集群不支持添加备集群。 | 等待升级完成。 |
| 执行 Failover 后需要等待合并结束。 执行 Failover 流程后,系统会在内部发起一轮合并,如果需要添加备集群,则需要等合并结束。 | 等待合并完成后再添加备集群。 |
| 达到集群数上限,不能添加更多的备集群。 OceanBase 数据库的主备库功能支持一个主集群和最多 31 个备集群,不支持添加更多的备集群。 | 建议通过 |
| 物理恢复租户后未进行合并,不能添加备集群。 主集群执行物理恢复租户操作后,要求合并一轮后才能添加备集群,如果未执行合并,会影响备集群同步物理恢复租户的数据。 | 在主集群上发起合并操作,并且等待合并完成。 在主集群发起合并的具体操作请参见 手动触发合并。 |