启用Segment镜像
启用Segment镜像
镜像Segment允许数据库查询在主Segment不可用时故障转移到备用Segment。为了配置镜像,Greenplum数据库 系统必须具有足够的节点以保证镜像Segment和对应的主Segment不在同一台主机上。默认情况下,镜像会被配置在 主Segment所在的主机阵列上。也可以为镜像Segment选择一组完全不同的主机,这样它们就不会分享任何主 Segment的机器。
Important: 在线数据复制处理期间,Greenplum数据库应该处于一种静止状态,不应运行负载和
其他查询。
要增加Segment镜像到一个现有系统(和主Segment相同的主机阵列)
- 在所有的Segment主机上为镜像数据分配数据存储区域。数据存储区域必须与主Segment 的文件系统位置不同。
- 使用gpssh-exkeys确保Segment主机能通过SSH和SCP免密码连接到彼此。
- 运行gpaddmirrors工具在Greenplum数据库系统中启用镜像。
例如,在主Segment端口号基础上加10000来计算得到镜像Segment的端口号:
$ gpaddmirrors -p 10000
其中-p指定要加在主 Segment端口号上的数字。使用默认的组镜像配置来增加镜像。
要增加Segment镜像到一个现有系统(和主Segment不同的主机阵列)
- 确保在所有主机上都安装有Greenplum数据库软件。 详细的安装指导请见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指定所创建的镜像配置文件。