GP集群master服务器挂了,需要手动将standby切换成master,让集群继续对外提供服务
1、执行gpactivatestandby激活standby
[gpadmin@gp-segment5 ~]$ gpactivatestandby -d $MASTER_DATA_DIRECTORY
-bash: gpactivatestandby: command not found
找不到gpactivatestandby命令,猜测可能是环境变量的原因
[gpadmin@gp-segment5 ~]$ cat ~/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
果然环境变量中没有GP的环境变量,加上变量并source生效
[gpadmin@gp-segment5 ~]$ vi ~/.bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
source /disk/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/disk/master/gpseg-1
[gpadmin@gp-segment5 ~]$ source ~/.bashrc
再次执行
gpactivatestandby显示
PGPORT环境变量没有指定
[gpadmin@gp-segment5 ~]$ gpactivatestandby -d $MASTER_DATA_DIRECTORY
20161230:14:42:58:023255 gpactivatestandby:gp-segment5:gpadmin-[CRITICAL]:-PGPORT environment variable not set.
增加PGPORT环境变量并source
[gpadmin@gp-segment5 gpseg-1]$ vi ~/.bashrc
export MASTER_DATA_DIRECTORY=/disk/master/gpseg-1
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
source /disk/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/disk/master/gpseg-1
export PGPORT=5432
再次执行激活成功
[gpadmin@gp-segment5 gpseg-1]$ gpactivatestandby -d $MASTER_DATA_DIRECTORY
20161230:14:56:03:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
20161230:14:56:03:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Standby data directory = /disk/master/gpseg-1
20161230:14:56:03:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Standby port = 5432
20161230:14:56:03:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Standby running = yes
20161230:14:56:03:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Force standby activation = no
20161230:14:56:03:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
Do you want to continue with standby master activation? Yy|Nn (default=N):
> y
20161230:14:56:09:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-found standby postmaster process
20161230:14:56:09:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Updating transaction files filespace flat files...
20161230:14:56:09:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Updating temporary files filespace flat files...
20161230:14:56:09:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Promoting standby...
20161230:14:56:09:004245 gpactivatestandby:gp-segment5:gpadmin-[DEBUG]:-Waiting for connection...
20161230:14:56:14:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Standby master is promoted
20161230:14:56:14:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Reading current configuration...
20161230:14:56:14:004245 gpactivatestandby:gp-segment5:gpadmin-[DEBUG]:-Connecting to dbname='template1'
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Writing the gp_dbid file - /disk/master/gpseg-1/gp_dbid...
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-But found an already existing file.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Hence removed that existing file.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Creating a new file...
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Wrote dbid: 1 to the file.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Now marking it as read only...
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Verifying the file...
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-The activation of the standby master has completed successfully.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-gp-segment5 is now the new primary master.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-You will need to update your user access mechanism to reflect
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-the change of master hostname.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Do not re-start the failed master while the fail-over master is
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-operational, this could result in database corruption!
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-MASTER_DATA_DIRECTORY is now /disk/master/gpseg-1 if
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-this has changed as a result of the standby master activation, remember
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-to change this in any startup scripts etc, that may be configured
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-to set this value.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-MASTER_PORT is now 5432, if this has changed, you
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-may need to make additional configuration changes to allow access
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-to the Greenplum instance.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Refer to the Administrator Guide for instructions on how to re-activate
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-the master to its previous state once it becomes available.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-Query planner statistics must be updated on all databases
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-following standby master activation.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:-When convenient, run ANALYZE against all user databases.
20161230:14:56:15:004245 gpactivatestandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
2、查看集群状态
可以看到集群个节点都正常,只有standby的状态变成No master standby configured
[gpadmin@gp-segment5 gpseg-1]$ gpstate
20161230:14:56:32:004859 gpstate:gp-segment5:gpadmin-[INFO]:-Starting gpstate with args:
20161230:14:56:32:004859 gpstate:gp-segment5:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.8.0 build 1'
20161230:14:56:32:004859 gpstate:gp-segment5:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.8.0 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Mar 28 2016 00:15:29'
20161230:14:56:32:004859 gpstate:gp-segment5:gpadmin-[INFO]:-Obtaining Segment details from master...
20161230:14:56:32:004859 gpstate:gp-segment5:gpadmin-[INFO]:-Gathering data from segments...
.
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-Greenplum instance status summary
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Master instance = Active
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Master standby = No master standby configured
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total segment instance count from metadata = 16
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Primary Segment Status
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total primary segments = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total primary segment valid (at master) = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total primary segment failures (at master) = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Mirror Segment Status
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total mirror segments = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total mirror segment valid (at master) = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total mirror segment failures (at master) = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes missing = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes found = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number mirror segments acting as primary segments = 0
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:- Total number mirror segments acting as mirror segments = 8
20161230:14:56:33:004859 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
3、修改pg_hba.conf允许用户远程登录
[gpadmin@gp-segment5 gpseg-1]$ vi pg_hba.conf
host all all 0.0.0.0/0 md5
[gpadmin@gp-segment5 gpseg-1]$ gpstop -u
20161230:15:05:46:013983 gpstop:gp-segment5:gpadmin-[INFO]:-Starting gpstop with args: -u
20161230:15:05:46:013983 gpstop:gp-segment5:gpadmin-[INFO]:-Gathering information and validating the environment...
20161230:15:05:46:013983 gpstop:gp-segment5:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information
20161230:15:05:46:013983 gpstop:gp-segment5:gpadmin-[INFO]:-Obtaining Segment details from master...
20161230:15:05:46:013983 gpstop:gp-segment5:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 4.3.8.0 build 1'
20161230:15:05:46:013983 gpstop:gp-segment5:gpadmin-[INFO]:-Signalling all postmaster processes to reload
4、初始化一个新的standby
在新standby上配置好环境,如系统参数、用户、ssh互信、安装文件、目录和权限等
因为要将以前的master变成新的standby,只需要删除gpseg-1数据目录就行
再在新的master上执行gpinitstandby
[gpadmin@gp-segment5 ~]$ gpinitstandby -s gp-master
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Validating environment and parameters for standby initialization...
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Checking for filespace directory /disk/master/gpseg-1 on gp-master
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum standby master initialization parameters
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum master hostname = gp-segment5
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum master data directory = /disk/master/gpseg-1
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum master port = 5432
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum standby master hostname = gp-master
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum standby master port = 5432
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum standby master data directory = /disk/master/gpseg-1
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Greenplum update system catalog = On
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:- Filespace locations
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:------------------------------------------------------
20161230:15:36:07:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-pg_system -> /disk/master/gpseg-1
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y
20161230:15:36:11:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Syncing Greenplum Database extensions to standby
20161230:15:36:11:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-The packages on gp-master are consistent.
20161230:15:36:11:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Adding standby master to catalog...
20161230:15:36:11:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Database catalog updated successfully.
20161230:15:36:11:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Updating pg_hba.conf file...
20161230:15:36:17:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-pg_hba.conf files updated successfully.
20161230:15:36:50:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Updating filespace flat files...
20161230:15:36:50:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Filespace flat file updated successfully.
20161230:15:36:50:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Starting standby master
20161230:15:36:50:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Checking if standby master is running on host: gp-master in directory: /disk/master/gpseg-1
20161230:15:36:54:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Cleaning up pg_hba.conf backup files...
20161230:15:36:59:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
20161230:15:36:59:011125 gpinitstandby:gp-segment5:gpadmin-[INFO]:-Successfully created standby master on gp-master
查看新集群的状态
[gpadmin@gp-segment5 ~]$ gpstate
20161230:15:37:10:012229 gpstate:gp-segment5:gpadmin-[INFO]:-Starting gpstate with args:
20161230:15:37:10:012229 gpstate:gp-segment5:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.8.0 build 1'
20161230:15:37:10:012229 gpstate:gp-segment5:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.8.0 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Mar 28 2016 00:15:29'
20161230:15:37:10:012229 gpstate:gp-segment5:gpadmin-[INFO]:-Obtaining Segment details from master...
20161230:15:37:10:012229 gpstate:gp-segment5:gpadmin-[INFO]:-Gathering data from segments...
.
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-Greenplum instance status summary
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Master instance = Active
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Master standby = gp-master
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Standby master state = Standby host passive
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total segment instance count from metadata = 16
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Primary Segment Status
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total primary segments = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total primary segment valid (at master) = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total primary segment failures (at master) = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Mirror Segment Status
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total mirror segments = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total mirror segment valid (at master) = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total mirror segment failures (at master) = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid files found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of postmaster.pid PIDs found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number of /tmp lock files found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes missing = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number postmaster processes found = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number mirror segments acting as primary segments = 0
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:- Total number mirror segments acting as mirror segments = 8
20161230:15:37:11:012229 gpstate:gp-segment5:gpadmin-[INFO]:-----------------------------------------------------
各节点和Master、standby都正常
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29989552/viewspace-2131663/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29989552/viewspace-2131663/