执行命令 ENABLE CLUSTER SYNCHRONIZATION 开启数据同步的目的是接入到主集群,该命令在执行过程中可能会报错。本节主要介绍执行 ENABLE CLUSTER SYNCHRONIZATION 命令后可能出现的报错及其原因和处理方法。
报错信息 1:standby cluster not exist
可能原因
需要开启数据同步的集群的 CLUSTER_ID 不存在。
处理方法
在主集群上,执行以下命令,查询 V$OB_STANDBY_STATUS 视图,查看需要开启数据同步集群的 CLUSTER_ID。
obclient> SQL> SELECT CLUSTER_ID, CLUSTER_ROLE, CLUSTER_STATUS FROM V$OB_STANDBY_STATUS; ±-----------±-----------------±---------------+ | CLUSTER_ID | CLUSTER_ROLE | CLUSTER_STATUS | ±-----------±-----------------±---------------+ | 1 | PHYSICAL STANDBY | DISABLED | ±-----------±-----------------±---------------+
报错信息 2:enable read only cluster not allowed
可能原因
处于只读模式的集群不能开启数据同步。
处理方法
无
报错信息 3:enable primary cluster not allowed
可能原因
不能对主集群执行开启数据同步的操作。
处理方法
- 在主集群上,执行以下命令,查询 V$OB_STANDBY_STATUS 视图,查询所有备集群的信息。
obclient> SELECT CLUSTER_ID, CLUSTER_ROLE, CLUSTER_STATUS FROM V$OB_STANDBY_STATUS; ±-----------±-----------------±---------------+ | CLUSTER_ID | CLUSTER_ROLE | CLUSTER_STATUS | ±-----------±-----------------±---------------+ | 1 | PHYSICAL STANDBY | DISABLED | ±-----------±-----------------±---------------+
- 在备集群上执行开启数据同步操作。
报错信息 4:standby cluster failover epoch is larger than primary cluster, enable cluster not allowed
可能原因
备集群有多余的 Failover 信息,说明备集群数据与主集群数据不一致,不能开启数据同步。
可能方法
分别在主集群和备集群上执行以下命令,查询主集群和备集群的 V$OB_CLUSTER_FAILOVER_INFO 视图,查看 Failover 位点,并联系技术支持人员协助处理。
obclient> SELECT `FAILOVER#`, TENANT_ID, SYS_TABLE_SCN, USER_TABLE_SCN FROM V$OB_CLUSTER_FAILOVER_INFO;
报错信息 5:standby cluster has more schema_version of sys than primary, enable cluster not allowed
可能原因
备集群的系统租户有多余的 Schema 变更,不能开启数据同步。
处理方法
联系技术支持人员协助处理。
报错信息 6:standby cluster has more freeze_info than primary, enable cluster not allowed
可能原因
备集群的冻结信息比主集群的多,不能开启数据同步。
处理方法
分别在主集群和备集群上执行以下命令,查询主集群和备集群的冻结信息,并联系技术支持人员协助处理。
obclient> SELECT * FROM __ALL_VIRTUAL_FREEZE_INFO;