启用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
其中-p指定要加在主Segment端口号上的数字。使用默认的组镜像配置来增加镜像。
要增加Segment镜像到一个现有系统(和主Segment不同的主机)
- 确保在所有主机上都安装有Greenplum数据库软件。详细的安装指导请见Greenplum数据库安装指南。
- 在所有的Segment主机上为镜像数据分配数据存储区域。
- 使用gpssh-exkeys确保Segment主机能通过SSH和SCP免密码连接到彼此。
-
创建一个配置文件,其中列出要在其上创建镜像的主机名称、端口号和数据目录。要创建一个示例配置文件作为起点,可运行:
$ gpaddmirrors -o filename
镜像配置文件的格式为:
filespaceOrder=[filespace1_fsname[:filespace2_fsname:...] mirror[content]=content:address:port:mir_replication_port: pri_replication_port:fselocation[:fselocation:...]
例如这是一个配置文件,其中有两个Segment主机,每个主机上有两个Segment,并且除了默认的pg_system文件空间之外不配置额外的文件空间:
filespaceOrder= mirror0=0:sdw1-1:52001:53001:54001:/gpdata/mir1/gp0 mirror1=1:sdw1-2:52002:53002:54002:/gpdata/mir1/gp1 mirror2=2:sdw2-1:52001:53001:54001:/gpdata/mir1/gp2 mirror3=3:sdw2-2:52002:53002:54002:/gpdata/mir1/gp3
-
运行gpaddmirrors工具在Greenplum数据库系统中启用镜像:
$ gpaddmirrors -i mirror_config_file
其中-i提到所创建的镜像配置文件。