Greenplum 添加segment mirror节点

添加mirror也分两种情况,在现有的GP集群节点中添加,或者新加的主机中添加。
如果在新加的主机中添加mirror,那么首先需要做的是对应主机的初始化(包括OS的配置,SSH KEY的交换,GP BIN的安装等等)
对应新加主机的部分,可以参考 Greenplum 扩展 segment个数 中的方法来添加新的主机。这里不多说。
http://yq.aliyun.com/articles/177

接下来的就是可以复用的内容。

在所有需要添加mirror的主机,创建存放mirror的数据目录
$ mkdir /disk1/digoal/gpdata_mirror

产生配置文件
$ gpaddmirrors -o ./addmirror
需要输入每个primary segment对应的mirror的目录
Enter mirror segment data directory location 1 of 23 >
/disk1/digoal/gpdata_mirror
Enter mirror segment data directory location 2 of 23 >
/disk1/digoal/gpdata_mirror
Enter mirror segment data directory location 3 of 23 >
......
Enter mirror segment data directory location 23 of 23 >
/disk1/digoal/gpdata_mirror
20151217:17:58:15:070582 gpaddmirrors:digoal:digoal-[INFO]:-Configuration file output to ./addmirror successfully.

查看配置文件
$ cat addmirror 
filespaceOrder=
mirror0=0:digoal.sqa.zmf:41000:42000:43000:/disk1/digoal/gpdata_mirror/gpseg0
mirror1=1:digoal.sqa.zmf:41001:42001:43001:/disk1/digoal/gpdata_mirror/gpseg1
mirror2=2:digoal.sqa.zmf:41002:42002:43002:/disk1/digoal/gpdata_mirror/gpseg2
mirror3=3:digoal.sqa.zmf:41003:42003:43003:/disk1/digoal/gpdata_mirror/gpseg3
mirror4=4:digoal.sqa.zmf:41004:42004:43004:/disk1/digoal/gpdata_mirror/gpseg4
mirror5=5:digoal.sqa.zmf:41005:42005:43005:/disk1/digoal/gpdata_mirror/gpseg5
mirror6=6:digoal.sqa.zmf:41006:42006:43006:/disk1/digoal/gpdata_mirror/gpseg6
mirror7=7:digoal.sqa.zmf:41007:42007:43007:/disk1/digoal/gpdata_mirror/gpseg7
mirror8=8:digoal.sqa.zmf:41008:42008:43008:/disk1/digoal/gpdata_mirror/gpseg8
mirror9=9:digoal.sqa.zmf:41009:42009:43009:/disk1/digoal/gpdata_mirror/gpseg9
mirror10=10:digoal.sqa.zmf:41010:42010:43010:/disk1/digoal/gpdata_mirror/gpseg10
mirror11=11:digoal.sqa.zmf:41011:42011:43011:/disk1/digoal/gpdata_mirror/gpseg11
mirror12=12:digoal.sqa.zmf:41012:42012:43012:/disk1/digoal/gpdata_mirror/gpseg12
mirror13=13:digoal.sqa.zmf:41013:42013:43013:/disk1/digoal/gpdata_mirror/gpseg13
mirror14=14:digoal.sqa.zmf:41014:42014:43014:/disk1/digoal/gpdata_mirror/gpseg14
mirror15=15:digoal.sqa.zmf:41015:42015:43015:/disk1/digoal/gpdata_mirror/gpseg15
mirror16=16:digoal.sqa.zmf:41016:42016:43016:/disk1/digoal/gpdata_mirror/gpseg16
mirror17=17:digoal.sqa.zmf:41017:42017:43017:/disk1/digoal/gpdata_mirror/gpseg17
mirror18=18:digoal.sqa.zmf:41018:42018:43018:/disk1/digoal/gpdata_mirror/gpseg18
mirror19=19:digoal.sqa.zmf:41019:42019:43019:/disk1/digoal/gpdata_mirror/gpseg19
mirror20=20:digoal.sqa.zmf:41020:42020:43020:/disk1/digoal/gpdata_mirror/gpseg20
mirror21=21:digoal.sqa.zmf:41021:42021:43021:/disk1/digoal/gpdata_mirror/gpseg21
mirror22=22:digoal.sqa.zmf:41022:42022:43022:/disk1/digoal/gpdata_mirror/gpseg22

如果你不满意,可以自行修改以上配置文件。
解释一下配置文件的含义。可以查看 gp_segment_configuration,  pg_filespace, pg_filespace_entry 获得内容。
postgres=# select * from gp_segment_configuration order by role,content;
    1 |      -1 | p    | p              | s    | u      |  1921 | digoal.sqa.zmf | digoal.sqa.zmf |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | digoal.sqa.zmf | digoal.sqa.zmf |            43000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | digoal.sqa.zmf | digoal.sqa.zmf |            43001 | 
    4 |       2 | p    | p              | s    | u      | 40002 | digoal.sqa.zmf | digoal.sqa.zmf |            43002 | 
    5 |       3 | p    | p              | s    | u      | 40003 | digoal.sqa.zmf | digoal.sqa.zmf |            43003 | 
    6 |       4 | p    | p              | s    | u      | 40004 | digoal.sqa.zmf | digoal.sqa.zmf |            43004 | 
    7 |       5 | p    | p              | s    | u      | 40005 | digoal.sqa.zmf | digoal.sqa.zmf |            43005 | 
    8 |       6 | p    | p              | s    | u      | 40006 | digoal.sqa.zmf | digoal.sqa.zmf |            43006 | 
    9 |       7 | p    | p              | s    | u      | 40007 | digoal.sqa.zmf | digoal.sqa.zmf |            43007 | 
   10 |       8 | p    | p              | s    | u      | 40008 | digoal.sqa.zmf | digoal.sqa.zmf |            43008 | 
   11 |       9 | p    | p              | s    | u      | 40009 | digoal.sqa.zmf | digoal.sqa.zmf |            43009 | 
   12 |      10 | p    | p              | s    | u      | 40010 | digoal.sqa.zmf | digoal.sqa.zmf |            43010 | 
   13 |      11 | p    | p              | s    | u      | 40011 | digoal.sqa.zmf | digoal.sqa.zmf |            43011 | 
   14 |      12 | p    | p              | s    | u      | 40012 | digoal.sqa.zmf | digoal.sqa.zmf |            43012 | 
   15 |      13 | p    | p              | s    | u      | 40013 | digoal.sqa.zmf | digoal.sqa.zmf |            43013 | 
   16 |      14 | p    | p              | s    | u      | 40014 | digoal.sqa.zmf | digoal.sqa.zmf |            43014 | 
   17 |      15 | p    | p              | s    | u      | 40015 | digoal.sqa.zmf | digoal.sqa.zmf |            43015 | 
   18 |      16 | p    | p              | s    | u      | 40016 | digoal.sqa.zmf | digoal.sqa.zmf |            43016 | 
   19 |      17 | p    | p              | s    | u      | 40017 | digoal.sqa.zmf | digoal.sqa.zmf |            43017 | 
   20 |      18 | p    | p              | s    | u      | 40018 | digoal.sqa.zmf | digoal.sqa.zmf |            43018 | 
   21 |      19 | p    | p              | s    | u      | 40019 | digoal.sqa.zmf | digoal.sqa.zmf |            43019 | 
   22 |      20 | p    | p              | s    | u      | 40020 | digoal.sqa.zmf | digoal.sqa.zmf |            43020 | 
   23 |      21 | p    | p              | s    | u      | 40021 | digoal.sqa.zmf | digoal.sqa.zmf |            43021 | 
   24 |      22 | p    | p              | s    | u      | 50011 | digoal.sqa.zmf | digoal.sqa.zmf |            43022 | 

postgres=# select * from pg_filespace;
  fsname   | fsowner 
-----------+---------
 pg_system |      10
(1 row)

postgres=# select * from pg_filespace_entry ;
 fsefsoid | fsedbid |              fselocation              
----------+---------+---------------------------------------
     3052 |       1 | /disk1/digoal/gpdata/gpseg-1
     3052 |       2 | /disk1/digoal/gpdata/gpseg0
     3052 |       3 | /disk1/digoal/gpdata/gpseg1
     3052 |       4 | /disk1/digoal/gpdata/gpseg2
     3052 |       5 | /disk1/digoal/gpdata/gpseg3
     3052 |       6 | /disk1/digoal/gpdata/gpseg4
     3052 |       7 | /disk1/digoal/gpdata/gpseg5
     3052 |       8 | /disk1/digoal/gpdata/gpseg6
     3052 |       9 | /disk1/digoal/gpdata/gpseg7
     3052 |      10 | /disk1/digoal/gpdata/gpseg8
     3052 |      11 | /disk1/digoal/gpdata/gpseg9
     3052 |      12 | /disk1/digoal/gpdata/gpseg10
     3052 |      13 | /disk1/digoal/gpdata/gpseg11
     3052 |      14 | /disk1/digoal/gpdata/gpseg12
     3052 |      15 | /disk1/digoal/gpdata/gpseg13
     3052 |      16 | /disk1/digoal/gpdata/gpseg14
     3052 |      17 | /disk1/digoal/gpdata/gpseg15
     3052 |      18 | /disk1/digoal/gpdata/gpseg16
     3052 |      19 | /disk1/digoal/gpdata/gpseg17
     3052 |      20 | /disk1/digoal/gpdata/gpseg18
     3052 |      21 | /disk1/digoal/gpdata/gpseg19
     3052 |      22 | /disk1/digoal/gpdata/gpseg20
     3052 |      23 | /disk1/digoal/gpdata/gpseg21
     3052 |      24 | /disk1/digoal/gpdata/gpseg22
     3052 |      25 | /disk1/digoal/gpdata_mirror/gpseg0
     3052 |      26 | /disk1/digoal/gpdata_mirror/gpseg1
     3052 |      27 | /disk1/digoal/gpdata_mirror/gpseg2
     3052 |      28 | /disk1/digoal/gpdata_mirror/gpseg3
     3052 |      29 | /disk1/digoal/gpdata_mirror/gpseg4
     3052 |      30 | /disk1/digoal/gpdata_mirror/gpseg5
     3052 |      31 | /disk1/digoal/gpdata_mirror/gpseg6
     3052 |      32 | /disk1/digoal/gpdata_mirror/gpseg7
     3052 |      33 | /disk1/digoal/gpdata_mirror/gpseg8
     3052 |      34 | /disk1/digoal/gpdata_mirror/gpseg9
     3052 |      35 | /disk1/digoal/gpdata_mirror/gpseg10
     3052 |      36 | /disk1/digoal/gpdata_mirror/gpseg11
     3052 |      37 | /disk1/digoal/gpdata_mirror/gpseg12
     3052 |      38 | /disk1/digoal/gpdata_mirror/gpseg13
     3052 |      39 | /disk1/digoal/gpdata_mirror/gpseg14
     3052 |      40 | /disk1/digoal/gpdata_mirror/gpseg15
     3052 |      41 | /disk1/digoal/gpdata_mirror/gpseg16
     3052 |      42 | /disk1/digoal/gpdata_mirror/gpseg17
     3052 |      43 | /disk1/digoal/gpdata_mirror/gpseg18
     3052 |      44 | /disk1/digoal/gpdata_mirror/gpseg19
     3052 |      45 | /disk1/digoal/gpdata_mirror/gpseg20
     3052 |      46 | /disk1/digoal/gpdata_mirror/gpseg21
     3052 |      47 | /disk1/digoal/gpdata_mirror/gpseg22
(47 rows)

配置文件格式:
-i <mirror_config_file>

 A configuration file containing one line for each mirror segment 
 you want to create. You must have one mirror segment listed for 
 each primary segment in the system. The format of this file is as 
 follows (as per attributes in the gp_segment_configuration, 
 pg_filespace, and pg_filespace_entry catalog tables):

   filespaceOrder=[<filespace1_fsname>[:<filespace2_fsname>:...]
   mirror<content>=<content>:<address>:<port>:<mir_replication_port>:<pri_replication_port>:<fselocation>[:<fselocation>:...]

 Note that you only need to specify a name for filespaceOrder if 
 your system has multiple filespaces configured. If your system does 
 not have additional filespaces configured besides the default pg_system 
 filespace, this file will only have one location per segment (for 
 the default data directory filespace, pg_system). pg_system does 
 not need to be listed in the filespaceOrder line. It will always be 
 the first <fselocation> listed after <replication_port>.
根据这个格式,以及系统信息,可以定制那个mirror跑在哪台主机上,以及目录信息都可以配置。

正式添加mirror
gpaddmirrors -i ./addmirror -v -B 1

20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=content id                     delimiter='=' value=None
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=contentId                      delimiter=':' value=0
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=address                        delimiter=':' value=digoal.sqa.zmf
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=port                           delimiter=':' value=41000
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=replicationPort                delimiter=':' value=42000
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=primarySegmentReplicationPort  delimiter=':' value=43000
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=dataDirectory                  delimiter=':' value=/disk1/digoal/gpdata_mirror/gpseg0
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-./addmirror:3
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=content id                     delimiter='=' value=None
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=contentId                      delimiter=':' value=1
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=address                        delimiter=':' value=digoal.sqa.zmf
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=port                           delimiter=':' value=41001
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=replicationPort                delimiter=':' value=42001
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=primarySegmentReplicationPort  delimiter=':' value=43001
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-  name=dataDirectory                  delimiter=':' value=/disk1/digoal/gpdata_mirror/gpseg1
......
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-Greenplum Add Mirrors Parameters
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:----------------------------------------------------------
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-Greenplum master data directory          = /disk1/digoal/gpdata/gpseg-1
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-Greenplum master port                    = 1921
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-Parallel batch limit                     = 1
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:----------------------------------------------------------
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-Mirror 1 of 23
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:----------------------------------------------------------
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Primary instance host               = digoal.sqa.zmf
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Primary instance address            = digoal.sqa.zmf
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Primary instance directory          = /disk1/digoal/gpdata/gpseg0
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Primary instance port               = 40000
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Primary instance replication port   = 43000
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Mirror instance host                = digoal.sqa.zmf
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Mirror instance address             = digoal.sqa.zmf
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Mirror instance directory           = /disk1/digoal/gpdata_mirror/gpseg0
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Mirror instance port                = 41000
20151217:17:59:13:071643 gpaddmirrors:digoal:digoal-[INFO]:-   Mirror instance replication port    = 42000
......
Continue with add mirrors procedure Yy|Nn (default=N):
> y
......
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-Process results...
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-Done updating primaries
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-******************************************************************
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-Mirror segments have been added; data synchronization is in progress.
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-Data synchronization will continue in the background.
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-Use  gpstate -s  to check the resynchronization progress.
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[INFO]:-******************************************************************
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-WorkerPool haltWork()
20151217:17:59:36:071643 gpaddmirrors:digoal:digoal-[DEBUG]:-[worker0] haltWork

查看mirror同步状态
$ gpstate -s
Resynchronizing表示还在同步
Synchronized表示同步完成。
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-   Segment Info
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Hostname                                = digoal.sqa.zmf
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Address                                 = digoal.sqa.zmf
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Datadir                                 = /disk1/digoal/gpdata/gpseg0
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Port                                    = 40000
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-   Mirroring Info
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Current role                            = Primary
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Preferred role                          = Primary
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Mirror status                           = Resynchronizing
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-   Change Tracking Info
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Change tracking data size               = 8.25 MB
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-   Resynchronization Info
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Resynchronization mode                  = Full
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Data synchronized                       = 119 MB
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Estimated total data to synchronize     = 121 MB
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Estimated resync progress with mirror   = 98.91%
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Total resync objects                    = 1030
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Objects to resync                       = 0
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Estimated resync end time               = 2015-12-17 17:59:53
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-   Status
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      PID                                     = 68982
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Configuration reports status as         = Up
20151217:17:59:58:074049 gpstate:digoal:digoal-[INFO]:-      Database status                         = Suspended

或者
gpstate  -m
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-Starting gpstate with args: -m
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.6.1 build 2'
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.6.1 build 2) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Oct  1 2015 15:14:22'
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-Obtaining Segment details from master...
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:--------------------------------------------------------------
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:--Current GPDB mirror list and status
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:--Type = Group
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:--------------------------------------------------------------
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   Mirror              Datadir                                 Port    Status    Data Status    
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg0    41000   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg1    41001   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg2    41002   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg3    41003   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg4    41004   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg5    41005   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg6    41006   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg7    41007   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg8    41008   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg9    41009   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg10   41010   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg11   41011   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg12   41012   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg13   41013   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg14   41014   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg15   41015   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg16   41016   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg17   41017   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg18   41018   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg19   41019   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg20   41020   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg21   41021   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:-   digoal.sqa.zmf   /disk1/digoal/gpdata_mirror/gpseg22   41022   Passive   Synchronized
20151217:19:37:04:124869 gpstate:digoal:digoal-[INFO]:--------------------------------------------------------------

addmirror时,输出的端口信息解释
-  name=port                           delimiter=':' value=41013  对应mirror的postmaster监听端口
-  name=replicationPort                delimiter=':' value=42013  对应mirror的receiver ack process监听端口
-  name=primarySegmentReplicationPort  delimiter=':' value=43013  对应primary的receiver process监听端口
也对应了使用gpinitsystem初始化数据库时指定的几个配置。
MIRROR_PORT_BASE
 Optional. This specifies the base number by which mirror segment 
 port numbers are calculated. The first mirror segment port on a 
 host is set as MIRROR_PORT_BASE, and then incremented by one 
 for each additional mirror segment on that host. Valid values 
 range from 1 through 65535 and cannot conflict with the ports 
 calculated by PORT_BASE.


REPLICATION_PORT_BASE
 Optional. This specifies the base number by which the port numbers 
 for the primary file replication process are calculated. The 
 first replication port on a host is set as REPLICATION_PORT_BASE, 
 and then incremented by one for each additional primary segment 
 on that host. Valid values range from 1 through 65535 and cannot 
 conflict with the ports calculated by PORT_BASE or MIRROR_PORT_BASE.


MIRROR_REPLICATION_PORT_BASE
 Optional. This specifies the base number by which the port numbers 
 for the mirror file replication process are calculated. The first 
 mirror replication port on a host is set as MIRROR_REPLICATION_PORT_BASE, 
 and then incremented by one for each additional mirror segment on 
 that host. Valid values range from 1 through 65535 and cannot conflict 
 with the ports calculated by PORT_BASE, MIRROR_PORT_BASE, 
 or REPLICATION_PORT_BASE.

primary
digoal  73315  68987  0 17:59 ?        00:00:00 postgres: port 40013, primary process                                                                                                            
digoal  73376  73315  0 17:59 ?        00:00:00 postgres: port 40013, primary receiver ack process                                                                                               
digoal  73381  73315  0 17:59 ?        00:00:05 postgres: port 40013, primary sender process                                                                                                     
digoal  73387  73315  0 17:59 ?        00:00:00 postgres: port 40013, primary consumer ack process                                                                                               
digoal  73393  73315  0 17:59 ?        00:00:03 postgres: port 40013, primary recovery process                                                                                                   
digoal  73400  73315  0 17:59 ?        00:00:00 postgres: port 40013, primary verification process

mirror
digoal  72906  72703  0 17:59 ?        00:00:00 postgres: port 41013, mirror process                                                                                                                   
digoal  72932  72906  0 17:59 ?        00:00:10 postgres: port 41013, mirror receiver process                                                                                                          
digoal  72934  72906  0 17:59 ?        00:00:14 postgres: port 41013, mirror consumer process                                                                                                          
digoal  72936  72906  0 17:59 ?        00:00:01 postgres: port 41013, mirror consumer writer process                                                                                                   
digoal  72938  72906  0 17:59 ?        00:00:00 postgres: port 41013, mirror consumer append only process                                                                                              
digoal  72939  72906  0 17:59 ?        00:00:00 postgres: port 41013, mirror sender ack process                                                                                                        
digoal  72940  72906  0 17:59 ?        00:00:00 postgres: port 41013, mirror verification process

连接是这样的。
primary sender -> mirror receiver
mirror sender ack -> primary receiver ack

查看segment的元数据信息。
postgres=# select * from gp_segment_configuration order by dbid;
 dbid | content | role | preferred_role | mode | status | port  |     hostname      |      address      | replication_port | san_mounts 
------+---------+------+----------------+------+--------+-------+-------------------+-------------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  1921 | digoal.sqa.zmf | digoal.sqa.zmf |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | digoal.sqa.zmf | digoal.sqa.zmf |            43000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | digoal.sqa.zmf | digoal.sqa.zmf |            43001 | 
    4 |       2 | p    | p              | s    | u      | 40002 | digoal.sqa.zmf | digoal.sqa.zmf |            43002 | 
    5 |       3 | p    | p              | s    | u      | 40003 | digoal.sqa.zmf | digoal.sqa.zmf |            43003 | 
    6 |       4 | p    | p              | s    | u      | 40004 | digoal.sqa.zmf | digoal.sqa.zmf |            43004 | 
    7 |       5 | p    | p              | s    | u      | 40005 | digoal.sqa.zmf | digoal.sqa.zmf |            43005 | 
    8 |       6 | p    | p              | s    | u      | 40006 | digoal.sqa.zmf | digoal.sqa.zmf |            43006 | 
    9 |       7 | p    | p              | s    | u      | 40007 | digoal.sqa.zmf | digoal.sqa.zmf |            43007 | 
   10 |       8 | p    | p              | s    | u      | 40008 | digoal.sqa.zmf | digoal.sqa.zmf |            43008 | 
   11 |       9 | p    | p              | s    | u      | 40009 | digoal.sqa.zmf | digoal.sqa.zmf |            43009 | 
   12 |      10 | p    | p              | s    | u      | 40010 | digoal.sqa.zmf | digoal.sqa.zmf |            43010 | 
   13 |      11 | p    | p              | s    | u      | 40011 | digoal.sqa.zmf | digoal.sqa.zmf |            43011 | 
   14 |      12 | p    | p              | s    | u      | 40012 | digoal.sqa.zmf | digoal.sqa.zmf |            43012 | 
   15 |      13 | p    | p              | s    | u      | 40013 | digoal.sqa.zmf | digoal.sqa.zmf |            43013 | 
   16 |      14 | p    | p              | s    | u      | 40014 | digoal.sqa.zmf | digoal.sqa.zmf |            43014 | 
   17 |      15 | p    | p              | s    | u      | 40015 | digoal.sqa.zmf | digoal.sqa.zmf |            43015 | 
   18 |      16 | p    | p              | s    | u      | 40016 | digoal.sqa.zmf | digoal.sqa.zmf |            43016 | 
   19 |      17 | p    | p              | s    | u      | 40017 | digoal.sqa.zmf | digoal.sqa.zmf |            43017 | 
   20 |      18 | p    | p              | s    | u      | 40018 | digoal.sqa.zmf | digoal.sqa.zmf |            43018 | 
   21 |      19 | p    | p              | s    | u      | 40019 | digoal.sqa.zmf | digoal.sqa.zmf |            43019 | 
   22 |      20 | p    | p              | s    | u      | 40020 | digoal.sqa.zmf | digoal.sqa.zmf |            43020 | 
   23 |      21 | p    | p              | s    | u      | 40021 | digoal.sqa.zmf | digoal.sqa.zmf |            43021 | 
   24 |      22 | p    | p              | s    | u      | 50011 | digoal.sqa.zmf | digoal.sqa.zmf |            43022 | 
   25 |       0 | m    | m              | s    | u      | 41000 | digoal.sqa.zmf | digoal.sqa.zmf |            42000 | 
   26 |       1 | m    | m              | s    | u      | 41001 | digoal.sqa.zmf | digoal.sqa.zmf |            42001 | 
   27 |       2 | m    | m              | s    | u      | 41002 | digoal.sqa.zmf | digoal.sqa.zmf |            42002 | 
   28 |       3 | m    | m              | s    | u      | 41003 | digoal.sqa.zmf | digoal.sqa.zmf |            42003 | 
   29 |       4 | m    | m              | s    | u      | 41004 | digoal.sqa.zmf | digoal.sqa.zmf |            42004 | 
   30 |       5 | m    | m              | s    | u      | 41005 | digoal.sqa.zmf | digoal.sqa.zmf |            42005 | 
   31 |       6 | m    | m              | s    | u      | 41006 | digoal.sqa.zmf | digoal.sqa.zmf |            42006 | 
   32 |       7 | m    | m              | s    | u      | 41007 | digoal.sqa.zmf | digoal.sqa.zmf |            42007 | 
   33 |       8 | m    | m              | s    | u      | 41008 | digoal.sqa.zmf | digoal.sqa.zmf |            42008 | 
   34 |       9 | m    | m              | s    | u      | 41009 | digoal.sqa.zmf | digoal.sqa.zmf |            42009 | 
   35 |      10 | m    | m              | s    | u      | 41010 | digoal.sqa.zmf | digoal.sqa.zmf |            42010 | 
   36 |      11 | m    | m              | s    | u      | 41011 | digoal.sqa.zmf | digoal.sqa.zmf |            42011 | 
   37 |      12 | m    | m              | s    | u      | 41012 | digoal.sqa.zmf | digoal.sqa.zmf |            42012 | 
   38 |      13 | m    | m              | s    | u      | 41013 | digoal.sqa.zmf | digoal.sqa.zmf |            42013 | 
   39 |      14 | m    | m              | s    | u      | 41014 | digoal.sqa.zmf | digoal.sqa.zmf |            42014 | 
   40 |      15 | m    | m              | s    | u      | 41015 | digoal.sqa.zmf | digoal.sqa.zmf |            42015 | 
   41 |      16 | m    | m              | s    | u      | 41016 | digoal.sqa.zmf | digoal.sqa.zmf |            42016 | 
   42 |      17 | m    | m              | s    | u      | 41017 | digoal.sqa.zmf | digoal.sqa.zmf |            42017 | 
   43 |      18 | m    | m              | s    | u      | 41018 | digoal.sqa.zmf | digoal.sqa.zmf |            42018 | 
   44 |      19 | m    | m              | s    | u      | 41019 | digoal.sqa.zmf | digoal.sqa.zmf |            42019 | 
   45 |      20 | m    | m              | s    | u      | 41020 | digoal.sqa.zmf | digoal.sqa.zmf |            42020 | 
   46 |      21 | m    | m              | s    | u      | 41021 | digoal.sqa.zmf | digoal.sqa.zmf |            42021 | 
   47 |      22 | m    | m              | s    | u      | 41022 | digoal.sqa.zmf | digoal.sqa.zmf |            42022 | 
(47 rows)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值