注:本文翻译自https://docs.vmware.com/en/VMware-Greenplum/7/greenplum-database/utility_guide-ref-gpaddmirrors.html
gpaddmirrors工具用于向未配置镜像的Greenplum数据库系统添加镜像segment。
gpaddmirrors [-p <port_offset>] [-m <datadir_config_file> [-a]] [-s]
[-d <coordinator_data_directory>] [-b <segment_batch_size>] [-B <batch_size>] [-l <logfile_directory>]
[-v] [--hba-hostnames <boolean>]
gpaddmirrors -i <mirror_config_file> [-a] [-d <coordinator_data_directory>]
[-b <segment_batch_size>] [-B <batch_size>] [-l <logfile_directory>] [-v]
gpaddmirrors -o output_sample_mirror_config> [-s] [-m <datadir_config_file>]
gpaddmirrors -?
gpaddmirrors --version
gpaddmirrors实用程序为现有的Greenplum数据库系统配置镜像segment实例,该系统最初只配置了主segment实例。该实用程序将创建镜像实例,并开始主实例和镜像实例之间的在线复制过程。一旦所有镜像都与其主镜像同步,您的Greenplum数据库系统就完全是数据冗余的。
默认情况下,该实用程序将提示您输入将在其中创建镜像segment数据目录的文件系统位置。如果不希望得到提示,可以使用-m选项传入一个包含文件系统位置的文件。
镜像位置和端口必须与主segment数据位置和端口不同。
该实用程序使用预定义的命名约定为指定位置中的每个镜像实例创建一个唯一的数据目录。为镜像实例声明的文件系统位置数量必须与主实例声明的相同。如果希望在同一位置创建镜像数据目录,可以多次指定相同的目录名,也可以为每个镜像输入不同的数据位置。输入绝对路径。例如:
Enter mirror segment data directory location 1 of 2 > /gpdb/mirror
Enter mirror segment data directory location 2 of 2 > /gpdb/mirror
或者,您可以运行gpaddmirrors实用程序,并使用-i选项提供详细的配置文件。如果您希望镜像segment位于与主段完全不同的主机集上,这将非常有用。镜像配置文件的格式为:
<contentID>|<address>|<port>|<data_dir>
其中为segment实例内容ID,
为segment主机的主机名或IP地址,为通信端口,例如,
0|sdw1-1|60000|/gpdata/m1/gp0
1|sdw1-1|60001|/gpdata/m2/gp1
gp_segment_configuration系统表可以帮助您确定当前的主segment配置,以便您可以规划镜像segment配置。例如,执行如下命令:
=# SELECT dbid, content, address as host_address, port, datadir
FROM gp_segment_configuration
ORDER BY dbid;
如果在备用镜像主机上创建镜像,则新的镜像segment主机必须预先安装Greenplum Database软件,并与现有的主segment主机进行完全相同的配置。
必须确保运行gpaddmirrors的用户(gpadmin用户)具有向指定的数据目录位置写入的权限。您可能希望在segment主机上创建这些目录,并在运行gpaddmirrors之前将它们共享给适当的用户。
选项
-a(不提示)
在安静模式下运行,不提示信息。如果使用该选项,必须提供带有-m或-i的配置文件。
-b segment_batch_size
每台主机并行操作的最大segment数。取值范围为1 ~ 128。如果没有指定,该实用程序将开始在每个主机上并行恢复最多64个段。
-B batch_size
并行处理的主机数量。如果未指定,该实用程序将开始并行处理最多16台主机。取值范围为1 ~ 64。
-d coordinator_data_directory
协调器数据目录。如果没有指定,将使用为$COORDINATOR_DATA_DIRECTORY设置的值。
–hba-hostnames boolean
可选的。控制此实用程序在使用可以连接到Greenplum Database的地址更新此文件时,是否使用pg_hba.conf文件中的IP地址或主机名。当设置为0(默认值)时,此实用程序在更新此文件时使用IP地址。当设置为1时,此实用程序在更新此文件时使用主机名。为了保持一致性,请使用初始化Greenplum Database系统时为hba_hostnames指定的相同值。
-i mirror_config_file
一个配置文件,其中包含要创建的每个镜像segment的一行。必须为系统中的每个主segment列出一个镜像segment实例。该文件的格式如下(根据gp_segment_configuration目录表中的属性):
<contentID>|<address>|<port>|<data_dir>
-l logfile_directory
写入日志文件的目录。默认为~/gpAdminLogs。
-m datadir_config_file
一个配置文件,包含将在其中创建镜像数据目录的文件系统位置列表。如果没有提供,该实用程序将提示您输入位置。文件中的每一行指定一个镜像数据目录位置。例如:
/gpdata/m1
/gpdata/m2
/gpdata/m3
/gpdata/m4
-o output_sample_mirror_config
如果您不确定如何布局-i选项使用的镜像配置文件,您可以使用该选项运行gpaddmirrors,根据主segment配置生成一个示例镜像配置文件。该实用程序将提示您输入镜像segment数据目录位置(除非您使用-m在文件中提供这些位置)。然后,您可以编辑该文件,以便在必要时将主机名更改为备用镜像主机。
-p port_offset
可选的。该数字用于计算镜像segment所使用的数据库端口。默认偏移量为1000。镜像端口分配的计算方法如下:
primary_port + offset = mirror_database_port
-s(spread mirror模式)
将镜像segment分布到可用的主机上。默认情况是在备用主机上将一组镜像segment与主segment集分组在一起。镜像扩散将把每个镜像放在Greenplum数据库阵列中的不同主机上。只有在阵列中有足够数量的主机(主机数量大于每个主机的segment实例数量)时才允许扩展。
-v(详细)
将日志输出设置为详细。
–version(显示工具版本)
显示此实用程序的版本。
-?(帮助)
显示联机帮助。
将镜像添加到现有的Greenplum数据库系统,使用相同的主机集作为主数据。在当前主segment端口号的基础上加100,计算镜像数据库端口号。
$ gpaddmirrors -p 100
生成一个带有-o选项的示例镜像配置文件,用于gpaddmirrors -i:
$ gpaddmirrors -o /home/gpadmin/sample_mirror_config
将镜像添加到现有的Greenplum数据库系统,使用与主数据不同的主机集:
$ gpaddmirrors -i mirror_config_file
其中mirror_config_file看起来像这样:
0|sdw1-1|52001|/gpdata/m1/gp0
1|sdw1-2|52002|/gpdata/m2/gp1
2|sdw2-1|52001|/gpdata/m1/gp2
3|sdw2-2|52002|/gpdata/m2/gp3