GaussDB(DWS)主备均衡指南

举报
召走小子 发表于 2020/11/05 15:18:08 2020/11/05
【摘要】 介绍了GaussDB(DWS)主备均衡的基本方案及常见问题定位处理方法。

GaussDB(DWS)主备均衡指南

1      主备均衡实施方案

1.1      操作场景

集群发生软硬件故障导致主DNGTM实例异常后,备DNGTM实例会自动升主接管业务。待解决软硬件故障,修复异常实例后,需要进行主备均衡操作,使集群恢复平衡状态。

如下是集群主备均衡状态的示例:

 image.png

如下是集群主备不均衡状态的示例:

image.png

主备均衡操作就是使集群从上图不均衡的状态恢复为均衡的状态。

1.2      操作注意事项

进行主备均衡操作前有如下注意事项,须严格遵守,否则可能会导致主备均衡失败:

1.         集群状态为Normal状态;

2.         执行切换时需停止业务不停止业务可能导致切换失败;

3.         查询pgxc_get_senders_catchup_time()视图为空。查询方法如下:

连接数据库执行语句select pgxc_get_senders_catchup_time();

image.png

4.         对于同一对实例,上一次主备切换未完成,不能执行下一次切换。

1.3      操作步骤

一、整集群切换

1.         omm用户登录GaussDB(DWS)集群任一主机,执行如下命令加载环境变量;

source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile

2.         执行以下命令查询并确认集群运行状态及“balanced”状态;

gs_om -t status --detail

image.png

cluster_state”为“Normal”表示集群运行正常,“balanced”状态为“No”表示集群实例发生过主备切换。

3.         使用如下命令查看集群状态确认是哪些节点上的实例发生过主备切换;

gs_om -t status --detail

例如下面示例中,node2节点上的主dn2发生过主备切换。该DN原始为主DN(“state”中的字母“P”代表其初始为Primary DN),当前切换成了备DN(“state ”状态变成了“Standby Normal”)。

image.png

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所在节点

主备dngtm实例日志

/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_servercm_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

image.png

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)        killCM Server的进程;

kill -9 125124

CM Server自动重启后会停止异常的主备实例,重新仲裁。

5)        实例状态恢复后,重新主备切换。

 


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。