执行命令 ENABLE CLUSTER SYNCHRONIZATION 开启数据同步的目的是接入到主集群,该命令在执行过程中可能会报错。本节主要介绍执行 ENABLE CLUSTER SYNCHRONIZATION 命令后可能出现的报错及其原因和处理方法。

报错信息 1:standby cluster not exist

可能原因

需要开启数据同步的集群的 CLUSTER_ID 不存在。

处理方法

在主集群上,执行以下命令,查询 V$OB_STANDBY_STATUS 视图,查看需要开启数据同步集群的 CLUSTER_ID

  1. obclient> SQL> SELECT CLUSTER_ID, CLUSTER_ROLE, CLUSTER_STATUS FROM V$OB_STANDBY_STATUS;
  2. +-------------+----------------------+--------------------+
  3. | CLUSTER_ID | CLUSTER_ROLE | CLUSTER_STATUS |
  4. +-------------+----------------------+--------------------+
  5. | 1 | PHYSICAL STANDBY | DISABLED |
  6. +-------------+----------------------+--------------------+

报错信息 2:enable read only cluster not allowed

可能原因

处于只读模式的集群不能开启数据同步。

处理方法

报错信息 3:enable primary cluster not allowed

可能原因

不能对主集群执行开启数据同步的操作。

处理方法

  1. 在主集群上,执行以下命令,查询 V$OB_STANDBY_STATUS 视图,查询所有备集群的信息。

    1. obclient> SELECT CLUSTER_ID, CLUSTER_ROLE, CLUSTER_STATUS FROM V$OB_STANDBY_STATUS;
    2. +-------------+-----------------------+--------------------+
    3. | CLUSTER_ID | CLUSTER_ROLE | CLUSTER_STATUS |
    4. +-------------+-----------------------+--------------------+
    5. | 1 | PHYSICAL STANDBY | DISABLED |
    6. +-------------+-----------------------+--------------------+
  2. 在备集群上执行开启数据同步操作。

报错信息 4:standby cluster failover epoch is larger than primary cluster, enable cluster not allowed

可能原因

备集群有多余的 Failover 信息,说明备集群数据与主集群数据不一致,不能开启数据同步。

可能方法

分别在主集群和备集群上执行以下命令,查询主集群和备集群的 V$OB_CLUSTER_FAILOVER_INFO 视图,查看 Failover 位点,并联系技术支持人员协助处理。

  1. 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

可能原因

备集群的冻结信息比主集群的多,不能开启数据同步。

处理方法

分别在主集群和备集群上执行以下命令,查询主集群和备集群的冻结信息,并联系技术支持人员协助处理。

  1. obclient> SELECT * FROM __ALL_VIRTUAL_FREEZE_INFO;