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