1. 适用场景
当主机发生故障状态异常时,用户可能需要停止主机上的所有角色,对主机进行维护检查。故障清除后,启动主机上的所有角色恢复主机业务。
2. 前提条件
GaussDB A集群安装成功,且处于已启动状态。
3. 对系统影响
停止集群前需要用户先停止数据库相关业务,从而避免因数据库停止对客户业务的影响。
4. 实施步骤
4.1预估重启后实例catchup时间
8.0以下版本重启后备机实例会有较长时间catchup状态,该状态下会占用主实例所在磁盘IO资源,IO能力较差数据量较多的情况下部分业务会出现运行较慢的情况,无其他影响,若集群启动后无重要业务可跳过。本小节主要用以估算该状态持续时间作为参考。
步骤1 以omm用户登录GaussDB A集群的第一个CN节点
步骤2 执行以下命令,启用环境变量
| source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 确认目前无实例catchup
若当前存在catchup会影响集群重启后catchup时间。
| gsql -d postgres -p 25308 -c “select * from pgxc_get_senders_catchup_time()” |
如下查询无结果,则无实例catchup,可继续后续步骤。
| nodename | lwpid | local_role | peer_role | state | sender | catchup_start | catchup_end
———-+——-+————+———–+——-+——–+—————+————- (0 rows) |
步骤3 查看单个主dn实例路径
| cm_ctl query –Cvd|grep 6001 |
| 1 10-185-179-67 6001 /srv/BigData/mppdb/data1/master1 P Primary Normal | 2 10-185-179-95 6002 /srv/BigData/mppdb/data1/slave1 S Standby Normal | 3 ASG003 3002 /srv/BigData/mppdb/data1/dummyslave1 R Secondary Normal |
步骤4 统计主实例文件数量
无严重数据倾斜情况下各个dn数据量相差不大,因此统计一个dn数据即可以代表其他实例的数据量,此处以实例6001为例。
| ls -fR /srv/BigData/mppdb/data1/master1/base|wc -l |
步骤5 根据主实例文件数量预计catchup时间
HDD盘raid组:主实例文件数/800 (s)
SSD盘:主实例文件数/1600 (s)
4.2停止集群
步骤1 以omm用户登录GaussDB A集群的第一个正常的cn节点
步骤2 执行以下命令,启用环境变量
| source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 执行以下命令3次,设置检查点,防止集群重新启动后主实例长时间redo引起集群启动较慢。
| gsql -p 25308 -d postgres -c “checkpoint” |
执行结果如下,则为正常
| CHECKPOINT |
步骤4 执行以下命令,停止集群
| cm_ctl stop -mi |
| 执行结果如下:
cm_ctl: stop cluster. cm_ctl: stop nodeid: 1 cm_ctl: stop nodeid: 2 cm_ctl: stop nodeid: 3 ………… cm_ctl: stop cluster successfully. |
4.3集群维护工作
本步骤需结合具体方案目的实施,待集群成功停止后,可以开始进行停集群维护操作,如更换磁盘,升级网卡,下电服务器等。
4.4启动集群
步骤1 以omm用户登录GaussDB A集群的第一个正常的cn节点
步骤2 执行以下命令,启用环境变量
| source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 执行以下命令,启动集群
| cm_ctl start -t 600 |
| 执行结果如下:
cm_ctl: checking cluster status cm_ctl: check finished in 247 ms. cm_ctl: start cluster. cm_ctl: start nodeid: 1 cm_ctl: start nodeid: 2 cm_ctl: start nodeid: 3 …………………………………. cm_ctl: start cluster successfully. |
4.5检查集群状态是否正常
步骤1 以omm用户登录GaussDB A集群的第一个CN节点
步骤2 执行以下命令,启用环境变量
| source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile |
步骤3 执行以下命令,确保集群状态正常
| cm_ctl query |
如下则为正常
| [ Cluster State ]
cluster_state : Normal redistributing : No balanced : Yes |
步骤4 确认集群状态是否正常。如果发生主备切换,则需要切回主备(具体参考主备切换标准方案)
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/316750.html