天天看點

Greenplum添加mirror步驟

[TOC]

概述

新安裝的greenplum叢集隻有primary節點,沒有mirror。高可用性沒得到保證。是以就需要為叢集添加mirror節點

注意:資料量過大時添加mirror,會有較大的磁盤壓力,因為背景會一直同步資料,這一點線上系統需要注意

添加前情況

初始化的時候隻有primary

20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-Greenplum Primary Segment Configuration
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:----------------------------------------
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw1     /data/primary/gpseg0     40000     2     0
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw1     /data/primary/gpseg1     40001     3     1
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw1     /data/primary/gpseg2     40002     4     2
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw1     /data/primary/gpseg3     40003     5     3
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw2     /data/primary/gpseg4     40000     6     4
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw2     /data/primary/gpseg5     40001     7     5
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw2     /data/primary/gpseg6     40002     8     6
20190326:00:48:33:005423 gpinitsystem:gw_mdw1:gpadmin-[INFO]:-gw_sdw2     /data/primary/gpseg7     40003     9     7
Continue with Greenplum creation Yy/Nn>           

檢視系統配置表,發現隻有primary節點

postgres=# 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 | gw_mdw1  | gw_mdw1 |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | gw_sdw1  | gw_sdw1 |                  | 
    6 |       4 | p    | p              | s    | u      | 40000 | gw_sdw2  | gw_sdw2 |                  | 
    3 |       1 | p    | p              | s    | u      | 40001 | gw_sdw1  | gw_sdw1 |                  | 
    7 |       5 | p    | p              | s    | u      | 40001 | gw_sdw2  | gw_sdw2 |                  | 
    4 |       2 | p    | p              | s    | u      | 40002 | gw_sdw1  | gw_sdw1 |                  | 
    8 |       6 | p    | p              | s    | u      | 40002 | gw_sdw2  | gw_sdw2 |                  | 
    5 |       3 | p    | p              | s    | u      | 40003 | gw_sdw1  | gw_sdw1 |                  | 
    9 |       7 | p    | p              | s    | u      | 40003 | gw_sdw2  | gw_sdw2 |                  | 
(9 rows)
           

添加步驟

在所有需要添加mirror的主機,建立存放mirror的資料目錄

可以使用gpssh指令

gpssh -f seg_hosts -e 'mkdir -p /data/mirror'           

生成addmirror檔案

執行gpaddmirrors 指令,鍵入存放mirror節點的日志,生成配置檔案

[gpadmin@gw_mdw1 ~]$ gpaddmirrors -o ./addmirror
20190326:00:56:21:030831 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-Starting gpaddmirrors with args: -o ./addmirror
20190326:00:56:21:030831 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.1.0 build 6'
20190326:00:56:21:030831 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.1.0 build 6) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jun 11 2014 17:23:40'
20190326:00:56:21:030831 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-Obtaining Segment details from master...
Enter mirror segment data directory location 1 of 4 >
/data/mirror
Enter mirror segment data directory location 2 of 4 >
/data/mirror
Enter mirror segment data directory location 3 of 4 >
/data/mirror
Enter mirror segment data directory location 4 of 4 >
/data/mirror
20190326:00:57:15:030831 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-Configuration file output to ./addmirror successfully.           

檢視檔案内容如下

[gpadmin@gw_mdw1 ~]$ cat addmirror 
filespaceOrder=
mirror0=0:gw_sdw2:41000:42000:43000:/data/mirror/gpseg0
mirror1=1:gw_sdw2:41001:42001:43001:/data/mirror/gpseg1
mirror2=2:gw_sdw2:41002:42002:43002:/data/mirror/gpseg2
mirror3=3:gw_sdw2:41003:42003:43003:/data/mirror/gpseg3
mirror4=4:gw_sdw1:41000:42000:43000:/data/mirror/gpseg4
mirror5=5:gw_sdw1:41001:42001:43001:/data/mirror/gpseg5
mirror6=6:gw_sdw1:41002:42002:43002:/data/mirror/gpseg6
mirror7=7:gw_sdw1:41003:42003:43003:/data/mirror/gpseg7           

執行添加指令

[gpadmin@gw_mdw1 ~]$ gpaddmirrors -i addmirror 
20190326:01:08:45:031106 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-Starting gpaddmirrors with args: -i addmirror
20190326:01:08:45:031106 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.1.0 build 6'
20190326:01:08:45:031106 gpaddmirrors:gw_mdw1:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.1.0 build 6) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jun 11 2014 17:23:40'           

指令沒有報錯,檢視mirror節點的情況

使用gpstate -m檢視,發現所有的mirror正在同步資料,因為我的叢集建立,很快就同步完成了,此時再執行gpstate -m就可以看到Data Status的狀态是Synchronized(已同步的)

[gpadmin@gw_mdw1 ~]$ gpstate -m
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-Starting gpstate with args: -m
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 4.3.1.0 build 6'
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 8.2.15 (Greenplum Database 4.3.1.0 build 6) on x86_64-unknown-linux-gnu, compiled by GCC gcc (GCC) 4.4.2 compiled on Jun 11 2014 17:23:40'
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-Obtaining Segment details from master...
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:--------------------------------------------------------------
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:--Current GPDB mirror list and status
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:--Type = Group
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:--------------------------------------------------------------
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   Mirror    Datadir               Port    Status    Data Status       
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw2   /data/mirror/gpseg0   41000   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw2   /data/mirror/gpseg1   41001   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw2   /data/mirror/gpseg2   41002   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw2   /data/mirror/gpseg3   41003   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw1   /data/mirror/gpseg4   41000   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw1   /data/mirror/gpseg5   41001   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw1   /data/mirror/gpseg6   41002   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:-   gw_sdw1   /data/mirror/gpseg7   41003   Passive   Resynchronizing
20190326:01:09:51:031359 gpstate:gw_mdw1:gpadmin-[INFO]:--------------------------------------------------------------
           

檢視節點狀态

發現所有的mirror已經啟動

postgres=# 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 | gw_mdw1  | gw_mdw1 |                  | 
    2 |       0 | p    | p              | s    | u      | 40000 | gw_sdw1  | gw_sdw1 |            43000 | 
   10 |       0 | m    | m              | s    | u      | 41000 | gw_sdw2  | gw_sdw2 |            42000 | 
    3 |       1 | p    | p              | s    | u      | 40001 | gw_sdw1  | gw_sdw1 |            43001 | 
   11 |       1 | m    | m              | s    | u      | 41001 | gw_sdw2  | gw_sdw2 |            42001 | 
    4 |       2 | p    | p              | s    | u      | 40002 | gw_sdw1  | gw_sdw1 |            43002 | 
   12 |       2 | m    | m              | s    | u      | 41002 | gw_sdw2  | gw_sdw2 |            42002 | 
    5 |       3 | p    | p              | s    | u      | 40003 | gw_sdw1  | gw_sdw1 |            43003 | 
   13 |       3 | m    | m              | s    | u      | 41003 | gw_sdw2  | gw_sdw2 |            42003 | 
    6 |       4 | p    | p              | s    | u      | 40000 | gw_sdw2  | gw_sdw2 |            43000 | 
   14 |       4 | m    | m              | s    | u      | 41000 | gw_sdw1  | gw_sdw1 |            42000 | 
    7 |       5 | p    | p              | s    | u      | 40001 | gw_sdw2  | gw_sdw2 |            43001 | 
   15 |       5 | m    | m              | s    | u      | 41001 | gw_sdw1  | gw_sdw1 |            42001 | 
    8 |       6 | p    | p              | s    | u      | 40002 | gw_sdw2  | gw_sdw2 |            43002 | 
   16 |       6 | m    | m              | s    | u      | 41002 | gw_sdw1  | gw_sdw1 |            42002 | 
    9 |       7 | p    | p              | s    | u      | 40003 | gw_sdw2  | gw_sdw2 |            43003 | 
   17 |       7 | m    | m              | s    | u      | 41003 | gw_sdw1  | gw_sdw1 |            42003 | 
(17 rows)