gpaddmirrors
gpaddmirrors
将镜像Segment添加到最初没有配置镜像的Greenplum数据库系统。
概要
gpaddmirrors [-p port_offset] [-m datadir_config_file [-a]] [-s] [-d master_data_directory] [-B parallel_processes] [-l logfile_directory] [-v] gpaddmirrors -i mirror_config_file [-s] [-a] [-d master_data_directory] [-B parallel_processes] [-l logfile_directory] [-v] gpaddmirrors -o output_sample_mirror_config [-m datadir_config_file] gpaddmirrors -? gpaddmirrors --version
描述
gpaddmirrors工具为初始仅配置了主Segment实例的现有Greenplum数据库系统配置镜像Segment实例。该工具创建镜像实例并开始主Segment实例和镜像Segment实例之间的在线复制进程。一旦所有的镜像与其主Segment同步好,用户的Greenplum数据库系统就建立了完全的数据冗余。
默认情况下,该工具将提示用户输入将创建镜像Segment数据目录的文件系统位置。如果用户不想被提示,可以使用-m选项传递包含文件系统位置的文件。
镜像位置和端口必须与用户的主Segment数据位置和端口不同。如果用户创建了额外的文件空间,则还将提示用户为每个文件空间提供镜像位置。
该工具使用预定义的命名习惯在指定位置中为每个镜像Segment实例创建唯一的数据目录。必须为镜像Segment实例声明与主Segment实例相同数量的文件系统位置。如果用户希望在同一位置创建镜像数据目录,可以多次指定同样的目录名称,或者可以为每个镜像输入不同的数据位置。对于文件系统位置,请输入绝对路径。例如:
Enter mirror segment data directory location 1 of 2 > /gpdb/mirror Enter mirror segment data directory location 2 of 2 > /gpdb/mirror
或者
Enter mirror segment data directory location 1 of 2 > /gpdb/m1 Enter mirror segment data directory location 2 of 2 > /gpdb/m2
还有,用户可以运行gpaddmirrors工具,并使用-i选项提供详细的配置文件。如果用户希望镜像Segment位于完全不同于主Segment的主机集合上,这非常有用。镜像配置文件的格式是:
filespaceOrder=[filespace1_fsname[:filespace2_fsname:...] mirror[content]=content:address:port:mir_replication_port:pri_replication_ port:fselocation[:fselocation:...]
例如(如果用户除了默认的pg_system 文件空间之外没有配置额外的文件空间):
filespaceOrder= mirror0=0:sdw1-1:60000:61000:62000:/gpdata/mir1/gp0 mirror1=1:sdw1-1:60001:61001:62001:/gpdata/mir2/gp1
gp_segment_configuration、pg_filespace以及pg_filespace_entry 系统目录表可以帮助用户确定当前的主Segment配置,以便用户可以规划镜像Segment配置。例如,运行以下的查询:
=# SELECT dbid, content, address as host_address, port, replication_port, fselocation as datadir FROM gp_segment_configuration, pg_filespace_entry WHERE dbid=fsedbid ORDER BY dbid;
如果在后补的镜像主机上创建镜像,则新的镜像Segment主机必须预先安装Greenplum数据库软件,并且被配置为与现有的主Segment主机完全相同。
用户必须确保运行gpaddmirrors的用户(gpadmin用户)有权在指定的数据目录位置写入。用户可能想要在Segment主机上创建这些目录并且在运行gpaddmirrors之前将这些目录的拥有者改为(chown)适当的用户。
选项
- -a(不提示)
- 以静默模式运行 - 不提示输入信息。如果使用这一选项,必须使用-m或-i提供一个配置文件。
- -B parallel_processes
- 并行启动的镜像设置进程的数量。如果未指定,则该工具将启动最多10个并行进程,具体取决于需要设置多少个镜像Segment实例。
- -d master_data_directory
- 主数据目录。如果没有指定,将使用为$MASTER_DATA_DIRECTORY设置的值。
- -i mirror_config_file
- 一个配置文件,每个要创建的镜像Segment对应一行。用户必须为系统中的每个主Segment都在该文件中列出一个镜像Segment。该文件格式如下(如gp_segment_configuration、pg_filespace以及pg_filespace_entry目录表中的每个属性):
-
filespaceOrder=[filespace1_fsname[:filespace2_fsname:...] mirror[content]=content:address:port:mir_replication_port:pri_replication_ port:fselocation[:fselocation:...]
- 注意如果用户的系统配置了多个文件空间,用户只需要为filespaceOrder指定一个名称。如果用户的系统除了默认的pg_system文件空间之外没有配置额外的文件空间,该文件只有一个位置(对于默认数据目录文件空间,pg_system)。pg_system不需要在filespaceOrder行中被列出。它将总是在replication_port之后被列出的第一个fselocation。
- -l logfile_directory
- 用来写日志的目录,默认为~/gpAdminLogs。
- -m datadir_config_file
- 包含将创建镜像数据目录的文件系统位置列表的配置文件。如果未提供,该工具将提示用户输入位置。文件中的每一行都指定一个镜像数据目录位置。例如:
-
/gpdata/m1 /gpdata/m2 /gpdata/m3 /gpdata/m4
- 如果用户的系统除了默认的pg_system 文件空间之外还配置了其他文件空间,则还必须列出每个文件空间的文件系统位置,如下所示:
-
filespace filespace1 /gpfs1/m1 /gpfs1/m2 /gpfs1/m3 /gpfs1/m4
- -o output_sample_mirror_config
- 如果用户不确定如何布置-i 选项使用的镜像配置文件,用户使用这一选项运行gpaddmirrors来生成一个基于主Segment配置的镜像配置文件示例。该工具将提示用户输入用户的镜像Segment数据目录位置(除非用户使用-m在一个文件中提供了这些位置)。然后,用户可以编辑此文件根据需要将主机名更改为后补的镜像主机。
- -p port_offset
- 可选。这个数字被用于计算用于镜像Segment的数据库端口和复制端口。默认偏移量为1000。镜像端口分配计算如下:
- 主机端口 + 偏移量 = 镜像数据库端口
- 主端口 +(2 * 偏移量)= 镜像复制端口
- 主端口 +(3 * 偏移量) = 主机复制端口
- 例如,如果主Segment的端口为50001,则默认情况下,其镜像将使用数据库端口51001,镜像复制端口52001和主复制端口53001。
- -s (散布镜像)
- 在可用主机上散布镜像Segment。默认情况下,将把一组镜像Segment集合在一起放在不同于其主Segment集合的后补主机上。镜像散布将把每个镜像放置在Greenplum数据库阵列中的不同主机上。只有在阵列中有足够数量的主机(主机数大于每个主机的Segment实例数)时,才允许使用散布镜像方式。
- -v (详细模式)
- 将日志记录输出设置为详细。
- --version (显示工具版本)
- 显示该工具的版本。
- -? (help)
- 显示在线帮助。
示例
使用和主要数据相同的一组主机向现有的Greenplum数据库系统添加镜像。通过在当前主Segment端口号上加上100来计算镜像数据库端口和复制端口:
$ gpaddmirrors -p 100
使用和主要数据不同的一组主机向现有的Greenplum数据库系统添加镜像:
$ gpaddmirrors -i mirror_config_file
其中mirror_config_file看起来像这样(如果除了默认的pg_system文件空间之外,没有配置额外的文件空间):
filespaceOrder= mirror0=0:sdw1-1:52001:53001:54001:/gpdata/mir1/gp0 mirror1=1:sdw1-2:52002:53002:54002:/gpdata/mir2/gp1 mirror2=2:sdw2-1:52001:53001:54001:/gpdata/mir1/gp2 mirror3=3:sdw2-2:52002:53002:54002:/gpdata/mir2/gp3
使用gpaddmirrors -i输出一个要使用的镜像配置文件样例:
$ gpaddmirrors -o /home/gpadmin/sample_mirror_config