• 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]
    
    • 1

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    SwitchOver操作

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

    ALTER SYSTEM SWITCHOVER TO  STANDBY [TENANT tenant_name]
    ALTER SYSTEM SWITCHOVER TO  PRIMARY [TENANT tenant_name]
    
    • 1
    • 2
  • 相关阅读:
    Flink 流处理API
    IDEA插件的在线离线安装
    物联网通信消息队列客户端-MQTT简介
    灌区量测水监测系统解决方案 灌区量测水系统解决方案 农业水价综合改革解决方案
    RGB(c++)
    Post与get的请求过程
    docker commands全解析
    Dirac delta function (狄拉克 delta 函数)
    【驯服野生verilog-mode全记录】day1 —— 常用链接与基本命令模板
    电感基础复盘
  • 原文地址:https://blog.csdn.net/maray/article/details/133720369