OceanBase 4.2 主备库 FailOver 与 SwitchOver 概念

主备库的 SwitchOver 和 FailOver 概念

租户有主租户和备租户的概念,主租户位于主库,备租户位于备库。
SwitchOver 操作是在用户计划内对租户角色进行变更。当用户主动切换主备库角色时,称为 SwitchOver,RPO=0,耗时秒级。

FailOver 操作通常是在主租户出现无法恢复的故障时所做的切换行为。当主库故障时,切换到备库,称为FailOver,RPO一般为毫秒,耗时秒级。简单说来,SwitchOver,不丢数据,FailOver 会丢一点数据。

由于 OceanBase 数据库的每个租户均有多个日志流,而 Failover 操作需要在操作执行完成后达到数据一致的状态,故系统会选择所有日志流的同步位点中 SCN 最小的值作为 Failover 的执行位点。执行Failover 操作后,租户下的所有日志流都会统一回退到该位点。

参考:https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000033895

FailOver 操作

在主租户不可用情况下,可以执行 FAILOVER 命令,将备租户切换成主租户。
执行 FAILOVER 后,备租户所有日志流的数据回滚到一致性位点,然后切换为主租户。

ALTER SYSTEM ACTIVATE STANDBY [TENANT tenant_name]

FailOver 操作完成后,查询内部表看是否切换成功:

SELECT TENANT_NAME, TENANT_TYPE, TENANT_ROLE, SWITCHOVER_STATUS FROM oceanbase.DBA_OB_TENANTS;
+-----------------+-------------+-------------+-------------------+
| TENANT_NAME     | TENANT_TYPE | TENANT_ROLE | SWITCHOVER_STATUS |
+-----------------+-------------+-------------+-------------------+
| standby_tenant  | USER        | PRIMARY     | NORMAL            |
+-----------------+-------------+-------------+-------------------+
1 row in set

根据查询结果,备租户的 TENANT_ROLE 变为 PRIMARY,且 SWITCHOVER_STATUS 为 NORMAL,则表示备租户切主成功。

SwitchOver操作

租户主备角色切换命令,可以将主租户无损切换为备租户,备租户切换成主租户。

ALTER SYSTEM SWITCHOVER TO  STANDBY [TENANT tenant_name]
ALTER SYSTEM SWITCHOVER TO  PRIMARY [TENANT tenant_name]

你可能感兴趣的:(oceanbase)