GPDB的spread方式测试

本文介绍GPDB中mirror的两种配置方式,默认group方式可能导致性能瓶颈,推荐使用spread模式提高可用性和性能。通过实操演示了在一台主机宕机后,如何通过gprecoverseg命令恢复系统并确保数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在GPDB的mirror安装中,有两种方法,默认的group方式是将A机器备份在B机器上,这种方式有一个弊端,在A机器宕机后,B机器上就运行了*2的节点数量的运算和存储,这样势必导致整个集群的运算性能极具下降,甚至不能使用;因此官方也推荐mirror的使用方式为spread,前提是机器的segment host数量为每台机器上的segment+1,举个例子:有4台机器作为seghost,每单机器3个segment,分别abcd机器,abcd每台机器上有seg1 seg2 seg3,对应关系如下

机器名   节点名        mirror机器名    mirror节点名
A        seg1        B               seg2
A        seg2        C               seg3
A        seg3        D               seg1
....

以上只是实例,当时实际情况不可能这么规整,具体的对应关系可以使用gpstate -c查看,例如我实际的对应关系如下

20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-Obtaining Segment details from master...
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:--Current GPDB mirror list and status
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:--Type = Spread
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Status                             Data State     Primary      Datadir                               Port    Mirror       Datadir                               Port
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue02-em1   /home/gpadmin/data/gpdatap1/gpseg0    40000   blue03-em2   /home/gpadmin/data/gpdatam1/gpseg0    50000
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue02-em2   /home/gpadmin/data/gpdatap2/gpseg1    40001   blue04-em3   /home/gpadmin/data/gpdatam2/gpseg1    50001
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue02-em3   /home/gpadmin/data/gpdatap3/gpseg2    40002   blue05-em1   /home/gpadmin/data/gpdatam3/gpseg2    50002
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue03-em1   /home/gpadmin/data/gpdatap1/gpseg3    40000   blue04-em2   /home/gpadmin/data/gpdatam1/gpseg3    50000
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue03-em2   /home/gpadmin/data/gpdatap2/gpseg4    40001   blue05-em3   /home/gpadmin/data/gpdatam2/gpseg4    50001
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue03-em3   /home/gpadmin/data/gpdatap3/gpseg5    40002   blue02-em1   /home/gpadmin/data/gpdatam3/gpseg5    50002
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue04-em1   /home/gpadmin/data/gpdatap1/gpseg6    40000   blue05-em2   /home/gpadmin/data/gpdatam1/gpseg6    50000
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue04-em2   /home/gpadmin/data/gpdatap2/gpseg7    40001   blue02-em3   /home/gpadmin/data/gpdatam2/gpseg7    50001
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue04-em3   /home/gpadmin/data/gpdatap3/gpseg8    40002   blue03-em1   /home/gpadmin/data/gpdatam3/gpseg8    50002
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue05-em1   /home/gpadmin/data/gpdatap1/gpseg9    40000   blue02-em2   /home/gpadmin/data/gpdatam1/gpseg9    50000
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue05-em2   /home/gpadmin/data/gpdatap2/gpseg10   40001   blue03-em3   /home/gpadmin/data/gpdatam2/gpseg10   50001
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:-   Primary Active, Mirror Available   Synchronized   blue05-em3   /home/gpadmin/data/gpdatap3/gpseg11   40002   blue04-em1   /home/gpadmin/data/gpdatam3/gpseg11   50002
20160816:13:59:43:018642 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------

以下我们验证采用spread方式后,在一台机器宕机后,查看mirror的启动及数据分配情况。
1.down机前检查机器情况重点内容

select * from gp_segment_configuration order by 1;

 dbid | content | role | preferred_role | mode | status | port  |  hostname  |  address   | replication_port | san_mounts 
------+---------+------+----------------+------+--------+-------+------------+------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  5432 | blue01-em1 | blue01-em1 |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | blue02-em1 | blue02-em1 |            41000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | blue02-em1 | blue02-em2 |            41001 | 
    4 |       2 | p    | p              | s    | u      | 40002 | blue02-em1 | blue02-em3 |            41002 | 
    5 |       3 | p    | p              | s    | u      | 40000 | blue03-em1 | blue03-em1 |            41000 | 
    6 |       4 | p    | p              | s    | u      | 40001 | blue03-em1 | blue03-em2 |            41001 | 
    7 |       5 | p    | p              | s    | u      | 40002 | blue03-em1 | blue03-em3 |            41002 | 
    8 |       6 | p    | p              | s    | u      | 40000 | blue04-em1 | blue04-em1 |            41000 | 
    9 |       7 | p    | p              | s    | u      | 40001 | blue04-em1 | blue04-em2 |            41001 | 
   10 |       8 | p    | p              | s    | u      | 40002 | blue04-em1 | blue04-em3 |            41002 | 
   11 |       9 | p    | p              | s    | u      | 40000 | blue05-em1 | blue05-em1 |            41000 | 
   12 |      10 | p    | p              | s    | u      | 40001 | blue05-em1 | blue05-em2 |            41001 | 
   13 |      11 | p    | p              | s    | u      | 40002 | blue05-em1 | blue05-em3 |            41002 | 
   14 |       0 | m    | m              | s    | u      | 50000 | blue03-em1 | blue03-em2 |            51000 | 
   15 |       1 | m    | m              | s    | u      | 50001 | blue04-em1 | blue04-em3 |            51001 | 
   16 |       2 | m    | m              | s    | u      | 50002 | blue05-em1 | blue05-em1 |            51002 | 
   17 |       3 | m    | m              | s    | u      | 50000 | blue04-em1 | blue04-em2 |            51000 | 
   18 |       4 | m    | m              | s    | u      | 50001 | blue05-em1 | blue05-em3 |            51001 | 
   19 |       5 | m    | m              | s    | u      | 50002 | blue02-em1 | blue02-em1 |            51002 | 
   20 |       6 | m    | m              | s    | u      | 50000 | blue05-em1 | blue05-em2 |            51000 | 
   21 |       7 | m    | m              | s    | u      | 50001 | blue02-em1 | blue02-em3 |            51001 | 
   22 |       8 | m    | m              | s    | u      | 50002 | blue03-em1 | blue03-em1 |            51002 | 
   23 |       9 | m    | m              | s    | u      | 50000 | blue02-em1 | blue02-em2 |            51000 | 
   24 |      10 | m    | m              | s    | u      | 50001 | blue03-em1 | blue03-em3 |            51001 | 
   25 |      11 | m    | m              | s    | u      | 50002 | blue04-em1 | blue04-em1 |            51002 | 
(25 rows)

select gp_segment_id,count(*) from testdata group by 1;
 gp_segment_id | count 
---------------+-------
             0 |     1
             6 |     2
            11 |     1
             1 |     2
             4 |     2
             9 |     1
             2 |     1
             7 |     1
             3 |     1

可以看到虽然我们的表是distributed randomly创建的,但是数据并不是严格按照每个节点一条数据的分布的。

2.kill掉blue05的进程
pkill -9 postgres

3.检查目前的状况

select * from gp_segment_configuration order by 1;
dbid | content | role | preferred_role | mode | status | port  |  hostname  |  address   | replication_port | san_mounts 
------+---------+------+----------------+------+--------+-------+------------+------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  5432 | blue01-em1 | blue01-em1 |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | blue02-em1 | blue02-em1 |            41000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | blue02-em1 | blue02-em2 |            41001 | 
    4 |       2 | p    | p              | c    | u      | 40002 | blue02-em1 | blue02-em3 |            41002 | 
    5 |       3 | p    | p              | s    | u      | 40000 | blue03-em1 | blue03-em1 |            41000 | 
    6 |       4 | p    | p              | c    | u      | 40001 | blue03-em1 | blue03-em2 |            41001 | 
    7 |       5 | p    | p              | s    | u      | 40002 | blue03-em1 | blue03-em3 |            41002 | 
    8 |       6 | p    | p              | c    | u      | 40000 | blue04-em1 | blue04-em1 |            41000 | 
    9 |       7 | p    | p              | s    | u      | 40001 | blue04-em1 | blue04-em2 |            41001 | 
   10 |       8 | p    | p              | s    | u      | 40002 | blue04-em1 | blue04-em3 |            41002 | 
   11 |       9 | m    | p              | s    | d      | 40000 | blue05-em1 | blue05-em1 |            41000 | 
   12 |      10 | m    | p              | s    | d      | 40001 | blue05-em1 | blue05-em2 |            41001 | 
   13 |      11 | m    | p              | s    | d      | 40002 | blue05-em1 | blue05-em3 |            41002 | 
   14 |       0 | m    | m              | s    | u      | 50000 | blue03-em1 | blue03-em2 |            51000 | 
   15 |       1 | m    | m              | s    | u      | 50001 | blue04-em1 | blue04-em3 |            51001 | 
   16 |       2 | m    | m              | s    | d      | 50002 | blue05-em1 | blue05-em1 |            51002 | 
   17 |       3 | m    | m              | s    | u      | 50000 | blue04-em1 | blue04-em2 |            51000 | 
   18 |       4 | m    | m              | s    | d      | 50001 | blue05-em1 | blue05-em3 |            51001 | 
   19 |       5 | m    | m              | s    | u      | 50002 | blue02-em1 | blue02-em1 |            51002 | 
   20 |       6 | m    | m              | s    | d      | 50000 | blue05-em1 | blue05-em2 |            51000 | 
   21 |       7 | m    | m              | s    | u      | 50001 | blue02-em1 | blue02-em3 |            51001 | 
   22 |       8 | m    | m              | s    | u      | 50002 | blue03-em1 | blue03-em1 |            51002 | 
   23 |       9 | p    | m              | c    | u      | 50000 | blue02-em1 | blue02-em2 |            51000 | 
   24 |      10 | p    | m              | c    | u      | 50001 | blue03-em1 | blue03-em3 |            51001 | 
   25 |      11 | p    | m              | c    | u      | 50002 | blue04-em1 | blue04-em1 |            51002 | 
(25 rows)

以上关键字段含义:
role:该节点现在的角色,取值为p(parimary)或m(mirror)
preferred_role:该节点被定义的角色,取值为p(primary)或m(mirror)
mode:主备同步的状态,取值s(synchronized已同步)、r(resyncing正在同步)、c(change logging不同步)
status:判断节点的值,取值为u(up正常运行)和d(down节点失败)

从以上我们可以看出hostname为blue05-em1的41000、41001、41002的同步端口上的原先为主节点角色已经变更为mirror,并且已经down机(进程信息丢失)

4.后续检查:
我们检查数据是否可以查询查询:

select * from testdate; #可以正常查询数据
  insert into testdata select 3,'test'; #可以正常插入
select gp_segment_id,count(*) from testdata group by 1;
 gp_segment_id | count 
---------------+-------
             6 |     2
             1 |     2
            11 |     1
             9 |     1
             4 |     2
             0 |     1
             7 |     1
             3 |     1
             2 |     1

可以使用gpstate -s查看mirror情况

20160816:13:36:42:017605 gpstate:blue01-em1:gpadmin-[INFO]:-Starting gpstate with args: -m
20160816:13:36:42:017605 gpstate:blue01-em1:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.9.0 build 1'
20160816:13:36:42:017605 gpstate:blue01-em1:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.9.0 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Aug  8 2016 05:36:26'
20160816:13:36:42:017605 gpstate:blue01-em1:gpadmin-[INFO]:-Obtaining Segment details from master...
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:--Current GPDB mirror list and status
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:--Type = Spread
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   Mirror       Datadir                               Port    Status              Data Status       
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em2   /home/gpadmin/data/gpdatam1/gpseg0    50000   Passive             Synchronized
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em3   /home/gpadmin/data/gpdatam2/gpseg1    50001   Passive             Synchronized
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[WARNING]:-blue05-em1   /home/gpadmin/data/gpdatam3/gpseg2    50002   Failed                                <<<<<<<<
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em2   /home/gpadmin/data/gpdatam1/gpseg3    50000   Passive             Synchronized
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[WARNING]:-blue05-em3   /home/gpadmin/data/gpdatam2/gpseg4    50001   Failed                                <<<<<<<<
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em1   /home/gpadmin/data/gpdatam3/gpseg5    50002   Passive             Synchronized
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[WARNING]:-blue05-em2   /home/gpadmin/data/gpdatam1/gpseg6    50000   Failed                                <<<<<<<<
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em3   /home/gpadmin/data/gpdatam2/gpseg7    50001   Passive             Synchronized
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em1   /home/gpadmin/data/gpdatam3/gpseg8    50002   Passive             Synchronized
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em2   /home/gpadmin/data/gpdatam1/gpseg9    50000   Acting as Primary   Change Tracking
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em3   /home/gpadmin/data/gpdatam2/gpseg10   50001   Acting as Primary   Change Tracking
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em1   /home/gpadmin/data/gpdatam3/gpseg11   50002   Acting as Primary   Change Tracking
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[WARNING]:-3 segment(s) configured as mirror(s) are acting as primaries
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[WARNING]:-3 segment(s) configured as mirror(s) have failed
20160816:13:36:43:017605 gpstate:blue01-em1:gpadmin-[WARNING]:-3 mirror segment(s) acting as primaries are in change tracking

因此,我们可以断定,blue05的机器down机,节点数据已经转移,备用节点已经启用,正常的业务不受影响,而且数据可以正常插入。

5.修复
要恢复到原来的架构,有两种可能情况,第一种情况,当故障主机启动后,这台主机上的节点会自动启动,当然现在已经都是Mirror节点了,角色是不会切换的,
而且数据是不一致状态。这种情况只需要使用gprecoverseg命令同步一下数据后,就可以切换到原来的架构了。
输入gprecoverseg 然后输入Y

Continue with segment recovery procedure Yy|Nn (default=N):
> y
20160816:13:42:20:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-6 segment(s) to recover
20160816:13:42:20:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Ensuring 6 failed segment(s) are stopped

20160816:13:42:22:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Ensuring that shared memory is cleaned up for stopped segments
updating flat files
20160816:13:42:27:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Updating configuration with new mirrors
20160816:13:42:28:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Updating mirrors
. 
20160816:13:42:29:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Starting mirrors
20160816:13:42:29:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Commencing parallel primary and mirror segment instance startup, please wait...
.. 
20160816:13:42:31:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Process results...
20160816:13:42:31:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Updating configuration to mark mirrors up
20160816:13:42:31:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Updating primaries
20160816:13:42:31:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Commencing parallel primary conversion of 6 segments, please wait...
. 
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Process results...
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Done updating primaries
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-******************************************************************
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Updating segments for resynchronization is completed.
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-For segments updated successfully, resynchronization will continue in the background.
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Use  gpstate -s  to check the resynchronization progress.
20160816:13:42:32:017728 gprecoverseg:blue01-em1:gpadmin-[INFO]:-******************************************************************

按照提示,查看节点信息,这里只检查mirror
gpstate -m

20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-Obtaining Segment details from master...
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:--Current GPDB mirror list and status
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:--Type = Spread
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   Mirror       Datadir                               Port    Status              Data Status    
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em2   /home/gpadmin/data/gpdatam1/gpseg0    50000   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em3   /home/gpadmin/data/gpdatam2/gpseg1    50001   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em1   /home/gpadmin/data/gpdatam3/gpseg2    50002   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em2   /home/gpadmin/data/gpdatam1/gpseg3    50000   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em3   /home/gpadmin/data/gpdatam2/gpseg4    50001   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em1   /home/gpadmin/data/gpdatam3/gpseg5    50002   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em2   /home/gpadmin/data/gpdatam1/gpseg6    50000   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em3   /home/gpadmin/data/gpdatam2/gpseg7    50001   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em1   /home/gpadmin/data/gpdatam3/gpseg8    50002   Passive             Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em2   /home/gpadmin/data/gpdatam1/gpseg9    50000   Acting as Primary   Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em3   /home/gpadmin/data/gpdatam2/gpseg10   50001   Acting as Primary   Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em1   /home/gpadmin/data/gpdatam3/gpseg11   50002   Acting as Primary   Synchronized
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:43:27:017884 gpstate:blue01-em1:gpadmin-[WARNING]:-3 segment(s) configured as mirror(s) are acting as primaries

我们看到数据同步已经完成,但是角色还没有转换过来,需要使用gprecoverseg -r
我们看到数据同步已经完成,但是角色还没有转换过来,需要使用gprecoverseg -r进行角色切换

Continue with segment rebalance procedure Yy|Nn (default=N):
> y
20160816:13:45:24:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Getting unbalanced segments
20160816:13:45:24:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Stopping unbalanced primary segments...
.. 
20160816:13:45:26:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Triggering segment reconfiguration
20160816:13:45:30:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Starting segment synchronization
................. 
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-******************************************************************
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-The rebalance operation has completed successfully.
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-There is a resynchronization running in the background to bring all
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-segments in sync.
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-Use gpstate -e to check the resynchronization progress.
20160816:13:45:47:017935 gprecoverseg:blue01-em1:gpadmin-[INFO]:-******************************************************************

gpstate -e查看同步进程
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-----------------------------------------------------
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-Segment Mirroring Status Report
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-----------------------------------------------------
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-Segment Pairs in Resynchronization
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-   Current Primary   Port    Resync mode   Est. resync progress   Total resync objects   Objects to resync   Data synced   Est. total to sync                      Est. resync end time   Change tracking size   Mirror       Port
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em1        40000   Incremental   100%                   0                      0                   224 kB        Sync complete; awaiting config change                          128 bytes              blue02-em2   50000
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em2        40001   Incremental   100%                   0                      0                   224 kB        Sync complete; awaiting config change                          128 bytes              blue03-em3   50001
20160816:13:46:29:018199 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em3        40002   Incremental   100%                   0                      0                   224 kB        Sync complete; awaiting config change                          128 bytes              blue04-em1   50002

再查看mirror情况
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-Obtaining Segment details from master...
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:--Current GPDB mirror list and status
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:--Type = Spread
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   Mirror       Datadir                               Port    Status    Data Status    
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em2   /home/gpadmin/data/gpdatam1/gpseg0    50000   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em3   /home/gpadmin/data/gpdatam2/gpseg1    50001   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em1   /home/gpadmin/data/gpdatam3/gpseg2    50002   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em2   /home/gpadmin/data/gpdatam1/gpseg3    50000   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em3   /home/gpadmin/data/gpdatam2/gpseg4    50001   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em1   /home/gpadmin/data/gpdatam3/gpseg5    50002   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue05-em2   /home/gpadmin/data/gpdatam1/gpseg6    50000   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em3   /home/gpadmin/data/gpdatam2/gpseg7    50001   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em1   /home/gpadmin/data/gpdatam3/gpseg8    50002   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue02-em2   /home/gpadmin/data/gpdatam1/gpseg9    50000   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue03-em3   /home/gpadmin/data/gpdatam2/gpseg10   50001   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:-   blue04-em1   /home/gpadmin/data/gpdatam3/gpseg11   50002   Passive   Synchronized
20160816:13:47:27:018297 gpstate:blue01-em1:gpadmin-[INFO]:--------------------------------------------------------------

现在查看角色已经转换过来,在用sql验证一下

select * from gp_segment_configuration order by 1;

 dbid | content | role | preferred_role | mode | status | port  |  hostname  |  address   | replication_port | san_mounts 
------+---------+------+----------------+------+--------+-------+------------+------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  5432 | blue01-em1 | blue01-em1 |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | blue02-em1 | blue02-em1 |            41000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | blue02-em1 | blue02-em2 |            41001 | 
    4 |       2 | p    | p              | s    | u      | 40002 | blue02-em1 | blue02-em3 |            41002 | 
    5 |       3 | p    | p              | s    | u      | 40000 | blue03-em1 | blue03-em1 |            41000 | 
    6 |       4 | p    | p              | s    | u      | 40001 | blue03-em1 | blue03-em2 |            41001 | 
    7 |       5 | p    | p              | s    | u      | 40002 | blue03-em1 | blue03-em3 |            41002 | 
    8 |       6 | p    | p              | s    | u      | 40000 | blue04-em1 | blue04-em1 |            41000 | 
    9 |       7 | p    | p              | s    | u      | 40001 | blue04-em1 | blue04-em2 |            41001 | 
   10 |       8 | p    | p              | s    | u      | 40002 | blue04-em1 | blue04-em3 |            41002 | 
   11 |       9 | p    | p              | s    | u      | 40000 | blue05-em1 | blue05-em1 |            41000 | 
   12 |      10 | p    | p              | s    | u      | 40001 | blue05-em1 | blue05-em2 |            41001 | 
   13 |      11 | p    | p              | s    | u      | 40002 | blue05-em1 | blue05-em3 |            41002 | 
   14 |       0 | m    | m              | s    | u      | 50000 | blue03-em1 | blue03-em2 |            51000 | 
   15 |       1 | m    | m              | s    | u      | 50001 | blue04-em1 | blue04-em3 |            51001 | 
   16 |       2 | m    | m              | s    | u      | 50002 | blue05-em1 | blue05-em1 |            51002 | 
   17 |       3 | m    | m              | s    | u      | 50000 | blue04-em1 | blue04-em2 |            51000 | 
   18 |       4 | m    | m              | s    | u      | 50001 | blue05-em1 | blue05-em3 |            51001 | 
   19 |       5 | m    | m              | s    | u      | 50002 | blue02-em1 | blue02-em1 |            51002 | 
   20 |       6 | m    | m              | s    | u      | 50000 | blue05-em1 | blue05-em2 |            51000 | 
   21 |       7 | m    | m              | s    | u      | 50001 | blue02-em1 | blue02-em3 |            51001 | 
   22 |       8 | m    | m              | s    | u      | 50002 | blue03-em1 | blue03-em1 |            51002 | 
   23 |       9 | m    | m              | s    | u      | 50000 | blue02-em1 | blue02-em2 |            51000 | 
   24 |      10 | m    | m              | s    | u      | 50001 | blue03-em1 | blue03-em3 |            51001 | 
   25 |      11 | m    | m              | s    | u      | 50002 | blue04-em1 | blue04-em1 |            51002 | 

再检查下之前停掉的blueo5的进程,ps -ef|grep postgres发现64个进程已经启动了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值