Greenplum扩容-纵向扩容
扩容前准备
首先看看现有的集群的状态:gpstate
现在的状态是有3台主机,一个是master节点,还有两个segment的机器,每个segment的机器上都有一个primary和mirror的segment.
现在计划在现有的集群上进行segment的扩容,在每台机器上的segment的数量翻倍.
现在segment的目录为:
现在需要在两个segment的主机上创建新的目录如下:
上面的目录的所属组和用户均为gpadmin:gpamdin,这里创建目录可以使用gpssh创建也可以一个一个的创建
创建初始化文件
查看目前segment的主机:
执行:gpexpand -f seg_hosts
or gpexpand -f seg_hosts -D your_db_name
如果报错这个错:[ERROR]:-gpexpand failed: Invalid database ‘template1’ specified. Cannot use a template database. 就有两种解决办法:
1.指定您的数据库:gpexpand -f seg_hosts -D lte_mr
2.在.bash_profile
新增:export PGDATABASE=lte_mr
指向数据库
查看初始化文件:
初始化Segment并且创建扩容schema
执行命令: gpexpand -i gpexpand_inputfile_20220121_152841
orgpexpand -i gpexpand_inputfile_20220121_152841 -D your_db_name
使用gpstate
验证下节点是否添加成功!
重分布数据
执行命令:gpexpand -d 1:00:00
移除扩容schema
执行命令:gpexpand -c
这里为止纵向扩容就完成了,不出错都是傻瓜式的操作,出错多看日志,也不难。
注意:如果在扩容的时候失败或者出错了,记得回滚:gpexpand -r ,还有就是扩容成功,数据重分布成功后记得使用analyze或者analyzedb进行分析