Greenplum 节点扩展

12. 扩展 GP 系统

12.1 增加段实例
  • 查看集群原始规模:
gpdb1=# select * from gp_segment_configuration;
 dbid | content | role | preferred_role | mode | status | port  | hostname | address | replication_port | san_mounts 
------+---------+------+----------------+------+--------+-------+----------+---------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  5432 | mdw      | mdw     |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | sdw01    | sdw01   |            41000 | 
    4 |       2 | p    | p              | s    | u      | 40000 | sdw02    | sdw02   |            41000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | sdw01    | sdw01   |            41001 | 
    5 |       3 | p    | p              | s    | u      | 40001 | sdw02    | sdw02   |            41001 | 
    6 |       0 | m    | m              | s    | u      | 50000 | sdw02    | sdw02   |            51000 | 
    7 |       1 | m    | m              | s    | u      | 50001 | sdw02    | sdw02   |            51001 | 
    8 |       2 | m    | m              | s    | u      | 50000 | sdw01    | sdw01   |            51000 | 
    9 |       3 | m    | m              | s    | u      | 50001 | sdw01    | sdw01   |            51001 | 
   10 |       4 | p    | p              | s    | u      | 40000 | sdw03    | sdw03   |            41000 | 
   16 |       4 | m    | m              | s    | u      | 50000 | sdw04    | sdw04   |            51000 | 
   11 |       5 | p    | p              | s    | u      | 40001 | sdw03    | sdw03   |            41001 | 
   17 |       5 | m    | m              | s    | u      | 50001 | sdw04    | sdw04   |            51001 | 
   12 |       6 | p    | p              | s    | u      | 40000 | sdw04    | sdw04   |            41000 | 
   14 |       6 | m    | m              | s    | u      | 50000 | sdw03    | sdw03   |            51000 | 
   13 |       7 | p    | p              | s    | u      | 40001 | sdw04    | sdw04   |            41001 | 
   15 |       7 | m    | m              | s    | u      | 50001 | sdw03    | sdw03   |            51001 | 
(17 rows)

gpdb1=# select * from test1_info;
 tid | tname 
-----+-------
 7   | g
 12  | l
 6   | ff
 13  | m
 5   | ee
 10  | j
 4   | dd
 11  | k
 3   | bb
 16  | p
 2   | aa
 17  | q
 1   | tom
 9   | i
 14  | n
 8   | h
 15  | o
(17 rows)


gpdb1=# select gp_segment_id, count(*) from test1_info group by gp_segment_id order by gp_segment_id;
 gp_segment_id | count 
---------------+-------
             0 |     2
             1 |     2
             2 |     2
             3 |     2
             4 |     2
             5 |     2
             6 |     3
             7 |     2
(8 rows)

Time: 352.134 ms




  • 编辑扩展文件

我们希望将现有的每个节点扩展一倍,即由原来的4个segment节点,每个节点上有2个segment实例和2个mirror segment实例,扩展后,每个节点上有4个segment实例和4个mirror segment实例。

  • 开始扩展

重置扩展计划,执行过程中会出现提示,输入 y 即可:

gpexpand -c

生成扩展文件,all_seg 就是所有段节点的主机名

[gpadmin@mdw ~]$ cat all_seg 
sdw01
sdw02
sdw03
sdw04
[gpadmin@mdw ~]$ gpexpand -f all_seg 
20170510:17:12:21:060552 gpexpand:mdw:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.12.0 build 1'
20170510:17:12:21:060552 gpexpand:mdw:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.12.0 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Feb 27 2017 20:45:12'
20170510:17:12:21:060552 gpexpand:mdw:gpadmin-[INFO]:-Querying gpexpand schema for current expansion state

System Expansion is used to add segments to an existing GPDB array.
gpexpand did not detect a System Expansion that is in progress.

Before initiating a System Expansion, you need to provision and burn-in
the new hardware.  Please be sure to run gpcheckperf/gpcheckos to make
sure the new hardware is working properly.

Please refer to the Admin Guide for more information.

Would you like to initiate a new System Expansion Yy|Nn (default=N):
> y

You must now specify a mirroring strategy for the new hosts.  Spread mirroring places
a given hosts mirrored segments each on a separate host.  You must be 
adding more hosts than the number of segments per host to use this. 
Grouped mirroring places all of a given hosts segments on a single 
mirrored host.  You must be adding at least 2 hosts in order to use this.



What type of mirroring strategy would you like?
 spread|grouped (default=grouped):
> 

** No hostnames were given that do not already exist in the **
** array. Additional segments will be added existing hosts. **

    By default, new hosts are configured with the same number of primary
    segments as existing hosts.  Optionally, you can increase the number
    of segments per host.

    For example, if existing hosts have two primary segments, entering a value
    of 2 will initialize two additional segments on existing hosts, and four
    segments on new hosts.  In addition, mirror segments will be added for
    these new primary segments if mirroring is enabled.
    

How many new primary segments per host do you want to add? (default=0):
> 2
Enter new primary data directory 1:
> /tol/data/gp3
Enter new primary data directory 2:
> /tol/data/gp4
Enter new mirror data directory 1:
> /tol/data/mi3
Enter new mirror data directory 2:
> /tol/data/mi4

Generating configuration file...

20170510:17:13:20:060552 gpexpand:mdw:gpadmin-[INFO]:-Generating input file...

Input configuration files were written to 'gpexpand_inputfile_20170510_171320' and 'None'.
Please review the file and make sure that it is correct then re-run
with: gpexpand -i gpexpand_inputfile_20170510_171320 -D gpdb1
                
20170510:17:13:20:060552 gpexpand:mdw:gpadmin-[INFO]:-Exiting...

查看生成的 扩展文件

[gpadmin@mdw ~]$ cat gpexpand_inputfile_20170510_171320 
sdw01:sdw01:40002:/tol/data/gp3/gpseg8:18:8:p:41002
sdw02:sdw02:50002:/tol/data/mi3/gpseg8:28:8:m:51002
sdw01:sdw01:40003:/tol/data/gp4/gpseg9:19:9:p:41003
sdw02:sdw02:50003:/tol/data/mi4/gpseg9:29:9:m:51003
sdw02:sdw02:40002:/tol/data/gp3/gpseg10:20:10:p:41002
sdw03:sdw03:50002:/tol/data/mi3/gpseg10:30:10:m:51002
sdw02:sdw02:40003:/tol/data/gp4/gpseg11:21:11:p:41003
sdw03:sdw03:50003:/tol/data/mi4/gpseg11:31:11:m:51003
sdw03:sdw03:40002:/tol/data/gp3/gpseg12:22:12:p:41002
sdw04:sdw04:50002:/tol/data/mi3/gpseg12:32:12:m:51002
sdw03:sdw03:40003:/tol/data/gp4/gpseg13:23:13:p:41003
sdw04:sdw04:50003:/tol/data/mi4/gpseg13:33:13:m:51003
sdw04:sdw04:40002:/tol/data/gp3/gpseg14:24:14:p:41002
sdw01:sdw01:50002:/tol/data/mi3/gpseg14:26:14:m:51002
sdw04:sdw04:40003:/tol/data/gp4/gpseg15:25:15:p:41003
sdw01:sdw01:50003:/tol/data/mi4/gpseg15:27:15:m:51003

执行扩展

[gpadmin@mdw ~]$ gpexpand -i gpexpand_inputfile_20170510_171320 
20170510:17:16:26:060689 gpexpand:mdw:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.12.0 build 1'
20170510:17:16:26:060689 gpexpand:mdw:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.12.0 build 1) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Feb 27 2017 20:45:12'
20170510:17:16:26:060689 gpexpand:mdw:gpadmin-[INFO]:-Querying gpexpand schema for current expansion state
20170510:17:16:26:060689 gpexpand:mdw:gpadmin-[INFO]:-Readying Greenplum Database for a new expansion
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking database gpdb1 for unalterable tables...
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking database postgres for unalterable tables...
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking database template1 for unalterable tables...
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking database gpdb1 for tables with unique indexes...
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking database postgres for tables with unique indexes...
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking database template1 for tables with unique indexes...
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-Syncing Greenplum Database extensions
20170510:17:16:55:060689 gpexpand:mdw:gpadmin-[INFO]:-The packages on sdw04 are consistent.
20170510:17:16:56:060689 gpexpand:mdw:gpadmin-[INFO]:-The packages on sdw01 are consistent.
20170510:17:16:56:060689 gpexpand:mdw:gpadmin-[INFO]:-The packages on sdw03 are consistent.
20170510:17:16:57:060689 gpexpand:mdw:gpadmin-[INFO]:-The packages on sdw02 are consistent.
20170510:17:16:57:060689 gpexpand:mdw:gpadmin-[INFO]:-Creating segment template
20170510:17:16:57:060689 gpexpand:mdw:gpadmin-[INFO]:-VACUUM FULL on the catalog tables
20170510:17:16:59:060689 gpexpand:mdw:gpadmin-[INFO]:-Starting copy of segment dbid 1 to location /tol/master/gpexpand_05102017_60689
20170510:17:17:01:060689 gpexpand:mdw:gpadmin-[INFO]:-Copying postgresql.conf from existing segment into template
20170510:17:17:02:060689 gpexpand:mdw:gpadmin-[INFO]:-Copying pg_hba.conf from existing segment into template
20170510:17:17:02:060689 gpexpand:mdw:gpadmin-[INFO]:-Adding new segments into template pg_hba.conf
20170510:17:17:02:060689 gpexpand:mdw:gpadmin-[INFO]:-Creating schema tar file
20170510:17:17:03:060689 gpexpand:mdw:gpadmin-[INFO]:-Distributing template tar file to new hosts
20170510:17:17:13:060689 gpexpand:mdw:gpadmin-[INFO]:-Configuring new segments (primary)
20170510:17:17:38:060689 gpexpand:mdw:gpadmin-[INFO]:-Configuring new segments (mirror)
20170510:17:17:38:060689 gpexpand:mdw:gpadmin-[INFO]:-Backing up pg_hba.conf file on original segments
20170510:17:17:41:060689 gpexpand:mdw:gpadmin-[INFO]:-Copying new pg_hba.conf file to original segments
20170510:17:17:41:060689 gpexpand:mdw:gpadmin-[INFO]:-Configuring original segments
20170510:17:17:41:060689 gpexpand:mdw:gpadmin-[INFO]:-Cleaning up temporary template files
20170510:17:17:42:060689 gpexpand:mdw:gpadmin-[INFO]:-Starting Greenplum Database in restricted mode
20170510:17:19:04:060689 gpexpand:mdw:gpadmin-[INFO]:-Stopping database
20170510:17:19:52:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking if Transaction filespace was moved
20170510:17:19:52:060689 gpexpand:mdw:gpadmin-[INFO]:-Checking if Temporary filespace was moved
20170510:17:19:52:060689 gpexpand:mdw:gpadmin-[INFO]:-Configuring new segment filespaces
20170510:17:19:52:060689 gpexpand:mdw:gpadmin-[INFO]:-Cleaning up databases in new segments.
20170510:17:19:52:060689 gpexpand:mdw:gpadmin-[INFO]:-Starting master in utility mode
20170510:17:19:53:060689 gpexpand:mdw:gpadmin-[INFO]:-Stopping master in utility mode
20170510:17:20:09:060689 gpexpand:mdw:gpadmin-[INFO]:-Starting Greenplum Database in restricted mode
20170510:17:22:30:060689 gpexpand:mdw:gpadmin-[INFO]:-Creating expansion schema
20170510:17:22:54:060689 gpexpand:mdw:gpadmin-[INFO]:-Populating gpexpand.status_detail with data from database gpdb1
20170510:17:23:04:060689 gpexpand:mdw:gpadmin-[INFO]:-Populating gpexpand.status_detail with data from database postgres
20170510:17:23:11:060689 gpexpand:mdw:gpadmin-[INFO]:-Populating gpexpand.status_detail with data from database template1
20170510:17:23:11:060689 gpexpand:mdw:gpadmin-[INFO]:-Stopping Greenplum Database
20170510:17:23:59:060689 gpexpand:mdw:gpadmin-[INFO]:-Starting Greenplum Database
20170510:17:26:23:060689 gpexpand:mdw:gpadmin-[INFO]:-Starting new mirror segment synchronization
20170510:17:47:29:060689 gpexpand:mdw:gpadmin-[INFO]:-************************************************
20170510:17:47:29:060689 gpexpand:mdw:gpadmin-[INFO]:-Initialization of the system expansion complete.
20170510:17:47:29:060689 gpexpand:mdw:gpadmin-[INFO]:-To begin table expansion onto the new segments
20170510:17:47:29:060689 gpexpand:mdw:gpadmin-[INFO]:-rerun gpexpand
20170510:17:47:29:060689 gpexpand:mdw:gpadmin-[INFO]:-************************************************
20170510:17:47:29:060689 gpexpand:mdw:gpadmin-[INFO]:-Exiting... 

再次查看节点规模

gpdb1=# select * from gp_segment_configuration;
 dbid | content | role | preferred_role | mode | status | port  | hostname | address | replication_port | san_mounts 
------+---------+------+----------------+------+--------+-------+----------+---------+------------------+------------
    1 |      -1 | p    | p              | s    | u      |  5432 | mdw      | mdw     |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | sdw01    | sdw01   |            41000 | 
    4 |       2 | p    | p              | s    | u      | 40000 | sdw02    | sdw02   |            41000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | sdw01    | sdw01   |            41001 | 
    5 |       3 | p    | p              | s    | u      | 40001 | sdw02    | sdw02   |            41001 | 
    6 |       0 | m    | m              | s    | u      | 50000 | sdw02    | sdw02   |            51000 | 
    7 |       1 | m    | m              | s    | u      | 50001 | sdw02    | sdw02   |            51001 | 
    8 |       2 | m    | m              | s    | u      | 50000 | sdw01    | sdw01   |            51000 | 
    9 |       3 | m    | m              | s    | u      | 50001 | sdw01    | sdw01   |            51001 | 
   10 |       4 | p    | p              | s    | u      | 40000 | sdw03    | sdw03   |            41000 | 
   16 |       4 | m    | m              | s    | u      | 50000 | sdw04    | sdw04   |            51000 | 
   11 |       5 | p    | p              | s    | u      | 40001 | sdw03    | sdw03   |            41001 | 
   17 |       5 | m    | m              | s    | u      | 50001 | sdw04    | sdw04   |            51001 | 
   12 |       6 | p    | p              | s    | u      | 40000 | sdw04    | sdw04   |            41000 | 
   14 |       6 | m    | m              | s    | u      | 50000 | sdw03    | sdw03   |            51000 | 
   13 |       7 | p    | p              | s    | u      | 40001 | sdw04    | sdw04   |            41001 | 
   15 |       7 | m    | m              | s    | u      | 50001 | sdw03    | sdw03   |            51001 | 
   18 |       8 | p    | p              | c    | u      | 40002 | sdw01    | sdw01   |            41002 | 
   28 |       8 | m    | m              | r    | d      | 50002 | sdw02    | sdw02   |            51002 | 
   19 |       9 | p    | p              | c    | u      | 40003 | sdw01    | sdw01   |            41003 | 
   29 |       9 | m    | m              | r    | d      | 50003 | sdw02    | sdw02   |            51003 | 
   20 |      10 | p    | p              | c    | u      | 40002 | sdw02    | sdw02   |            41002 | 
   30 |      10 | m    | m              | r    | d      | 50002 | sdw03    | sdw03   |            51002 | 
   21 |      11 | p    | p              | c    | u      | 40003 | sdw02    | sdw02   |            41003 | 
   31 |      11 | m    | m              | r    | d      | 50003 | sdw03    | sdw03   |            51003 | 
   22 |      12 | p    | p              | c    | u      | 40002 | sdw03    | sdw03   |            41002 | 
   32 |      12 | m    | m              | r    | d      | 50002 | sdw04    | sdw04   |            51002 | 
   23 |      13 | p    | p              | c    | u      | 40003 | sdw03    | sdw03   |            41003 | 
   33 |      13 | m    | m              | r    | d      | 50003 | sdw04    | sdw04   |            51003 | 
   24 |      14 | p    | p              | c    | u      | 40002 | sdw04    | sdw04   |            41002 | 
   26 |      14 | m    | m              | r    | d      | 50002 | sdw01    | sdw01   |            51002 | 
   25 |      15 | p    | p              | c    | u      | 40003 | sdw04    | sdw04   |            41003 | 
   27 |      15 | m    | m              | r    | d      | 50003 | sdw01    | sdw01   |            51003 | 
(33 rows)

对表进行重分布

gpdb1=# select gp_segment_id, count(*) from test1_info group by gp_segment_id order by gp_segment_id;
 gp_segment_id | count 
---------------+-------
             0 |     2
             1 |     2
             2 |     2
             3 |     2
             4 |     2
             5 |     2
             6 |     3
             7 |     2
(8 rows)


gpdb1=# alter table test1_info set with(reorganize=true);
ALTER TABLE

gpdb1=# select gp_segment_id, count(*) from test1_info group by gp_segment_id order by gp_segment_id;
 gp_segment_id | count 
---------------+-------
             0 |     1
             3 |     4
             5 |     1
             6 |     2
             7 |     1
            10 |     3
            11 |     1
            13 |     1
            14 |     2
            15 |     1
(10 rows)

转载于:https://my.oschina.net/crooner/blog/967761

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值