【openGauss】一主一备实现主备节点切换实验(switchover、failover)

本文介绍了openGauss数据库管理员如何在运行过程中进行主备切换,包括switchover和failover步骤,以及注意事项如避免双主问题和修复WAL错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

openGauss在运行过程中,数据库管理员可能需要手工对数据库节点做主备切换。例如发现数据库节点主备failover后需要恢复原有的主备角色,或怀疑硬件故障需要手动进行主备切换。

级联备机不能直接转换为主机,只能先通过switchover或者failover成为备机,然后再切换为主机。(级联备机:与主机直接交互进行数据同步的称为一级备机,通过与一级备机实现数据同步的属于二级备机,也叫级联备机)

初始化集群状态(以一主一备为例)

image.png

一、switchover 切换

使用omm用户登录到想要切换为主节点的备节点,执行以下命令,完成切换即可

gs_ctl switchover -D /opt/software/install/data/dn

image.png

二、failover 切换

1.将主实例所在节点关机

因为实验环境目前无法通过业务引发节点故障,所以当前实验选择将数据库主实例所处节点进行关机以达到主实例挂机的效果

将opengauss-0001节点关机后,目前仅剩opengauss-0002节点,使用omm用户登录到0002节点后使用gs_om查询集群状态会发现gs_om运行非常慢,且无法返回集群信息,所以在此需要使用gs_ctl工具查询集群状态

gs_ctl query -Cv -D /opt/software/install/data/dn

以上-D指定的是数据目录,当前案例数据库安装的数据目录/opt/software/install/data/dn

2.在当前备节点执行以下命令完成集群状态切换
gs_ctl failover -D /opt/software/install/data/dn/

image.png

当前查询集群状态可以发现,当前集群再运行节点为 1 台

gs_ctl query -Cv -D /opt/software/install/data/dn

image.png

3.将原主实例所在的主机重新开机,然后再查询集群状态

在以下状态中可以发现0001节点上的实例状态为Down

image.png

4. 将集群恢复到一主一备

容易出现的问题
如果直接在备节点使用 gs_om -t start 或者 gs_ctl start -D /opt/software/install/data/dn 启动后会出现双主的情况,会导致整个集群出现问题
image.png

解决办法是在备节点启动实例时应该指定运行模式为standby

gs_ctl stop -D /opt/software/install/data/dn

正确操作方式
启动命令如下:

gs_ctl start -M standby -D /opt/software/install/data/dn

image.png

启动后使用refreshconf刷新集群配置信息

gs_om -t refreshconf

image.png

查询当前集群状态会发现,standby节点状态提示“Need repair(WAL)”
在standby的节点主机执行以下命令进行修复,(修复中可能会有faild报错,是可以忽略的,主要看最后几行是都执行成功)

gs_ctl build -D /opt/software/install/data/dn

image.png
image.png
执行完成后查看集群状态可以看到当前集群整体状态是一主一备
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhouwhui

这是一个你请我恰饭的机会呀!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值