greenplum a node migration

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.


Original articles published 0 · won praise 27 · views 80000 +

Guess you like

Origin blog.csdn.net/yimenglin/article/details/103118324