閱讀105 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Greenplum 添加或刪除standby master節點

Greenplum支持master節點的standby,如果你在初始化集群時沒有創建standby節點,或者原來的standby節點壞了或者其他原因,要重搭standby。
本文將告訴你怎麼做。
1. 如果要新建standby,但是原來已有standby,首先要刪除它。
gpinitstandby -r 
如果原來的standby隻是某種原因掛了,不需要刪除,隻需要重啟,則使用以下命令來重啟standby 
gpinitstandby -n

2. 如果搭建standby的機器不在原來的GP集群中,則需要將機器添加進來。
詳細添加方法參考   https://yq.aliyun.com/articles/177  (本文不再重複,大致的內容如下)
   環境配置,例如OS kernel 參數;
   創建gp管理用戶;
   ssh key的交換(使用gpssh-exkeys -e exist_hosts -x new_hosts);
   greenplum bin軟件的拷貝;
   使用gpcheck檢查 (gpcheck -f new_hosts );
   使用gpcheckperf檢查性能 (gpcheckperf -f new_hosts_file -d /data1 -d /data2 -v)

3. 如果在GP已有集群中的機器中選擇一台來搭建standby,則可以跳過第二步。
了解master節點用了哪些filespace.
postgres=# select a.dbid,a.content,a.role,a.port,a.hostname,b.fsname,c.fselocation from gp_segment_configuration a,pg_filespace b,pg_filespace_entry c where a.dbid=c.fsedbid and b.oid=c.fsefsoid order by content;
 dbid | content | role | port  |     hostname      |  fsname   |              fselocation              
------+---------+------+-------+-------------------+-----------+---------------------------------------
    1 |      -1 | p    |  1921 | digoal_host.sqa.zmf | pg_system | /disk1/digoal/gpdata/gpseg-1
    1 |      -1 | p    |  1921 | digoal_host.sqa.zmf | ssd1      | /disk1/digoal/new_p/gp-1
。。。。。。
了解master的即可,可以看到除了pg_system,還有一個filespace叫ssd1。

4. 進入初始化standby的步驟。
根據第三步查到的信息,規劃standby master filespace數據目錄;
$ mkdir /disk1/digoal/gpdata
$ mkdir /disk1/digoal/new_p

如果在不同的主機創建standby master,則建議使用同樣的端口和目錄結構。
如下:
$gpinitstandby -F pg_system:/data01/gpdata/master_pgdata/gpseg-1 -s digoal_host199092.zmf 
20151221:14:17:24:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Validating environment and parameters for standby initialization...
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Checking for filespace directory /data01/gpdata/master_pgdata/gpseg-1 on digoal_host199092.zmf
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master initialization parameters
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum master hostname               = digoal_host193096.zmf
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum master data directory         = /data01/gpdata/master_pgdata/gpseg-1
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum master port                   = 1921
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master hostname       = digoal_host199092.zmf
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master port           = 1921
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum standby master data directory = /data01/gpdata/master_pgdata/gpseg-1
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Greenplum update system catalog         = On
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:- Filespace locations
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:------------------------------------------------------
20151221:14:17:25:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-pg_system -> /data01/gpdata/master_pgdata/gpseg-1
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Syncing Greenplum Database extensions to standby
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-The packages on digoal_host199092.zmf are consistent.
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Adding standby master to catalog...
20151221:14:26:46:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Database catalog updated successfully.
20151221:14:26:47:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Updating pg_hba.conf file...
20151221:14:26:52:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-pg_hba.conf files updated successfully.
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Updating filespace flat files...
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Filespace flat file updated successfully.
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Starting standby master
20151221:14:26:56:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Checking if standby master is running on host: digoal_host199092.zmf  in directory: /data01/gpdata/master_pgdata/gpseg-1
20151221:14:27:00:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Cleaning up pg_hba.conf backup files...
20151221:14:27:06:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
20151221:14:27:06:012334 gpinitstandby:digoal_host193096:digoal-[INFO]:-Successfully created standby master on digoal_host199092.zmf

digoal=# select * from gp_segment_configuration where content='-1';
 dbid | content | role | preferred_role | mode | status | port |     hostname      |      address      | replication_port | san_mounts 
------+---------+------+----------------+------+--------+------+-------------------+-------------------+------------------+------------
    1 |      -1 | p    | p              | s    | u      | 1921 | digoal_host193096.zmf | digoal_host193096.zmf |                  | 
   26 |      -1 | m    | m              | s    | u      | 1921 | digoal_host199092.zmf | digoal_host199092.zmf |                  | 
(2 rows)

如果在同一台主機創建standby master,則需要使用不同的端口和目錄結構。
如下:
指定不同的filespace路徑,不同的監聽端口。
$gpinitstandby -F pg_system:/disk1/digoal/gpdata/gpseg-2,ssd1:/disk1/digoal/new_p/gp-2 -P 1922 -s digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Validating environment and parameters for standby initialization...
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Checking for filespace directory /disk1/digoal/gpdata/gpseg-2 on digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Checking for filespace directory /disk1/digoal/new_p/gp-2 on digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master initialization parameters
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum master hostname               = digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum master data directory         = /disk1/digoal/gpdata/gpseg-1
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum master port                   = 1921
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master hostname       = digoal_host.sqa.zmf
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master port           = 1922
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum standby master data directory = /disk1/digoal/gpdata/gpseg-2
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Greenplum update system catalog         = On
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:- Filespace locations
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:------------------------------------------------------
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-pg_system -> /disk1/digoal/gpdata/gpseg-2
20151221:14:34:01:077652 gpinitstandby:digoal_host:digoal-[INFO]:-ssd1 -> /disk1/digoal/new_p/gp-2
Do you want to continue with standby master initialization? Yy|Nn (default=N):
> y
20151221:14:34:03:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Syncing Greenplum Database extensions to standby
20151221:14:34:03:077652 gpinitstandby:digoal_host:digoal-[INFO]:-The packages on digoal_host.sqa.zmf are consistent.
20151221:14:34:03:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Adding standby master to catalog...
20151221:14:34:04:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Database catalog updated successfully.
20151221:14:34:05:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Updating pg_hba.conf file...
20151221:14:34:13:077652 gpinitstandby:digoal_host:digoal-[INFO]:-pg_hba.conf files updated successfully.
20151221:14:34:31:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Updating filespace flat files...
20151221:14:34:31:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Writing standby information to /disk1/digoal/gpdata/gpseg-1/gp_transaction_files_filespace flat file
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Writing standby information to /disk1/digoal/gpdata/gpseg-1/gp_temporary_files_filespace flat file
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Filespace flat file updated successfully.
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Starting standby master
20151221:14:34:32:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Checking if standby master is running on host: digoal_host.sqa.zmf  in directory: /disk1/digoal/gpdata/gpseg-2
20151221:14:36:16:077652 gpinitstandby:digoal_host:digoal-[WARNING]:-Could not start standby master
20151221:14:36:16:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Cleaning up pg_hba.conf backup files...
20151221:14:36:21:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Backup files of pg_hba.conf cleaned up successfully.
20151221:14:36:21:077652 gpinitstandby:digoal_host:digoal-[INFO]:-Successfully created standby master on digoal_host.sqa.zmf

啟動standby
$gpinitstandby -n
20151221:14:39:40:085625 gpinitstandby:digoal_host:digoal-[INFO]:-Starting standby master
20151221:14:39:40:085625 gpinitstandby:digoal_host:digoal-[INFO]:-Checking if standby master is running on host: digoal_host.sqa.zmf  in directory: /disk1/digoal/gpdata/gpseg-2

查看standby延遲,查看pg_stat_replication 視圖即可。
digoal=# select pg_switch_xlog();
 pg_switch_xlog 
----------------
 0/C0000D8
(1 row)
digoal=# select * from pg_stat_replication ;
 procpid | usesysid | usename  | application_name |  client_addr  | client_port |         backend_start         |   state   | sent_location | write_location | flush_location | replay_location | sync_priority | sync_state 
---------+----------+----------+------------------+---------------+-------------+-------------------------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------
   13444 |       10 | dege.zzz | walreceiver      | 100.69.199.92 |       47792 | 2015-12-21 14:27:00.164785+08 | streaming | 0/D080000     | 0/CC00000      | 0/C880000      | 0/C0000B8       |             1 | sync
(1 row)
...
digoal=# select * from pg_stat_replication ;
 procpid | usesysid | usename  | application_name |  client_addr  | client_port |         backend_start         |   state   | sent_location | write_location | flush_location | replay_location | sync_priority | sync_state 
---------+----------+----------+------------------+---------------+-------------+-------------------------------+-----------+---------------+----------------+----------------+-----------------+---------------+------------
   13444 |       10 | dege.zzz | walreceiver      | 100.69.199.92 |       47792 | 2015-12-21 14:27:00.164785+08 | streaming | 0/10000000    | 0/10000000     | 0/10000000     | 0/10000000      |             1 | sync
(1 row)
參考
gpinitstandby -?

最後更新:2017-04-01 13:44:33

  上一篇:go Greenplum 如何直連segment節點
  下一篇:go ALICloudDB for PostgreSQL 試用報告 - 4 水平分庫 之 節點擴展