Switchover 时会出现的问题?怎么解决?(二)

接上篇

字段值 9:CAN NOT ACCESS CLUSTERS: cluster1, cluster2

含义

某些集群不能访问,需要校验这些备集群的状态。

处理方法

  1. 在主集群上,执行以下命令,查询备集群的详细同步状态。

obclient> SELECT CLUSTER_ID, SYNCHRONIZATION_STATUS FROM V$OB_STANDBY_STATUS;

  1. 根据查询结果中 SYNCHRONIZATION_STATUS 字段的描述进行处理。

字段值 10:NO CLUSTER IN SWITCHING

含义

没有集群处于 SWITCHING 状态,不能让备集群 Switchover 成为主集群。当备集群处于 NOT ALLOWED 状态时可能出现该信息。

处理方法

在主集群上执行以下命令,查询各集群的状态,确认之前是否成功执行了主集群切换为备集群的操作。

obclient> SELECT SWITCHOVER_STATUS FROM V$OB_CLUSTER;

字段值 11:PRIMARY CLUSTER NOT IN SYNC MODE

字段含义

日志传输模式没有设置为同步模式。

在最大保护和最大可用模式下,要求主集群的日志传输参数配置为强同步(SYNC)模式,同时要求 Switchover 之后,保护模式不变,并且原主集群变为强同步的备集群。

处理方法

您可以登录主集群,通过修改主集群的日志传输参数为 SYNC 来解决该问题。配置集群的日志传输参数相关操作请参见 配置备集群日志传输参数

字段值 12:STANDBY CLUSTER NOT IN SYNC MODE

含义

日志传输模式没有设置为强同步模式。

在最大保护或最大可用模式下,只能选择强同步(SYNC)模式的备集群切换为主集群。当前备集群的日志传输参数没有配置为 SYNC 模式,故不允许切换为主集群。

处理方法

选择强同步(SYNC)模式的备集群切换为主集群。

字段值 13:PRIMARY CLUSTER HAS REPLICA IN RESTORE

含义

当前主集群上有部分副本没有创建完成,不允许执行角色切换。

处理方法

需要您主动删除这部分副本后才能继续执行角色切换。

查询主集群上副本状态的方法如下:

  • 查看正在恢复的系统表的副本状态

obclient> SELECT * FROM __ALL_ROOT_TABLE WHERE IS_RESTORE != 0;

  • 查看正在恢复的用户表副本状态

obclient> SELECT * FROM __ALL_VIRTUAL_META_TABLE WHERE IS_RESTORE != 0;

字段值 14:STANDBY CLUSTER HAS REPLICA IN RESTORE

含义

当前备集群上有部分副本没有创建完成,不允许执行角色切换。

处理方法

需要等待备集群上的副本创建完成后才能继续执行角色切换。

您可以在备集群上执行以下命令,查看副本状态:

  • 查看正在恢复的系统表的副本状态

obclient> SELECT * FROM __ALL_ROOT_TABLE WHERE IS_RESTORE != 0;

  • 查看正在恢复的用户表副本状态

obclient> SELECT * FROM __ALL_VIRTUAL_META_TABLE WHERE IS_RESTORE != 0;

字段值 15:PRIMARY CLUSTER DOING BACKUP

含义

主集群正在执行备份,不允许执行角色切换,因为切换为备集群后不再支持备份,要求您先停止备份任务。

处理方法

在主集群上,执行以下命令,停止备份任务。

obclient> ALTER SYSTEM CANCEL BACKUP;

字段值 16:CHECK OTHER PRIMARY CLUSTER

含义

存在其他主集群,不允许执行角色切换,防止集群出现双主。

处理方法

在当前集群上执行以下命令,查询其他集群的信息,以便确认集群状态并选择正确的集群执行角色切换。

obclient> SELECT * FROM V$OB_STANDBY_STATUS;

字段值 17:INNER ERROR

含义

发生内部错误。

处理方法

请联系技术支持人员协助处理。