启用Segment镜像

启用Segment镜像

镜像Segment允许数据库查询在主Segment不可用时故障转移到备用Segment。默认情况下,镜像会被配置在主Segment所在的主机阵列上。也可以为镜像Segment选择一组完全不同的主机,这样它们就不会分享任何主Segment的机器。

重要: 在在线数据复制处理期间,Greenplum数据库应该处于一种静止状态,不应运行负载和其他查询。

要增加Segment镜像到一个现有系统(和主Segment相同的主机)

  1. 在所有的Segment主机上为镜像数据分配数据存储区域。数据存储区域必须与主Segment的文件系统位置不同。
  2. 使用gpssh-exkeys确保Segment主机能通过SSH和SCP免密码连接到彼此。
  3. 运行gpaddmirrors工具在Greenplum数据库系统中启用镜像。例如,在主Segment端口号基础上加10000来计算得到镜像Segment的端口号:
    $ gpaddmirrors -p 10000

    其中-p指定要加在主Segment端口号上的数字。使用默认的组镜像配置来增加镜像。

要增加Segment镜像到一个现有系统(和主Segment不同的主机)

  1. 确保在所有主机上都安装有Greenplum数据库软件。详细的安装指导请见Greenplum数据库安装指南
  2. 在所有的Segment主机上为镜像数据分配数据存储区域。
  3. 使用gpssh-exkeys确保Segment主机能通过SSH和SCP免密码连接到彼此。
  4. 创建一个配置文件,其中列出要在其上创建镜像的主机名称、端口号和数据目录。要创建一个示例配置文件作为起点,可运行:
    $ 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
    
  5. 运行gpaddmirrors工具在Greenplum数据库系统中启用镜像:
    $ gpaddmirrors -i mirror_config_file
                   

    其中-i提到所创建的镜像配置文件。