Greenplum扩容

一、Greenplum扩展分类

  1. 在现有segment主机上添加新的segment。
  2. 添加新的segment主机并添加新的segment。

二、总体步骤介绍:

  1. 为扩展准备新的节点
    具体步骤包括修改操作系统参数,安装数据库软件,交换SSH秘钥。
    如非添加新的segment主机,此步骤省略。
  2. 生成扩展配置文件
    使用gpexpand命令交互方式生成节点扩展配置文件。
    须指定需要扩展segment的主机以及扩展模式(expansion schema)。
    根据提示输入需要扩展的segment数量、primary路径等信息。
    如配置了mirror,需要执行mirror的分布方式和路径。
    如数据库中包含文件空间,需要指定文件空间路径。
    生成的配置文件格式为gpexpand_inputfile_yyyymmdd_hhmmss
    生成的文件空间配置文件为gpexpand_inputfile_yyyymmdd_hhmmss.fs
  3. 初始化新的segment
    该步骤会自动停止KADB数据库,并在初始化新的segment完成后重启系统。
  4. 重分布表
    扩展模式中会生成三张表:
    gpexpand.status gpexpand.status_detail gpexpand.expansion_progress
    可以通过修改gpexpand.status_detail表中的rank值,设定需要重分布的表的优先级。
    可以通过查看gpexpand.expansion_progress了解重分布的预估进度。
  5. 删除扩展模式。

三、命令参考

1.环境准备
创建集群管理用户kaadmin,拷贝SSH秘钥到新的主机。
将现有节点上的数据库软件同步到新的节点。

$gpssh-exkeys -e host_exist -x host_new
$gpseginstall -f ./host_new -u kaadmin

2.生成配置文件

$gpexpand –f hostfile_segment  -D expansc

3.初始化新的segment

$gpexpand –i kaexpand_inputfile_20180108_164123 –D expandsc –S –V –v –n 1 –B 1 –t /tmp

4.重分布表

$gpexpand –a –d 2:00:00 –D expands –S –t /tmp –v –n 1

5.删除扩展模式

$kaexpand -c

四、失败回滚

在初始化新的segment步骤,由于多种原因,可能导致此步骤失败,如配置文件错误,磁盘空间不足等,此时需要将扩展操作回滚,待失败原因解决之后,再次执行初始化新的segment操作。
$gpexpand –rollback –D expands

五、注意事项

1.表中有唯一索引时,扩容过程执行到检测唯一索引步骤之后不再继续执行,具体提示如下:
Tables with unique indexes exists. Until these tables are successfully redistributed, unique constraints may be violated. For more information on this issue, see the Greenplum Administrator Guide

解决办法,先删除唯一索引,扩容完成之后再建立。
2.扩容的系统,需要有mirror。
提示信息如下:
primary must have mirror when mirroring enabled:%s %repr(seg)
(当时我只建了master的standy,segment的mirror未配置,结果就不让扩容,提示需要建立mirror才行。)

猜你喜欢

转载自blog.csdn.net/lijingkuan/article/details/79310651