GreenPlum failover,primary和mirror切換實驗 -- 重要


GP failover,primary和mirror切換實驗 

http://blog.sina.com.cn/s/blog_9869114e0101k1nc.html

一、恢復失敗的segment
出現segment節點down,恢復GP的思路:
if
"segment down" then
case "determine case(errer,message,log,gpstate and so on)"
when "data error[missing or corrupted data directory]"
then
 if "mirror segment是否可用" then
 "gprecoverseg --從mirror segment中恢復primary segment丟失的部分"
 else
 "rebuild gp database system from backup file"
 end if
when "進程錯誤--postmaster process not is running"
then
 if "mirror segment是否可用" then
 "gprecoverseg --從mirror segment中恢復primary segment丟失的部分"
 else
 "重啟GP數據庫--gpstop gpstart"
 end if
when "主機出現故障--dns,network,host down and so on"
then
 if "主機故障是否恢復" then
 "故障恢復,切換主機在線"
  if "mirror segment是否可用" then
  "gprecoverseg --從mirror segment中恢復primary segment丟失的部分"
  else
  "重啟GP數據庫--gpstop gpstart"
  end if
 elsif "mirror segment是否可用"
 then
 "從備機上恢復primary segment丟失的數據 --gprecoverseg -p | -s"
 else
 "rebuild gp database system from backup file"
 end if
end case
end if
a、當發生主機出現故障,主機所有的primary和mirror節點都會標注為down,並踢出集群。如果GP集群沒有部署mirror segment,那么整個GP集群將會宕機。
b、通過gprecoverseg 工具恢復segment丟失的數據部分,恢復期間,數據庫寫的操作將暫時的延緩。
c、gpreceverseg完成之后,數據庫將進行重新同步模式,並開始復制改變的文件。這些操作都都是通過后台進程來完成,在這個階段數據庫是可以進行正常的服務。
d、當重新同步完成,系統編程同步化狀態,可以通過gpstate -m查詢
e、主備切換--切換segment到預設角色(primary,mirror)。當出現segment故障時,mirror segment會替換故障的primary segment,成為primary segment,之前故障的primary segment在使用gprecoverseg恢復后,之前的primary不會切回primary segment,而是變為mirror segment。
二、Preferred role和current role的概念
當配置了mirror segment時,存在Preferred role和current role的概念,當primary segment節點down了,mirror segment節點會接管primary的位置,成為新的primary segment,之前down掉的primary segment在online后會成為mirror segment。那么預設角色是指正常情況下primary segment各種的位置,當前角色是只出現failover后,mirror取代之前的primary,當前的segment的角色。
# 顯示primary、mirror segment存在的問題
gpstate -e
#顯示mirror segment實例的當前角色,同步狀態等信息
gpstate -m
#可以通過gprecover -r將處於當前角色的segment切回預設角色。
gprecoverseg -r
# 顯示primary、mirror segment存在的問題
gpstate -e
案例1:
3個primary segment+3個mirror segment+ 1個master server模擬一個主機宕機的情況。
分析可能出現的問題:
一個主機host2宕機,上面相應的1個primary segment和1個mirror segment都
會down掉。由於做了mirror,host2 primary對於的mirror在host1上,會被激活,成為新的primary節點,當前的角色也從mirror切換成primary。故障的primary節點在online后,會成功新的mirror節點,當前角色從primary角色切換成mirror角色。
模擬故障前的信息確認:
$ gpstate  --查看gp數據庫的總體狀態
-   Master instance                                           = Active    --master狀態                 
-   Master standby                                            = No master standby configured
-   Total segment instance count from metadata                = 6      --segment節點數               
-----------------------------------------------------                                  
-   Primary Segment Status                                                             
-----------------------------------------------------                                  
-   Total primary segments                                    = 3    
-   Total primary segment valid (at master)                   = 3                    
-   Total primary segment failures (at master)                = 0                      
-   Total number of postmaster.pid files missing              = 0                      
-   Total number of postmaster.pid files found                = 3                      
-   Total number of postmaster.pid PIDs missing               = 0                      
-   Total number of postmaster.pid PIDs found                 = 3                      
-   Total number of /tmp lock files missing                   = 0                      
-   Total number of /tmp lock files found                     = 3                      
-   Total number postmaster processes missing                 = 0                      
-   Total number postmaster processes found                   = 3                        
-----------------------------------------------------                                  
-   Mirror Segment Status                                                              
-----------------------------------------------------                                  
-   Total mirror segments                                     = 3                      
-   Total mirror segment valid (at master)                    = 3                      
-   Total mirror segment failures (at master)                 = 0                      
-   Total number of postmaster.pid files missing              = 0                      
-   Total number of postmaster.pid files found                = 3                      
-   Total number of postmaster.pid PIDs missing               = 0                      
-   Total number of postmaster.pid PIDs found                 = 3                      
-   Total number of /tmp lock files missing                   = 0  
$ gpstate -m   --查看mirror節點情況
-Obtaining Segment details from master...                       
--------------------------------------------------------------  
--Current GPDB mirror list and status                           
--Type = Spread                                                 
--------------------------------------------------------------  
-   Mirror   Datadir              Port    Status    Data Status 
-   gp02     /gpsegment2/gpseg0   50000   Passive   Synchronized
-   gp03     /gpsegment2/gpseg1   50000   Passive   Synchronized
-   gp01     /gpsegment2/gpseg2   50000   Passive   Synchronized
-------------------------------------------------------------- 
$ gpstate -e --顯示primary、mirror segment存在的問題
-Gathering data from segments...                                                          -----------------------------------------------------                                     -Segment Mirroring Status Report                                                          -----------------------------------------------------                                     -All segments are running normally
模擬gp02的主機故障:
[gp02]# killall -u gpadmin --殺掉gp02的gpadmin下所有的進程
[root@gp02 ~]# killall -u gpadmin
[root@gp02 ~]# ps -ef | grep gpadmin
root      6733  3155  0 03:26 pts/0    00:00:00 grep gpadmin
查詢故障后,gp數據庫的狀態:
$ gpstate -e
-----------------------------------------------------              
-Segment Mirroring Status Report                                   
-----------------------------------------------------              
-Segments with Primary and Mirror Roles Switched                   
-   Current Primary   Port    Mirror   Port                        
-   gp03              50000   gp02     40000                       
-----------------------------------------------------              
-Primaries in Change Tracking                                      
-   Current Primary   Port    Change tracking size   Mirror   Port 
-   gp01              40000   100 MB                 gp02     50000
-   gp03              50000   100 MB                 gp02     40000
--gp02的primary segment對於的mirror segment的位置:gp03的/gpsegment2/gpseg1。
顯示mirror segment實例的當前角色,同步狀態等信息
$ gpstate -m
[INFO]:--------------------------------------------------------------                     [INFO]:--Current GPDB mirror list and status                                              [INFO]:--Type = Spread                       
  [INFO]:--------------------------------------------------------------                     [INFO]:-   Mirror   Datadir              Port    Status              Data Status          [WARNING]:-gp02     /gpsegment2/gpseg0   50000   Failed                              
  [INFO]:-   gp03     /gpsegment2/gpseg1   50000   Acting as Primary   Change Tracking      [INFO]:-   gp01     /gpsegment2/gpseg2   50000   Passive             Synchronized         [INFO]:--------------------------------------------------------------                     [WARNING]:-1 segment(s) configured as mirror(s) are acting as primaries                   [WARNING]:-1 segment(s) configured as mirror(s) have failed                               [WARNING]:-1 mirror segment(s) acting as primaries are in change tracking
  查詢結果gpseg0 的mirror segment 狀態為failed,gpseg1的mirror成為了primary節點。
  [INFO]:-----------------------------------------------------                              [INFO]:-   Segment Info                                                                   [INFO]:-      Hostname                          = gp02                                    [INFO]:-      Address                           = gp02                                    [INFO]:-      Datadir                           = /gpsegment2/gpseg0                      [INFO]:-      Port                              = 50000                                   [INFO]:-   Mirroring Info                                                                 [INFO]:-      Current role                      = Mirror                                  [INFO]:-      Preferred role                    = Mirror                                  [WARNING]:-   Mirror status                     = Out of Sync             <<<<<<<<        [INFO]:-   Status                                                                         [WARNING]:-   PID                               = Not found               <<<<<<<<        [WARNING]:-   Configuration reports status as   = Down                    <<<<<<<<        [WARNING]:-   Segment status                    = Down in configuration   <<<<<<<<        [INFO]:-----------------------------------------------------                              [INFO]:-   Segment Info                                                                   [INFO]:-      Hostname                          = gp03                                    [INFO]:-      Address                           = gp03                                    [INFO]:-      Datadir                           = /gpsegment2/gpseg1                      [INFO]:-      Port                              = 50000                                   [INFO]:-   Mirroring Info                                                                 [INFO]:-      Current role                      = Primary                                 [INFO]:-      Preferred role                    = Mirror                                  [INFO]:-      Mirror status                     = Change Tracking                         [INFO]:-   Change Tracking Info                                                           [INFO]:-      Change tracking data size         = 100 MB                                  [INFO]:-   Status                                                                         [INFO]:-      PID                               = 5901                                    [INFO]:-      Configuration reports status as   = Up                                      [INFO]:-      Database status                   = Up                                      [INFO]:-----------------------------------------------------                              [INFO]:-   Segment Info                                                                   [INFO]:-      Hostname                          = gp02                                    [INFO]:-      Address                           = gp02                                    [INFO]:-      Datadir                           = /gpsegment1/gpseg1                      [INFO]:-      Port                              = 40000                                   [INFO]:-   Mirroring Info                                                                 [INFO]:-      Current role                      = Mirror                                  [INFO]:-      Preferred role                    = Primary                                 [WARNING]:-   Mirror status                     = Out of Sync             <<<<<<<<        [INFO]:-   Status                                                                         [WARNING]:-   PID                               = Not found               <<<<<<<<        [WARNING]:-   Configuration reports status as   = Down                    <<<<<<<<        [WARNING]:-   Segment status                    = Down in configuration   <<<<<<<<        [INFO]:-----------------------------------------------------   
確定主機無故障后,恢復丟失的數據:
[gpadmin@gp01 gpsegment2]$ gprecoverseg
20140310:04:09:19:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Starting gprecoverseg with args:
20140310:04:09:19:021098 gprecoverseg:gp01:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.2.2.4 build 1 Community Edition'
20140310:04:09:19:021098 gprecoverseg:gp01:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.2.2.4 build 1 Community Edition) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Oct 17 2012 11:52:28'
20140310:04:09:19:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Obtaining Segment details from master...
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Greenplum instance recovery parameters
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Recovery type              = Standard
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Recovery 1 of 2
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Synchronization mode                        = Incremental
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance host                        = gp02
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance address                     = gp02
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance directory                   = /gpsegment2/gpseg0
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance port                        = 50000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance replication port            = 51000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance host               = gp01
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance address            = gp01
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance directory          = /gpsegment1/gpseg0
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance port               = 40000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance replication port   = 41000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Target                             = in-place
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Recovery 2 of 2
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Synchronization mode                        = Incremental
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance host                        = gp02
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance address                     = gp02
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance directory                   = /gpsegment1/gpseg1
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance port                        = 40000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Failed instance replication port            = 41000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance host               = gp03
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance address            = gp03
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance directory          = /gpsegment2/gpseg1
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance port               = 50000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Source instance replication port   = 51000
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:-   Recovery Target                             = in-place
20140310:04:09:20:021098 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
Continue with segment recovery procedure Yy|Nn (default=N):
> y
20140310:04:09:23:021098 gprecoverseg:gp01:gpadmin-[INFO]:-2 segment(s) to recover
20140310:04:09:23:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Ensuring 2 failed segment(s) are stopped
 
updating flat files
20140310:04:09:26:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Updating configuration with new mirrors
20140310:04:09:27:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Updating mirrors
.
20140310:04:09:28:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Starting mirrors
20140310:04:09:28:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Commencing parallel primary and mirror segment instance startup, please wait...
...
20140310:04:09:31:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Process results...
20140310:04:09:31:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Updating configuration to mark mirrors up
20140310:04:09:31:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Updating primaries
20140310:04:09:31:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Commencing parallel primary conversion of 2 segments, please wait...
..
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Process results...
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Done updating primaries
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-******************************************************************
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Updating segments for resynchronization is completed.
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-For segments updated successfully, resynchronization will continue in the background.
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-Use  gpstate -s  to check the resynchronization progress.
20140310:04:09:33:021098 gprecoverseg:gp01:gpadmin-[INFO]:-******************************************************************
a、gprecoverseg才用 Synchronization mode恢復gp02的segment節點丟失的數據。
b、采用增量同步的方式恢復/gpsegment1/gpseg1丟失的數據。--gp02 primary
c、采用增量同步的方式恢復/gpsegment2/gpseg0丟失的數據。--gp01 primary的mirror
恢復后查詢gp數據庫的狀態:
$ gpstate -e --查詢mirror存在的錯誤,查詢顯示gp02的primary節點被mirror替換掉,目前的primary的位置在gp03上。
[INFO]:-----------------------------------------------------
[INFO]:-Segment Mirroring Status Report                     
[INFO]:-----------------------------------------------------
[INFO]:-Segments with Primary and Mirror Roles Switched     
[INFO]:-   Current Primary   Port    Mirror   Port          
[INFO]:-   gp03              50000   gp02     40000
$ gpstate -m
[INFO]:-Obtaining Segment details from master..
[INFO]:--------------------------------------------------------------
[INFO]:--Current GPDB mirror list and status
[INFO]:--Type = Spread
[INFO]:--------------------------------------------------------------
[INFO]:-   Mirror   Datadir              Port    Status              Data Status
[INFO]:-   gp02     /gpsegment2/gpseg0   50000   Passive             Synchronized
[INFO]:-   gp03     /gpsegment2/gpseg1   50000   Acting as Primary   Synchronized
[INFO]:-   gp01     /gpsegment2/gpseg2   50000   Passive             Synchronized
[INFO]:--------------------------------------------------------------
[WARNING]:-1 segment(s) configured as mirror(s) are acting as primaries
切換current role到prefered role
[gpadmin@gp01 gpsegment2]$ gprecoverseg -r
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Starting gprecoverseg with args: -r
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.2.2.4 build 1 Community Edition'
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.2.2.4 build 1 Community Edition) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Oct 17 2012 11:52:28'
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Obtaining Segment details from master...
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Greenplum instance recovery parameters
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Recovery type              = Rebalance
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Unbalanced segment 1 of 2
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance host               = gp03
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance address            = gp03
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance directory          = /gpsegment2/gpseg1
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance port               = 50000
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance replication port   = 51000
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Balanced role                          = Mirror
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Current role                           = Primary
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Unbalanced segment 2 of 2
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance host               = gp02
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance address            = gp02
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance directory          = /gpsegment1/gpseg1
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance port               = 40000
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Unbalanced instance replication port   = 41000
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Balanced role                          = Primary
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:-   Current role                           = Mirror
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[INFO]:----------------------------------------------------------
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[WARNING]:-This operation will cancel queries that are currently executing.
20140310:04:35:51:021852 gprecoverseg:gp01:gpadmin-[WARNING]:-Connections to the database however will not be interrupted.
Continue with segment rebalance procedure Yy|Nn (default=N):
> y
20140310:04:36:01:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Getting unbalanced segments
20140310:04:36:01:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Stopping unbalanced primary segments...
..
20140310:04:36:03:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Triggering segment reconfiguration
20140310:04:36:07:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Starting segment synchronization
............
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-******************************************************************
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-The rebalance operation has completed successfully.
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-There is a resynchronization running in the background to bring all
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-segments in sync.
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-Use gpstate -s to check the resynchronization progress.
20140310:04:36:20:021852 gprecoverseg:gp01:gpadmin-[INFO]:-******************************************************************
查詢切換后的狀態:
$ gpstate -e
[INFO]:-Starting gpstate with args: -e  
[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.2.2.4 build 1 Community Edition'  
[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.2.2.4 build 1 Community Edition) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Oct 17 2012 11:52:28'
[INFO]:-Obtaining Segment details from master...    
[INFO]:-Gathering data from segments...
[INFO]:-----------------------------------------------------    
[INFO]:-Segment Mirroring Status Report 
[INFO]:-----------------------------------------------------
[INFO]:-Segment Pairs in Resynchronization
[INFO]:-   Current Primary   Port    Resync mode   Est. resync progress   Data synced   Est. total to sync    Est. resync end time   Change tracking size   Mirror   Port   
[INFO]:-   gp02  40000   Incremental   100% 224 kB  Sync complete; awaiting config change  100 MB     gp03     50000  
再次查詢gp狀態:
$ gpstate -e
[INFO]:-Starting gpstate with args: -e   
[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.2.2.4 build 1 Community Edition'   
[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.2.2.4 build 1 Community Edition) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Oct 17 2012 11:52:28' 
[INFO]:-Obtaining Segment details from master...
[INFO]:-Gathering data from segments...  
[INFO]:-----------------------------------------------------
[INFO]:-Segment Mirroring Status Report  
[INFO]:-----------------------------------------------------
[INFO]:-All segments are running normally
查詢prefer role和current role:
[INFO]:-----------------------------------------------------
[INFO]:--Master Configuration & Status   
[INFO]:-----------------------------------------------------
[INFO]:-   Master host  = gp01
[INFO]:-   Master postgres process ID     = 12423    
[INFO]:-   Master data directory    = /gpmaster/gpseg-1    
[INFO]:-   Master port  = 5432
[INFO]:-   Master current role= dispatch 
[INFO]:-   Greenplum initsystem version   = 4.2.2.4 build 1 Community Edition
[INFO]:-   Greenplum current version= PostgreSQL 8.2.15 (Greenplum Database 4.2.2.4 build 1 Community Edition) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Oct 17 2012 11:52:28
[INFO]:-   Postgres version   = 8.2.15   
[INFO]:-   Master standby     = No master standby configured
[INFO]:-----------------------------------------------------
[INFO]:-Segment Instance Status Report   
[INFO]:-----------------------------------------------------
[INFO]:-   Segment Info
[INFO]:-Hostname  = gp01
[INFO]:-Address   = gp01
[INFO]:-Datadir   = /gpsegment1/gpseg0   
[INFO]:-Port= 40000    
[INFO]:-   Mirroring Info    
[INFO]:-Current role    = Primary  
[INFO]:-Preferred role  = Primary  
[INFO]:-Mirror status   = Synchronized   
[INFO]:-   Status
[INFO]:-PID = 12390    
[INFO]:-Configuration reports status as   = Up 
[INFO]:-Database status = Up 
[INFO]:-----------------------------------------------------
[INFO]:-   Segment Info
[INFO]:-Hostname  = gp02
[INFO]:-Address   = gp02
[INFO]:-Datadir   = /gpsegment2/gpseg0   
[INFO]:-Port= 50000    
[INFO]:-   Mirroring Info    
[INFO]:-Current role    = Mirror   
[INFO]:-Preferred role  = Mirror   
[INFO]:-Mirror status   = Synchronized   
[INFO]:-   Status
[INFO]:-PID = 10689    
[INFO]:-Configuration reports status as   = Up 
[INFO]:-Segment status  = Up 
[INFO]:-----------------------------------------------------
[INFO]:-   Segment Info
[INFO]:-Hostname  = gp02
[INFO]:-Address   = gp02
[INFO]:-Datadir   = /gpsegment1/gpseg1   
[INFO]:-Port= 40000    
[INFO]:-   Mirroring Info    
[INFO]:-Current role    = Primary  
[INFO]:-Preferred role  = Primary  
[INFO]:-Mirror status   = Synchronized   
[INFO]:-   Status
[INFO]:-PID = 10695    
[INFO]:-Configuration reports status as   = Up 
[INFO]:-Database status = Up 
[INFO]:-----------------------------------------------------
[INFO]:-   Segment Info
[INFO]:-Hostname  = gp03
[INFO]:-Address   = gp03
[INFO]:-Datadir   = /gpsegment2/gpseg1   
[INFO]:-Port= 50000    
[INFO]:-   Mirroring Info    
[INFO]:-Current role    = Mirror   
[INFO]:-Preferred role  = Mirror   
[INFO]:-Mirror status   = Synchronized   
[INFO]:-   Status
[INFO]:-PID = 10946    
[INFO]:-Configuration reports status as   = Up 
[INFO]:-Segment status  = Up 
[INFO]:-----------------------------------------------------
[INFO]:-   Segment Info
[INFO]:-Hostname  = gp03
[INFO]:-Address   = gp03
[INFO]:-Datadir   = /gpsegment1/gpseg2   
[INFO]:-Port= 40000    
[INFO]:-   Mirroring Info    
[INFO]:-Current role    = Primary  
[INFO]:-Preferred role  = Primary  
[INFO]:-Mirror status   = Synchronized   
[INFO]:-   Status
[INFO]:-PID = 5907
[INFO]:-Configuration reports status as   = Up 
[INFO]:-Database status = Up 
[INFO]:-----------------------------------------------------
[INFO]:-   Segment Info
[INFO]:-Hostname  = gp01
[INFO]:-Address   = gp01
[INFO]:-Datadir   = /gpsegment2/gpseg2   
[INFO]:-Port= 50000    
[INFO]:-   Mirroring Info    
[INFO]:-Current role    = Mirror   
[INFO]:-Preferred role  = Mirror   
[INFO]:-Mirror status   = Synchronized   
[INFO]:-   Status
[INFO]:-PID = 14134    
[INFO]:-Configuration reports status as   = Up 
[INFO]:-Segment status  = Up 
current role切換回prefered role。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM