# Greenplum扩容详解
本文参考链接:https://www.modb.pro/db/399311
# gpexpand
# 切换用户
su gpadmin
# 使环境生效
source /usr/local/greenplum-db/greenplum_path.sh
# 查看版本
gpexpand --version
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 横向扩容
即增加机器的方式,eg:新增主机sdw3,需要提前配置好host
# 创建用户和组
groupadd -g 530 gpadmin
useradd -g 530 -u 530 -m -d /home/gpadmin -s /bin/bash gpadmin
chown -R gpadmin:gpadmin /home/gpadmin
echo "gpadmin" | passwd --stdin gpadmin
1
2
3
4
2
3
4
# 创建segment目录
mkdir -p /opt/greenplum/data3/primary
sudo chown -R gpadmin:gpadmin /opt/greenplum/data3/primary*
1
2
2
# 拷贝master主机的安装目录
# 打包
cd /usr/local && tar -cf /usr/local/gp6.tar greenplum-db-6.4.0
# 发送到sdw3主机
scp gp.tar root@sdw3:/usr/local/
# 在sdw3主机上操作
cd /usr/local
tar -xf gp.tar
ln -s greenplum-db-6.4.0 greenplum-db
chown -R gpadmin:gpadmin greenplum-db*
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# ssh免密配置
# 生成ssh密钥
ssh-keygen
# 拷贝密钥
ssh-copy-id sdw3
1
2
3
4
5
2
3
4
5
# 修改host文件
vi /home/gpadmin/conf/hostlist
vi /home/gpadmin/conf/seg_hosts
# 行末追加sdw3主机
1
2
3
4
2
3
4
执行
gpssh-exkeys -f /home/gpadmin/conf/hostlist
1
# 创建初始化文件
gpexpand -f /home/gpadmin/conf/seg_hosts
# eg y 1 /opt/greenplum/data3/primary
# 如果成功,在输出结果中会显示需要执行的文件名 失败需要 gpexpand -r 回滚
gpexpand -i gpexpand_inputfile_xxxx
1
2
3
4
5
6
2
3
4
5
6
# 重分布数据
gpexpand -d 1:00:00
1
# 移除扩容schema
gpexpand -c
1
# 命令详解
-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是数字。例如,sdw1、sdw2等等。 对于具有多个接口的主机,约定是在主机名后面添加破折号(-)和数字。例如sdw1-1 和sdw1-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
显示在线帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37