启用Segment镜像

启用Segment镜像

镜像Segment允许数据库查询在主Segment不可用时故障转移到备用Segment。为了配置镜像,Greenplum数据库 系统必须具有足够的节点以保证镜像Segment和对应的主Segment不在同一台主机上。默认情况下,镜像会被配置在 主Segment所在的主机阵列上。也可以为镜像Segment选择一组完全不同的主机,这样它们就不会分享任何主 Segment的机器。

Important: 在线数据复制处理期间,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

    镜像配置文件的格式为:

    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
  5. 运行gpaddmirrors工具在Greenplum数据库系统中启用镜像:
    $ gpaddmirrors -i mirror_config_file

    其中-i指定所创建的镜像配置文件。