gpexpand

在阵列中的新主机上扩展现有的Greenplum数据库。

概要

gpexpand [{ -f|--hosts-file} hosts_file]
                | { -i|--input} input_file [-B batch_size]
                | [{ -d | --duration} hh:mm:ss | { -e|--end} 'YYYY-MM-DD hh:mm:ss'] 
        [-a|-analyze] 
                  [-n  parallel_processes]
                | { -r|--rollback}
                | { -c|--clean}
        [-v|--verbose] [-s|--silent]
        [{ -t|--tardir} directory ]
        [-S|--simple-progress ]

        gpexpand -? | -h | --help 

        gpexpand --version

先决条件

  • 用户作为Greenplum数据库超级用户(gpadmin)登录。
  • 新的Segment主机已被根据现有的Segment主机安装和配置。这包括:
    • 配置硬件和操作系统
    • 安装Greenplum软件
    • 创建gpadmin用户帐户
    • 交换SSH密钥
  • 用户的Segment主机上有足够的磁盘空间来临时保存最大表的副本。
  • 重新分布数据时,Greenplum数据库必须以生产模式运行。Greenplum数据库不能是受限模式或 Master模式。不能指定gpstart的选项-R或者-m 启动Greenplum数据库。

Note: 当gpexpand正在执行segment初始化是,以下工具不能被运行。

  • gpbackup
    • gpcheck
    • gpcheckcat
    • gpconfig
    • gppkg
    • gprestore

有关扩展Greenplum系统的更多信息,请见Greenplum数据库管理员手册的扩展Greenplum 数据库系统

描述

gpexpand工具分两个阶段执行系统扩展:Segment初始化和表重新分布。

在初始化阶段,gpexpand用一个输入文件运行,该文件指定新Segment的数据目录、 dbid值和其他特征。用户可以手动创建输入文件,也可以在交互式对话中 按照提示进行操作。

如果用户选择使用交互式对话创建输入文件,则可以选择指定包含扩展主机列表的文件。在提示输入信息时, 如果用户的平台或命令shell限制可键入的主机名列表的长度,则可能不得不用-f指定主机。

除了初始化Segment,初始化阶段还执行这些操作:

  • 创建扩展模式gpexpand以存储扩展操作的状态,包括表的详细状态。

在表数据重分布阶段,gpexpand会重分布表的数据,使数据在新旧segment 实例之间平衡。

Note: 数据重新分布应该在低峰(相对高峰期)时段进行。重新分布可以在很长时间内分批次进行。 要开始重分布阶段,可以通过运行gpexpand并指定-d(运行时间周期) 或-e(结束时间)选项,或者不指定任何选项。如果客户指定了结束时间或运行周期,工具会在 扩展模式下重分布表,直到达到设定的结束时间或执行周期。如果没指定任何选项,工具会继续处理直到扩展模式的表 全部完成重分布。每张表都会通过ALTER TABLE命令来在所有的节点包括新增加的segment实例 上进行重分布,并设置表的分布策略为其原始策略。如果gpexpand完成所有表的重分布,它会 显示成功信息并退出。

Note: 该工具在系统内部采用SSH连接执行各项操作任务。在大型Greenplum集群、云部署或每台主机部署了大量的 segment实例时,可能会遇到超过主机最大授权连接数限制的情况。此时需要考虑更新SSH配置参数MaxStartups 以提高该限制。更多关于SSH配置的选项,请参考您的Linux分发版的SSH文档。

选项

-a | --analyze 在扩展后运行ANALYZE更新表的统计信息,默认是不运行ANALYZE

-B batch_size

在暂停一秒钟之前发送给给定主机的远程命令的批量大小。默认值是16, 有效值是1-128。

gpexpand工具会发出许多设置命令,这些命令可能会超出主机的已验证 连接的最大阈值(由SSH守护进程配置中的MaxStartups定义)。该一秒钟 的暂停允许在gpexpand发出更多命令之前完成认证。

默认值通常不需要改变。但是,如果gpexpand由于连接错误 (例如'ssh_exchange_identification: Connection closed by remote host.')而失败,则可能需要减少命令的最大数量。 -c | --clean 删除扩展模式。 -d | --duration hh:mm:ss

扩展会话的持续时间。 -e | --end 'YYYY-MM-DD hh:mm:ss' 扩展会话的结束日期及时间。 -f | --hosts-file filename

指定包含用于系统扩展的新主机列表的文件的名称。文件的每一行都必须包含一个主机名。

该文件可以包含指定或不指定网络接口的主机名。gpexpand工具处理这两种情况, 如果原始节点配置了多个网络接口,则将接口号添加到主机名的末尾。

Note: Greenplum数据库Segment主机的命名习惯是sdwN,其中sdw 是前缀并且N是数字。例如,sdw1sdw2等等。 对于具有多个接口的主机,约定是在主机名后面添加破折号(-)和数字。例如sdw1-1sdw1-2是主机sdw1的两个接口名称。

-i | --input input_file

指定扩展配置文件的名称,其中为每个要添加的Segment包含一行,格式为:

hostname:address:port:datadir:dbid:content:preferred_role

-n parallel_processes

要同时重新分布的表的数量。有效值是1 - 96。 每个表重新分布过程都需要两个数据库连接:一个用于更改表,另一个用于在扩展方案中更新表的状态。 在增加-n之前,检查服务器配置参数max_connections的当前值, 并确保不超过最大连接限制。

-r | --rollback 回滚失败的扩展设置操作。 -s | --silent 以静默模式运行。在警告时,不提示确认就可继续。 -S | --simple-progress 如果指定,gpexpand工具仅在Greenplum数据库表 gpexpand.expansion_progress中记录最少的进度信息。该工具不在表 gpexpand.status_detail中记录关系大小信息和状态信息。 指定此选项可通过减少写入gpexpand表的进度信息量来提高性能。 [-t | --tardir] directory

Segment主机上一个目录的完全限定directory,gpexpand 工具会在其中拷贝一个临时的tar文件。该文件包含用于创建Segment实例的Greenplum数据库文件。 默认目录是用户主目录。

-v | --verbose 详细调试输出。使用此选项,该工具将输出用于扩展数据库的所有DDL和DML。 --version 显示工具的版本号并退出。 -? | -h | --help 显示在线帮助。

示例

使用输入文件运行gpexpand以初始化新Segment,并在postgres数据库中创建扩展模式:

$ gpexpand -i input_file

运行gpexpand最长持续60小时,以将表重新分布给新的Segment:

$ gpexpand -d 60:00:00

另见

Greenplum数据库管理员手册中的[gpssh-exkeys](gpssh-exkeys.html#topic1)扩展Greenplum系统

当前内容版权归GreenPlum和翻译组所有,若有侵权请联系删除下架 修订时间: 2024-09-16 18:09:50

results matching ""

    No results matching ""