openGauss 实例主备切换

文章详细介绍了在openGauss数据库系统中,如何进行主备切换操作,包括正常切换、故障切换以及异常情况下的处理方法。强调了在业务不受影响的情况下进行切换,并提到了级联备机的特殊处理和可能出现的双主状态恢复步骤。
摘要由CSDN通过智能技术生成

操作场景

openGauss在运行过程中,数据库管理员可能需要手工对数据库节点做主备切换。例如发现数据库节点主备failover后需要恢复原有的主备角色,或怀疑硬件故障需要手动进行主备切换。级联备机不能直接转换为主机,只能先通过switchover或者failover成为备机,然后再切换为主机。

 说明:

  • 主备切换为维护操作,确保openGauss状态正常,所有业务结束后,再进行切换操作。
  • 在开启极致RTO时,不支持级联备机。因为在极致RTO开启情况下,备机不支持连接,所以无法与级联备机同步数据。
  • 级联备机切换后,主机的synchronous_standby_names参数不会自动调整,因此可能需要手动调整主机的synchronous_standby_names参数,否则有可能会导致主机的写业务阻塞。

操作步骤

  1. 以操作系统用户omm登录数据库任意节点,执行如下命令,查看主备情况。

    ""gs_om -t status --detail
    
  2. 以操作系统用户omm登录准备切换为主节点的备节点,执行如下命令。

    ""gs_ctl switchover -D /home/omm/cluster/dn1/
    

    /home/omm/cluster/dn1/为备数据库节点的数据目录。

     须知: 对于同一数据库,上一次主备切换未完成,不能执行下一次切换。当业务正在操作时,发起switchover,可能主机的线程无法停止导致switchover显示超时,实际后台仍然在运行,等主机线程停止后,switchover即可完成。比如在主机删除一个大的分区表时,可能无法响应switchover发起的信号。

    主机故障时,可以在备机执行如下命令。

    ""gs_ctl failover -D /home/omm/cluster/dn1/
    
  3. switchover或failover成功后,执行如下命令记录当前主备机器信息。

    ""gs_om -t refreshconf
    

示例

将数据库节点备实例切换为主实例。

  1. 查询数据库状态。

    ""gs_om -t status --detail
    
    [   Cluster State   ]
    
    cluster_state   : Normal
    redistributing  : No
    current_az      : AZ_ALL
    
    [  Datanode State   ]
    
        node             node_ip         port      instance                            state
    --------------------------------------------------------------------------------------------------
    1  pekpopgsci00235  10.244.62.204    5432      6001 /home/wuqw/cluster/dn1/   P Primary Normal
    2  pekpopgsci00238  10.244.61.81     5432      6002 /home/wuqw/cluster/dn1/   S Standby Normal
    
  2. 登录备节点,进行主备切换。另外,switchover级联备机后,级联备机切换为备机,原备机降为级联备。

    ""gs_ctl switchover -D /home/wuqw/cluster/dn1/
    [2020-06-17 14:28:01.730][24438][][gs_ctl]: gs_ctl switchover ,datadir is -D "/home/wuqw/cluster/dn1"
    [2020-06-17 14:28:01.730][24438][][gs_ctl]: switchover term (1)
    [2020-06-17 14:28:01.768][24438][][gs_ctl]: waiting for server to switchover............
    [2020-06-17 14:28:11.175][24438][][gs_ctl]: done
    [2020-06-17 14:28:11.175][24438][][gs_ctl]: switchover completed (/home/wuqw/cluster/dn1)
    
  3. 保存数据库主备机器信息。

    ""gs_om -t refreshconf
    Generating dynamic configuration file for all nodes.
    Successfully generated dynamic configuration file.
    

错误排查

如果switchover过程中出现失败,请根据日志文件中的日志信息排查错误,参见日志参考

异常处理

异常判断标准如下:

  • 业务压力下,主备实例切换时间长,这种情况不需要处理。

  • 其他备机正在build的情况下,主机需要发送日志到备机后,才能降备,导致主备切换时间长。这种情况不需要处理,但应尽量避免build过程中进行主备切换。

  • 切换过程中,因网络故障、磁盘满等原因造成主备实例连接断开,出现双主现象时,此时请参考如下步骤修复。

     警告: 出现双主状态后,请按如下步骤恢复成正常的主备状态。否则可能会造成数据丢失。

  1. 执行以下命令查询数据库当前的实例状态。

    ""gs_om -t status --detail
    

    若查询结果显示两个实例的状态都为Primary,这种状态为异常状态。

  2. 确定降为备机的节点,在节点上执行如下命令关闭服务。

    ""gs_ctl stop -D /home/omm/cluster/dn1/
    
  3. 执行以下命令,以standby模式启动备节点。

    ""gs_ctl start -D /home/omm/cluster/dn1/ -M standby
    
  4. 保存数据库主备机器信息。

    ""gs_om -t refreshconf
    
  5. 查看数据库状态,确认实例状态恢复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值