• 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
  • 相关阅读:
    FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
    Spring中事务的几种失效场景
    HTML5期末大作业:基于 html css js仿腾讯课堂首页
    PMP证书真的有含金量吗?值不值得考?
    C++从0到1手写一个哈希表
    【Python】datetime 库
    BGP 的团体属性
    【PMTU】TCP的MTU探测
    设计模式 行为型模式 - 迭代器模式(八)
    现代检测技术--概论
  • 原文地址:https://blog.csdn.net/maray/article/details/133720369