Greenplum集群状态检查操作步骤
在执行Greenplum集群segment所在主机更换内存操作之前,需要先进行集群状态检查,确保集群中无故障节点,具体步骤如下:

- 登录GreenplumMaster节点
- 执行gpstate-s查看集群状态
- 确认当前集群中无故障节点Segmenstatus=Up,如果有故障节点,先进行处理
Greenplum集群segment所在主机内存更换方案
针对Greenplum集群segment所在主机内存更换,推荐以下两种方案,具体操作步骤如下:
方案1:Greenplum集群停止后更换内存操作步骤
- 执行gpstop-a停止Greenplum集群
- 更换主机内存
- 主机重启验证无问题后,启动Greenplum集群。登录Master节点执行命令:gpstart-a
- 在Master执行gpstate-s查看当前集群所有节点状态:所有segment的状态都Up且处于Synchronized,表示Greenplum集群正常启动
优点:故障率小,当前GP停止后数据处于一致状态。缺点:整体集群停止后,造成相关业务无法正常访问,影响体验。
方案2:停止内存故障主机上的所有segment操作步骤
- 登录到内存故障主机停止当前主机上所有的segment。source /usr/local/greenplum-db/greenplum_path.sh;注意根据实际环境替换/usr/local/greenplum-db为greenplum的实际安装目录。停止故障主机上的PostgreSQL实例【数据目录以实际为主】:pg_ctlstop -D/data/primary/gpseg1pg_ctlstop -D/data/mirror/gpseg0
- 登录GreenplumMaster节点,查看当前集群节点状态:此时可以看到内存问题主机上的PG实例已经停止,当前所有节点状态为Down,当前主机的PRIMARY节点的备节点已经接管服务。
- 修复内存问题主机,更换内存条
- 主机重启验证无问题后,登录到Greenplum Master节点修复出问题的SEGMENT。执行命令:gprecoverseg
- 查看当前集群状态。执行命令:gpstate-s观察节点状态,直到所有节点都为Up,且MirrorStatus状态为Synchronized。注意当前主备切换过后的角色状态还未恢复;其中一台主机上的两个segment的状态都为primary
- 恢复segment原始角色。执行命令:gprecoverseg -r
- 查看当前集群状态。执行命令:gpstate-s此时角色正在转换过程中,直到上图标注红色部分,全部变为:Synchronized。至此主机内存更换全部完成
优点:只停止其中一台主机上的所有segment,会触发主备自动切换,备节点接管服务,整体集群处于可用状态,性能有一定损耗。【其中一台主机上的两个segment同时对外提供服务】对业务系统影响较小。缺点:当停机时间过长,可能导致恢复宕机主机上的segment的时,无法正常恢复。解决方法:该主机上的segment全量从新的PRIMARY节点进行数据恢复,耗时较长,对整体集群性能有影响。【在master上使用命令:gprecoverseg-F】
以上是本次Greenplum集群segment所在主机内存更换的两种方案,根据实际情况选择适合自己的方案。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6383.html
