1. 啓用Primary Segment副本
1.1添加的副本Mirror Segment與Primary Segment位於同一臺主機
- 創建用於存儲mirror節點數據目錄,注意目錄不能和primary的數據目錄相同;
如:/data/primary用於存儲primary數據,/data/mirror用於存儲mirror數據。
- 確保主機之間能夠免密登錄;
- 使用gpaddmirrors啓用副本;
$ gpaddmirrors -p 10000
-p 指定mirror的端口基數,這種方式mirror是使用默認組鏡像配置進行添加。
1.2 添加的副本Mirror Segment與Primary Segment位於不同主機(推薦)
- 確保集羣所有主機上已經安裝了greenplum數據庫;
- 在集羣所有segment節點上創建用於存儲mirror節點數據的目錄,目錄不能和primary目錄相同;
- 確保集羣主機之間互相能夠免密登錄;
- 生成啓用mirror的配置文件
在greenplum master節點上執行如下命令:
[gpadmin@sdw ~]$ gpaddmirrors -o mirror_config
20190813:10:31:27:002945 gpaddmirrors:sdw :gpadmin-[INFO]:-Starting gpaddmirrors with args: -o mirror_config
20190813:10:31:27:002945 gpaddmirrors:sdw :gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 6.0.0-beta.4 build commit:706e161e4b02b3fb967c8c689cb1c3f9de6d0f6a'
20190813:10:31:27:002945 gpaddmirrors:sdw :gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 9.4.20 (Greenplum Database 6.0.0-beta.4 build commit:706e161e4b02b3fb967c8c689cb1c3f9de6d0f6a) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 6.4.0, 64-bit compiled on Jun 20 2019 09:06:54'
20190813:10:31:27:002945 gpaddmirrors:sdw :gpadmin-[INFO]:-Obtaining Segment details from master...
20190813:10:31:28:002945 gpaddmirrors:sdw :gpadmin-[INFO]:-Heap checksum setting consistent across cluster
Enter mirror segment data directory location 1 of 2 >
/data/mirror
Enter mirror segment data directory location 2 of 2 >
/data/mirror
20190813:10:31:56:002945 gpaddmirrors:sdw:gpadmin-[INFO]:-Configuration file output to mirror_config successfully.
生成的mirror_config文件內容如下:
filespaceOrder=
mirror0=0:sdw1:sdw1-1:7001:8001:9001:/data/mirror
mirror1=1:sdw1:sdw1-2:7002:8002:9002:/data/mirror
mirror2=2:sdw2:sdw2-1:7001:8001:9001:/data/mirror
mirror3=3:sdw2:sdw2-2:7002:8002:9002:/data/mirror
1.3 配置文件內容說明
Mirror配置文件的格式爲:
filespaceOrder= [filespace1_fsname[:filespace2_fsname:...]mirror[content]=content:address:port:mir_replication_port:pri_replication_port:fselocation[: fselocation:...]
Mirror配置文件配置信息說明:
- content:Mirror的序號,該序號與Primary的序號匹配
- address:Mirror所在的主機名,其決定了Mirror位於哪裏
- port:Mirror運行時的監聽端口,其功能與Primary活動時的端口類似
- mir_replication_port:Mirror的同步程序端口
- pri_replication_port:Primary的同步程序端口
- fselocation:Mirror所在文件系統的數據存儲目錄
啓用mirror,執行如下命令:
$ gpaddmirrors -i mirror_config
執行以上命令後,segment高可用安裝成功。
2. 停用Primary Segment副本
對於停用greenplum集羣的副本,可以直接使用pg_ctl命令將mirror節點停止掉即可
$ pg_ctl stop -D dataDir
3. 啓用master節點高可用
給已經存在的greenplum集羣添加standby master,按照如下步驟進行:
- 確保standby master 主機上已經安裝了greenplum數據庫,並且gpadmin用戶已經創建、環境變量配置、SSH免密登錄、standby master數據存儲目錄已創建;
- 在master節點上執行gpinitstandby來啓用master高可用
$ gpinitstandby -s sdw
-s 指定standby master 所在主機。
4. standby master與master節點之間的切換
如果master節點掛掉了,可以使用gpactivatestandby命令來激活standby master。
如下:
$ gpactivatestandby -d /data/standby_master/gpseg-0