目录
初始化新节点
扩容文件
初始化新节点
失败回滚
监控扩容状态
初始化新节点
使用gpexpand工具创建并初始化新节点实例,并创建扩容schema。这些过程完成后,运行gpexpand检测扩容schema是否被创建,如果成功则做表重分布。
扩容文件
要开始扩容,gpexpand要求一个包含关新节点和主机信息的输入文件。 如果运行gpexpand但不指定输入文件,该工具会显示一个交互式来收集所需的信息并且自动创建一个输入文件。如果使用交互式创建输入文件,可以在提示符中指定一个含有扩容主机列表的文件。 如果平台或者命令shell限制主机列表的长度,使用-f指定主机就是唯一的办法。
在运行gpexpand在交互模式中创建一个输入文件之前,确保了解:
- 新主机的数量
- 新主机名
- 现有主机中使用的镜像策略
- 每个主机要增加的实例数量
该工具会基于这些信息、dbid、content ID以及gp_segment_configuration中存储的数据目录值自动生成一个输入文件,并将该文件保存在当前目录中。
运行gpexpand。该工具显示关于如何准备扩容操作的信息,并且它会提示退出或者继续,在交互中,输入Y以继续:
$ gpexpand -f /home/mppadmin/new_hosts_file
除非用户用-f指定了一个主机文件,用户会被提示输入主机名。 可以输入新扩容主机的主机名组成的由逗号分隔的列表。例如:
> sdw4, sdw5, sdw6, sdw7
如果只对现有主机增加节点,在这个提示符处留一个空行。 不要指定localhost或者任何现有的主机名。
输入在用户的系统中使用的镜像策略(如果有)。 选项是spread|grouped|none。默认设置是grouped。输入要增加的主节点的数量(如果有)。 默认情况下,新主机会被用与现有主机相同数量的主节点初始化。 输入一个大于零的数字可以为每个主机增加节点数量。 用户输入的数字将是在所有主机上初始化的额外节点的数量。
如果用户在增加新的主节点,为这些新的节点输入新的主数据目录的根目录。 不要指定真实的数据目录名称,目录会由gpexpand基于现有数据目录名称自动创建。例如,如果用户的现有数据目录像下面这样:
/gpdata/primary/gp0
/gpdata/primary/gp1
那么输入下面的内容(每一个提示输入一个)来指定两个新的主节点的数据目录:
/gpdata/primary
/gpdata/primary
当初始化运行时,该工具会在/gpdata/primary下面创建新目录gp2以及gp3。如果用户在增加新的镜像节点,为这些新的节点输入新的镜像数据目录的根目录。 不要指定数据目录名称,目录会由gpexpand基于现有数据目录名称自动创建。
在用户已经输入所有要求的信息后,该工具会生成一个输入文件并且把它保存在当前目录中。例如:
gpexpand_inputfile_yyyymmdd_145134
初始化新节点
运行gpexpand工具,通过-i指定输入文件。例如:
gpexpand -i gpexpand_inputfile_yyyymmdd_145134
失败回滚
如果扩容在初始化步骤失败,而数据库没有启动,用户必须首先通过运行gpstart -m命令以master-only模式重启数据库。用下列命令回滚失败的扩容:
gpexpand --rollback
监控扩容状态
在任何时候,可以运行带有-x标记的gpstate命令来检查集群扩容状态:
$ gpstate -x
如果扩容schema存在于postgres数据库,gpstate -x报告扩容的进度。 在扩容的第一阶段,gpstate报告节点初始化的进度。 在第二阶段,gpstate报告表重分布的进度,和重分布是否暂停或运行。