在Greenplum数据库中启用镜像
您可以在安装Greenplum数据库系统时,使用gpinitsystem命令来配置系统启用镜像,或者在安装后使用gpaddmirrors 和 gpinitstandby来启用镜像。本主题假定现有系统初始化时没有镜像,现在要向其中加入镜像。
启用segment镜像
如果主segment不可用,则镜像segment允许数据库查询故障转移到备份的segment。默认情况下,镜像segment与主segment配置在同一主机阵列上。您可以为镜像segment选择一套不同的主机阵列,这样它们就不会与您的任何主segment共用主机。
重要提示:在联机数据复制过程中,Greenplum数据库应处于静态状态,工作负载和其他查询不应运行。
将segment镜像添加到现有系统(与主segment相同的主机阵列)
- 在所有的Segment主机上为镜像数据分配数据存储区域。数据存储区域必须与主Segment 的文件系统位置不同。
- 使用 gpssh-exkeys 确保Segment主机能通过SSH和SCP免密码连接到彼此。
- 运行 gpaddmirrors工具在Greenplum数据库系统中启用镜像。 例如,在主Segment端口号基础上加10000来计算得到镜像Segment的端口号:
$ gpaddmirrors -p 10000
将segment镜像添加到现有系统(与主segment不同的主机阵列)
- 确保在所有主机上都安装了Greenplum Database软件。有关详细的安装说明,请参阅《Greenplum数据库安装指南》。
- 在所有segment主机上,为镜像数据和表空间分配数据存储区。
- 使用gpssh-exkeys 确保Segment主机能通过SSH和SCP免密码连接到彼此。
- 创建一个配置文件,其中列出了要在其上创建镜像的主机名、端口和数据目录。可创建一个作为起点的示例配置文件,请运行:
gpaddmirrors -o filename
镜像配置文件的格式为:
mirrorrow_id=contentID:address:port:data_dir
其中,row_id是文件中的行,contentID是segment实例的内容ID,address是segment主机的主机名或IP地址,port是通信端口,data_dir是segment实例的数据目录。
例如,以下是一个镜像配置文件的内容,它有两个segment主机,每个主机上有两个segment实例:
mirror0=2:sdw1-1:41000:/data/mirror1/gp2
mirror1=3:sdw1-2:41001:/data/mirror2/gp3
mirror2=0:sdw2-1:41000:/data/mirror1/gp0
mirror3=1:sdw2-2:41001:/data/mirror2/gp1
- 运行gpaddmirrors工具,以在您的Greenplum数据库系统中启用镜像:
$ gpaddmirrors -i mirror_config_file
其中 -i 指定您创建的镜像配置文件。
启用Master镜像
您可以使用gpinitsystem命令,配置一个带有备用Master的新Greenplum数据库系统,或者随后使用gpinitstandby来启用它 。这个主题假定现有系统初始化时没有 后备Master,现在要向其中加入一个后备Master。
有关 gpinitsystem 和 gpinitstandby的信息,请参阅《Greenplum数据库工具指南》。
向现有系统添加一个备用master
- 确保备用master已安装和配置好: gpadmin系统用户已创建、Greenplum数据库二进制文件已安装、 环境变量已设置、SSH密钥已交换并且数据目录和表空间已创建(如果需要)。
- 在当前活动的主master上运行gpinitstandby工具,向Greenplum数据库系统增加一个备用master。例如:
$ gpinitstandby -s smdw
要将操作切换到备用Master,请参阅“ 恢复故障的Master”。
检查Master镜像进程的状态(可选)
$ gpstate -f
备用master的状态应为passive,WAL sender状态应为streaming。
有关 gpstate 工具的信息,请参阅《Greenplum数据库工具指南》。