一、Master 节点移除,Standby 节点切Master
1.1 移除掉Master节点
[gpadmin@gp_master ~]$ pg_ctl stop -D /u05/master/gpseg-1/
waiting for server to shut down… failed
pg_ctl: server does not shut down
HINT: The “-m fast” option immediately disconnects sessions rather than
waiting for session-initiated disconnection.
[gpadmin@gp_master ~]$ pg_ctl stop -m fast -D /u05/master/gpseg-1/
waiting for server to shut down… done
server stopped
1.2 查看移除后的集群状态
[gpadmin@gp_master ~]$ gpstate -f
1.3 把Standby 节点升级为Master
[gpadmin@gp_standby ~]$ gpactivatestandby -d /u05/master/gpseg-1/
1.4 查看切换后的集群状态:
[gpadmin@gp_standby ~]$ gpstate -s
或
dw_dat=> select * from gp_segment_configuration where hostname=‘gp_standby’;
dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir
------±--------±-----±---------------±-----±-------±-----±-------------------±-------------------±--------------------
122 | -1 | p | p | s | u | 5432 | gp_standby | gp_standby | /u05/master/gpseg-1
二、把当前的Master 再次切换成Standby
2.1 添加Standby节点
#在原Master 机器上备份 master 数据目录
[gpadmin@gp_master u05]$ mv master/ master_bak
[gpadmin@gp_master u05]$ mv tablspace_dat/ tablspace_dat_bak
[gpadmin@gp_master u05]$ mkdir master
#在当前Master节点执行:
[gpadmin@gp_standby ~]$ gpinitstandby -s gp_master
2.2 关闭当前Master 节点
[gpadmin@gp_standby ~]$ pg_ctl stop -D /u05/master/gpseg-1/
waiting for server to shut down… done
server stopped
2.3 将Standby 节点切换为Master节点
[gpadmin@gp_master u05]$ gpactivatestandby -d /u05/master/gpseg-1/
2.4 查看切换后的集群状态:
[gpadmin@gp_master ~]$ gpstate -s
或
dw_dat=> select * from gp_segment_configuration where hostname in (‘gp_master’,'gp_standby ');
dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir
------±--------±-----±---------------±-----±-------±-----±-------------------±-------------------±--------------------
123 | -1 | p | p | s | u | 5432 | gp_master | gp_master | /u05/master/gpseg-1
2.5 添加Standby 节点
[gpadmin@gp_master u05]$ gpinitstandby -s gp_standby
2.6 查看集群状态:
dw_dat=> select * from gp_segment_configuration where hostname in (‘gp_master’,'gp_master ');
dbid | content | role | preferred_role | mode | status | port | hostname | address | datadir
------±--------±-----±---------------±-----±-------±-----±-------------------±-------------------±--------------------
123 | -1 | p | p | s | u | 5432 | gp_master | gp_master | /u05/master/gpseg-1
124 | -1 | m | m | s | u | 5432 | gp_standby | gp_standby | /u05/master/gpseg-1




