• 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
  • 相关阅读:
    OOTD | 美式复古穿搭耳机,复古轻便的头戴式耳机推荐
    [RK3568 Android11] Input UI 使用流程
    OpenShift 4 - 配置OpenShift集群日志环境
    ubuntu源码安装aria2
    Postgresql中,计算两个日期月份差值,实现ORACLE中MONTHS_BETWEEN的效果
    数据结构与算法01:时间复杂度
    如何封装axios请求。统一基地址、加载遮罩层、响应参数优化
    LeetCode739每日温度
    Python基础教程:装饰器的详细教程
    设计模式-单例模式
  • 原文地址:https://blog.csdn.net/maray/article/details/133720369