GaussDB(DWS)主备均衡指南
GaussDB(DWS)主备均衡指南
1 主备均衡实施方案
1.1 操作场景
集群发生软硬件故障导致主DN、GTM实例异常后,备DN、GTM实例会自动升主接管业务。待解决软硬件故障,修复异常实例后,需要进行主备均衡操作,使集群恢复平衡状态。
如下是集群主备均衡状态的示例:
如下是集群主备不均衡状态的示例:
主备均衡操作就是使集群从上图不均衡的状态恢复为均衡的状态。
1.2 操作注意事项
进行主备均衡操作前有如下注意事项,须严格遵守,否则可能会导致主备均衡失败:
1. 集群状态为Normal状态;
2. 执行切换时需停止业务不停止业务可能导致切换失败;
3. 查询pgxc_get_senders_catchup_time()视图为空。查询方法如下:
连接数据库执行语句select pgxc_get_senders_catchup_time();
4. 对于同一对实例,上一次主备切换未完成,不能执行下一次切换。
1.3 操作步骤
一、整集群切换
1. 以omm用户登录GaussDB(DWS)集群任一主机,执行如下命令加载环境变量;
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
2. 执行以下命令查询并确认集群运行状态及“balanced”状态;
gs_om -t status --detail
“cluster_state”为“Normal”表示集群运行正常,“balanced”状态为“No”表示集群实例发生过主备切换。
3. 使用如下命令查看集群状态确认是哪些节点上的实例发生过主备切换;
gs_om -t status --detail
例如下面示例中,node2节点上的主dn2发生过主备切换。该DN原始为主DN(“state”中的字母“P”代表其初始为Primary DN),当前切换成了备DN(“state ”状态变成了“Standby Normal”)。
4. 使用如下命令将集群中发生切换的实例恢复为初始配置的主备状态。
gs_om -t switch --reset --time-out=300
300为切换的等待时间,单位为s。切换后集群的“balanced”状态变为“Yes”。
执行结果如下:
Operating: Switch reset.
cm_ctl: cmserver is rebalancing the cluster automatically.
......
cm_ctl: switchover successfully.
Operation succeeded: Switch reset.
二、单个实例切换
1. omm用户登录GaussDB(DWS)集群任一主机,执行如下命令加载环境变量;
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
2. 执行如下命令进行主备切换。
gs_om -t switch -h plat1 –D /srv/BigData/mppdb/data2
plat1为待切换备DN或备GTM所在的主机;
/srv/BigData/mppdb/data2为待切换备DN或备GTM的数据目录。
注意:
对于同一对实例,上一次主备切换未完成,不能执行下一次切换。对于业务正在操作时,发起switchover,可能主机的线程无法停止导致switchover显示超时,实际后台仍然在运行,等主机线程停止后,switchover即可完成。比如在主机删除一个大的分区表时,可能无法响应switchover发起的信号。
1.4 日志路径
om日志
/var/log/Bigdata/mpp/omm/om/gs_om-xxxx.log 执行主备切换命令节点
Cm日志
/var/log/Bigdata/mpp/omm/bin/cm_ctl/ cm_ctl-xxxx.log 执行主备切换命令节点
/var/log/Bigdata/mpp/omm/cm/cm_server/cm_server-xxxx.log 主备cm_server节点
/var/log/Bigdata/mpp/omm/cm/cm_agent/cm_agent-xxxx.log 主备dn/gtm所在节点
主备dn、gtm实例日志
/var/log/Bigdata/mpp/omm/pg_log/dn_xxxx/postgresql-xxxx.log 主备dn所在节点
/var/log/Bigdata/mpp/omm/pg_log/gtm/gtm-xxxx.log 主备gtm所在节点
2 主备均衡问题定位
2.1 分析步骤
主备均衡几个关键步骤有gs_om调用cm_ctl执行切换命令、cm_ctl将切换命令发送给cm_server、cm_server通知对应节点cm_agent实例进行切换、对应实例完成升主或降备动作。如果过程中报错,日志分析一般顺序为:
/var/log/Bigdata/mpp/omm/om/gs_om-xxxx.log
->/var/log/Bigdata/mpp/omm/bin/cm_ctl/ cm_ctl-xxxx.log
->/var/log/Bigdata/mpp/omm/cm/cm_server/cm_server-xxxx.log
->/var/log/Bigdata/mpp/omm/cm/cm_agent/cm_agent-xxxx.log
->/var/log/Bigdata/mpp/omm/pg_log/dn_xxxx/postgresql-xxxx.log
->/var/log/Bigdata/mpp/omm/pg_log/gtm/gtm-xxxx.log
->gstack 主备实例pid
2.2 常见主备均衡问题
1. 主备切换长时间切不过去
这种通常是在执行切换操作前未停业务未检查追赶视图,主实例有线程未退掉无法降备导致主备切换一直未完成。
此种情况可kill主实例回退,待业务低峰期或停业务后重新按操作步骤进行主备切换。
2. 切换过程中,因网络故障、磁盘满等原因造成主备实例连接断开,出现双备现象
1) 查询主CM Server所在主机;
cm_ctl query -vCd|grep cm_server
2) omm用户登录主cm_server节点,执行如下命令加载环境变量;
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
3) 查询主CM Server的进程号;
ps -ef | grep cm_server
omm 125124 1 0 Jul23 ? 00:01:12 ${BIGDATA_HOME}/mppdb/core/bin/cm_server
125124为主CM Server的进程号。
4) kill主CM Server的进程;
kill -9 125124
CM Server自动重启后会停止异常的主备实例,重新仲裁。
5) 实例状态恢复后,重新主备切换。
- 点赞
- 收藏
- 关注作者
评论(0)