gpdemo(引入自 v1.5.0 版本)
在 v1.5.0 以前,如果用户想在单节点上部署带有 Segment 的 Cloudberry Database 小型集群用于演示,需要花费时间编写配置文件和参数。自 v1.5.0 起,用户只需要通过内置的 gpdemo
脚本,使用一条命令就能快速部署指定 Segment 数的 Cloudberry Database 集群。
gpdemo
将随其他系统工具(例如 gpinitsystem
、gpstart
、gpstop
等)一并安装到 GPHOME/bin
目录下。
除部署单计算节点的集群外,不建议将 gpdemo
用于生产环境。
使用方法
在目标服务器上安装完成 RPM 包,并正确加载 greenplum_path.sh
后,即可执行 gpdemo
。
默认部署
要快速创建一套集群,且对集群数据目录位置、初始端口、Segment 数量等无特殊要求,可无参数执行 gpdemo
:
gpdemo
执行该命令后,脚本会在当前路径下创建测试集群。集群的默认配置如下:
- Segment 数:3
- 数据目录:
./datadirs
- Coordinator 初始端口:
7000
创建完成后,脚本会在当前目录生成一个包含集群基本信息的 gpdemo-env.sh
文件。在使用 gpdemo
对集群进行操作前,你需要执行 source gpdemo-env.sh
以加载这些信息。
每次新建 shell 会话后都需要加载一次。你可以将这行指令加入到 ~/.bashrc
或 ~/.zshrc
来自动加载。
带自定义配置的部署
如果需要对集群的 Segment 数量、数据目录位置、初始端口等进行定制,可参考以下说明。
指定 Segment 数量
在默认部署下,集群的 Segment 数量为 3。
要指定集群的 Segment 数量,你可以在 gpdemo
命令中加入 NUM_PRIMARY_MIRROR_PAIRS
参数。例如指定 Segment 数量为 3,可执行:
NUM_PRIMARY_MIRROR_PAIRS=3 gpdemo
- 每个 Segment 由一个 Primary 和一个 Mirror 组成,所以该参数值每增加一,将多创建两个节点。建议设置为奇数以更好地捕捉数据分布问题。
- 当 设置为 0 时,将部署一个单计算节点集群,详见部署单计算节点的 Cloudberry Database 集群。
指定节点的数据目录
集群各节点的数据默认位于 ./datadirs
,即当前目录的 datadirs
子目录下。若想要指定集群的数据目录位置,你可以选择任一方法:
-
通过
cd
切换到目标目录,再执行gpdemo
。 -
在
gpdemo
命令中指定DATADIRS
参数来设置数据目录,例如:DATADIRS=/target/directory/ gpdemo
在部署完成后,如果你需要通过修改 pg_hha.conf
配置文件等方式手动调整数据目录的位置,可能需要知道 Coordinator 和各个 Segment 数据目录的默认位置:
-
普通多节点集群模式(即
NUM_PRIMARY_MIRROR_PAIRS
> 0)- Coordinator:
./datadirs/qddir
- Coordinator Standby:
./datadirs/standby
- Segments
- Primary:
./datadirs/dbfast<N>
其中<N>
为 Segment 编号。 - Mirror:
./datadirs/dbfast_mirror<N>
其中<N>
为 Segment 编号。
- Primary:
- Coordinator:
-
单节点部署模式(即
NUM_PRIMARY_MIRROR_PAIRS
= 0)- Coordinator:
./datadirs/singlenodedir
- Coordinator Standby:
./datadirs/standby
- Coordinator:
指定集群 Coordinator 节点的初始端口
在默认部署下,集群的 Coordinator 端口为 7000
,集群中所有其它节点的端口都是从该值起连续分配的。
要指定集群 Coordinator 节点的初始端口,你可以在 gpdemo
命令中加入 PORT_BASE
参数,例如:
PORT_BASE=7000 gpdemo
指定集群每个节点的额外初始化参数
BLDWRAP_POSTGRES_CONF_ADDONS
指定集群每个节点的额外初始化参数。默认值为 fsync=off
以提供更好地并发性能。
在生产环境下,请使用 export BLDWRAP_POSTGRES_CONF_ADDONS="fsync=on"
以启用 fsync,否则会影响集群的 ACID 特性。使用单节点模式时,fsync 会自动启用,不需要额外操作。