Version Information:
OS: CentOS release 6.5 (Final)
GP:greenplum4.3.8
1. Scene: wherein all nodes of a server information need to move to a new server, the original node information is as follows:
dbid | content | role | preferred_role | mode | status | port | hostname | address | replication_port | san_mounts
------+---------+------+----------------+------+--------+-------+----------+---------+------------------+------------
1 | -1 | p | p | s | u | 5432 | ETL | gmdw | |
2 | 0 | p | p | s | u | 40000 | ETL | gmdw | 41000 |
3 | 1 | p | p | s | u | 40001 | ETL | gmdw | 41001 |
4 | 2 | p | p | s | u | 40002 | ETL | gmdw | 41002 |
5 | 3 | p | p | s | u | 40003 | ETL | gmdw | 41003 |
6 | 4 | p | p | s | u | 40000 | storm1 | gsdw1 | 41000 |
7 | 5 | p | p | s | u | 40001 | storm1 | gsdw1 | 41001 |
8 | 6 | p | p | s | u | 40002 | storm1 | gsdw1 | 41002 |
9 | 7 | p | p | s | u | 40003 | storm1 | gsdw1 | 41003 |
10 | 8 | p | p | s | u | 40000 | storm2 | gsdw2 | 41000 |
11 | 9 | p | p | s | u | 40001 | storm2 | gsdw2 | 41001 |
12 | 10 | p | p | s | u | 40002 | storm2 | gsdw2 | 41002 |
13 | 11 | p | p | s | u | 40003 | storm2 | gsdw2 | 41003 |
14 | 12 | p | p | s | u | 40000 | storm3 | gsdw3 | 41000 |
15 | 13 | p | p | s | u | 40001 | storm3 | gsdw3 | 41001 |
16 | 14 | p | p | s | u | 40002 | storm3 | gsdw3 | 41002 |
17 | 15 | p | p | s | u | 40003 | storm3 | gsdw3 | 41003 |
18 | 0 | m | m | s | u | 50000 | storm1 | gsdw1 | 51000 |
19 | 1 | m | m | s | u | 50001 | storm1 | gsdw1 | 51001 |
20 | 2 | m | m | s | u | 50002 | storm1 | gsdw1 | 51002 |
21 | 3 | m | m | s | u | 50003 | storm1 | gsdw1 | 51003 |
22 | 4 | m | m | s | u | 50000 | storm2 | gsdw2 | 51000 |
23 | 5 | m | m | s | u | 50001 | storm2 | gsdw2 | 51001 |
24 | 6 | m | m | s | u | 50002 | storm2 | gsdw2 | 51002 |
25 | 7 | m | m | s | u | 50003 | storm2 | gsdw2 | 51003 |
26 | 8 | m | m | s | u | 50000 | storm3 | gsdw3 | 51000 |
27 | 9 | m | m | s | u | 50001 | storm3 | gsdw3 | 51001 |
28 | 10 | m | m | s | u | 50002 | storm3 | gsdw3 | 51002 |
29 | 11 | m | m | s | u | 50003 | storm3 | gsdw3 | 51003 |
30 | 12 | m | m | s | u | 50000 | ETL | gmdw | 51000 |
31 | 13 | m | m | s | u | 50001 | ETL | gmdw | 51001 |
32 | 14 | m | m | s | u | 50002 | ETL | gmdw | 51002 |
33 | 15 | m | m | s | u | 50003 | ETL | gmdw | 51003 |
Require all primary and mirror all data on the ETL migration onto the new server GP-Segment;
2. Procedure:
(1) stops the current cluster greenplum
gpstop of
(2) only start master node
gpstart -m
(3) modify the cluster node information: here to modify the primary and mirror nodes, there are some differences, which follows:
mirror node modification statements:
PGOPTIONS='-c gp_session_role=utility' psql
set allow_system_table_mods='dml';
update gp_segment_configuration set hostname='GP-Segment',address='gsdw4',status='d' where (content in(12,13,14,15) and role='m');
update gp_segment_configuration set mode='c' where (content in (12,13,14,15) and role ='p');
Modification statements primary nodes: in addition to the status and mode changes need to, also need the role of the master node to switch the mirror role, and the role of mirror node is switched to primary node, and then switch back to complete recovery
PGOPTIONS='-c gp_session_role=utility' psql
set allow_system_table_mods='dml';
update gp_segment_configuration set hostname='GP-Segment',address='gsdw4',status='d' where (content in(0,1,2,3) and role='p');
update gp_segment_configuration set role = CASE WHEN preferred_role='p' then 'm' ELSE 'p' END where content in(0,1,2,3);
update gp_segment_configuration set mode='c' where (content in (0,1,2,3) and role ='p');
Node information after the modification is completed as follows: a total of 16 records need to make some changes, please note that the comparison
dbid | content | role | preferred_role | mode | status | port | hostname | address | replication_port | san_mounts
------+---------+------+----------------+------+--------+-------+------------+---------+------------------+------------
1 | -1 | p | p | s | u | 5432 | ETL | gmdw | |
2 | 0 | m | p | s | d | 40000 | GP-Segment | gsdw4 | 41000 |
3 | 1 | m | p | s | d | 40001 | GP-Segment | gsdw4 | 41001 |
4 | 2 | m | p | s | d | 40002 | GP-Segment | gsdw4 | 41002 |
5 | 3 | m | p | s | d | 40003 | GP-Segment | gsdw4 | 41003 |
6 | 4 | p | p | s | u | 40000 | storm1 | gsdw1 | 41000 |
7 | 5 | p | p | s | u | 40001 | storm1 | gsdw1 | 41001 |
8 | 6 | p | p | s | u | 40002 | storm1 | gsdw1 | 41002 |
9 | 7 | p | p | s | u | 40003 | storm1 | gsdw1 | 41003 |
10 | 8 | p | p | s | u | 40000 | storm2 | gsdw2 | 41000 |
11 | 9 | p | p | s | u | 40001 | storm2 | gsdw2 | 41001 |
12 | 10 | p | p | s | u | 40002 | storm2 | gsdw2 | 41002 |
13 | 11 | p | p | s | u | 40003 | storm2 | gsdw2 | 41003 |
14 | 12 | p | p | c | u | 40000 | storm3 | gsdw3 | 41000 |
15 | 13 | p | p | c | u | 40001 | storm3 | gsdw3 | 41001 |
16 | 14 | p | p | c | u | 40002 | storm3 | gsdw3 | 41002 |
17 | 15 | p | p | c | u | 40003 | storm3 | gsdw3 | 41003 |
18 | 0 | p | m | c | u | 50000 | storm1 | gsdw1 | 51000 |
19 | 1 | p | m | c | u | 50001 | storm1 | gsdw1 | 51001 |
20 | 2 | p | m | c | u | 50002 | storm1 | gsdw1 | 51002 |
21 | 3 | p | m | c | u | 50003 | storm1 | gsdw1 | 51003 |
22 | 4 | m | m | s | u | 50000 | storm2 | gsdw2 | 51000 |
23 | 5 | m | m | s | u | 50001 | storm2 | gsdw2 | 51001 |
24 | 6 | m | m | s | u | 50002 | storm2 | gsdw2 | 51002 |
25 | 7 | m | m | s | u | 50003 | storm2 | gsdw2 | 51003 |
26 | 8 | m | m | s | u | 50000 | storm3 | gsdw3 | 51000 |
27 | 9 | m | m | s | u | 50001 | storm3 | gsdw3 | 51001 |
28 | 10 | m | m | s | u | 50002 | storm3 | gsdw3 | 51002 |
29 | 11 | m | m | s | u | 50003 | storm3 | gsdw3 | 51003 |
30 | 12 | m | m | s | d | 50000 | GP-Segment | gsdw4 | 51000 |
31 | 13 | m | m | s | d | 50001 | GP-Segment | gsdw4 | 51001 |
32 | 14 | m | m | s | d | 50002 | GP-Segment | gsdw4 | 51002 |
33 | 15 | m | m | s | d | 50003 | GP-Segment | gsdw4 | 51003 |
(4) Stop master node:
gpstop -m
(5) Start the cluster:
gpstart of
Start the process to succeed, but suggested four mirror node switching primary role, four mirror node fails, there are four nodes need to restore the mirror
20161124:15:57:48:010890 gpstate:ETL:gpadmin-[INFO]:--------------------------------------------------------------
20161124:15:57:48:010890 gpstate:ETL:gpadmin-[WARNING]:-4 segment(s) configured as mirror(s) are acting as primaries
20161124:15:57:48:010890 gpstate:ETL:gpadmin-[WARNING]:-4 segment(s) configured as mirror(s) have failed
20161124:15:57:48:010890 gpstate:ETL:gpadmin-[WARNING]:-4 mirror segment(s) acting as primaries are in change tracking
(5) perform a full restore operation:
gprecoverseg -F
(6) of the cluster check again and found four mirror node is still the primary role, which is then used as the migration of four primary node primary
GPST -m
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:--------------------------------------------------------------
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- Mirror Datadir Port Status Data Status
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam1/gpseg0 50000 Acting as Primary Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam2/gpseg1 50001 Acting as Primary Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam3/gpseg2 50002 Acting as Primary Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam4/gpseg3 50003 Acting as Primary Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam1/gpseg4 50000 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam2/gpseg5 50001 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam3/gpseg6 50002 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam4/gpseg7 50003 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam1/gpseg8 50000 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam2/gpseg9 50001 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam3/gpseg10 50002 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam4/gpseg11 50003 Passive Synchronized
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam1/gpseg12 50000 Passive Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam2/gpseg13 50001 Passive Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam3/gpseg14 50002 Passive Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam4/gpseg15 50003 Passive Resynchronizing
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[INFO]:--------------------------------------------------------------
20161124:15:58:49:011176 gpstate:ETL:gpadmin-[WARNING]:-4 segment(s) configured as mirror(s) are acting as primaries
(7) role-switching:
gprecoverseg -r
(8) to check again, final inspection, we found that all the characters have normal homing, as follows:
GPST -m
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:-Obtaining Segment details from master...
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:--------------------------------------------------------------
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:--Current GPDB mirror list and status
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:--Type = Group
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:--------------------------------------------------------------
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- Mirror Datadir Port Status Data Status
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam1/gpseg0 50000 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam2/gpseg1 50001 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam3/gpseg2 50002 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw1 /export/gpdata/gpdatam4/gpseg3 50003 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam1/gpseg4 50000 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam2/gpseg5 50001 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam3/gpseg6 50002 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw2 /export/gpdata/gpdatam4/gpseg7 50003 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam1/gpseg8 50000 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam2/gpseg9 50001 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam3/gpseg10 50002 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw3 /export/gpdata/gpdatam4/gpseg11 50003 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam1/gpseg12 50000 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam2/gpseg13 50001 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam3/gpseg14 50002 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:- gsdw4 /export/gpdata/gpdatam4/gpseg15 50003 Passive Synchronized
20161124:16:17:29:012172 gpstate:ETL:gpadmin-[INFO]:--------------------------------------------------------------
Note: The recovery process, the larger the data, the longer the need to pay attention to the use of gpstate -m check, if Resynchronizing appears and must not be the next step, after the need to wait for state to Synchronized, before proceeding to the next step.