GaussDB-主备切换

187 阅读3分钟

GaussDB-主备切换

操作场景

可以通过容灾主备切换,将容灾关系中主实例和灾备实例灾备关系互换,原来的主实例变为灾备实例,原来的灾备实例变为主实例。

容灾主备切换命令不会解除容灾关系。

前提条件
  • 已成功建立容灾。
  • 容灾主实例与灾备实例的状态都处于正常。
约束限制
  • 在无数据丢失RPO=0,RTO<=20分钟(包含主实例降为灾备实例、灾备实例升主两个流程),没有日志积压(即容灾监控指标RPO<= 10秒,RTO<=1秒),sequence个数少于10,主实例与灾备实例均处于normal状态,且打开快速倒换模式的情况下,启动容灾倒换可在内核时间60s内完成倒换。

    当主实例与灾备实例异构且CN数量不一致,倒换完成之后,CN数量多的实例会以degraded态退出。在有日志积压(即容灾监控 指标RPO>10秒,RTO >1秒),日志传输、日志回放会增加容灾倒换的耗时,无法实现规格内的倒换。

  • 容灾倒换过程中,容灾的两个实例的备份恢复和实例升级前端功能入口将暂时屏蔽,倒换结束后会放开。
  • 当主实例与灾备实例CN数不一致,倒换完成后,CN多的实例可能会有节点状态为异常,CN的状态会显示down、building、deleted等状态。如果CN自动修复(cma参数enable_cn_auto_repair,on打开,off关闭)打开,实例可自动恢复,否则需要使用节点修复,修复对应节点CN。
  • 倒换前主实例或灾备实例存在异常节点,倒换完成后,需要对异常节点进行节点修复。
操作步骤
  1. 登录云数据库GaussDB管理平台(TPOPS)

  2. 单击“容灾管理”,进入“容灾管理”页面。

  3. 单击“操作 > 主备切换”。

    图1 主备切换

  4. 单击“确定”,进入任务中心,可查看容灾倒换的进度详情。

    执行成功后,“任务状态”为“正常”,容灾关系的主实例与灾备实例灾备关系对调。

结果检查
  1. 检查页面显示的实例状态和后台实际实例状态是否一致。

    1. 以Ruby用户登录待查看节点。
    2. 执行以下命令,查询主实例与灾备实例状态。

    cm_ctl query -Cvp

    主实例normal态回显:

    [  Datanode State   ]
    node              instance        state            | node              instance        state            | node              instance state
    ---------------------------------------------------------------------------------------------------------------------------------------------------------------
    1  <IP> 6001 <PORT>      P Primary Normal | 2  <IP> 6002 <PORT>      S Standby Normal | 3  <IP> 6003 <PORT>      S Standby Normal
    

    灾备实例normal态回显:

    [  Datanode State   ]
    node             instance        state            | node             instance        state            | node             instance state
    ------------------------------------------------------------------------------------------------------------------------------------------------------------
    1  <IP> 6001 <PORT>      P Main Standby Normal | 2  <IP> 6002 <PORT>      S Cascade Standby Normal | 3  <IP> 6003 <PORT>      S Cascade Standby Normal
    
  2. 执行以下命令,检查主实例与灾备实例容灾状态。

    gs_ssh -c "cat $PGHOST/.hadr_cluster_stat"

    预期内灾备关系与状态:

    主实例:archive

    灾备实例:recovery

  3. 检查是否存在倒换相关状态文件残留。

    1. 确认各套实例的重入标识文件是否存在,若存在标识文件则删除。

      gs_ssh -c "ls -l $PGHOST/.standby_to_primary_flag"

      gs_ssh -c "rm $PGHOST/.standby_to_primary_flag" (只有查到才需要删除)

    1. 确认各套实例加回步骤文件是否存在,如果存在则删除。

      gs_ssh -c "ls -l $PGHOST/streaming_disaster_recovery_restore_step.dat"

      gs_ssh -c "rm $PGHOST/streaming_disaster_recovery_restore_step.dat" (只有查到才需要删除)

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…