pgxc_ctl 是 OpenTenBase 提供的一个命令行工具,用于管理和操作集群。添加 DN(Data Node)节点是扩展集群存储和处理能力的常见操作。
以下是使用 pgxc_ctl 添加 DN 节点的详细步骤。
一、前提条件
- 已经安装并配置好 OpenTenBase 集群:确保你已经有一个运行中的 OpenTenBase 集群。
- 已编译并安装好 OpenTenBase 二进制文件:确保 pgxc_ctl 工具可用。
- 新的 DN 节点已经准备:确保新的 DN 节点已经安装了必要的依赖,并且可以访问现有的集群节点。
二、当前运行环境如下
PGXC monitor all
Running: gtm master
Running: gtm slave
Running: coordinator master cn001
Running: coordinator master cn002
Running: datanode master dn001
Running: datanode slave dn001
Running: datanode master dn002
集群信息如下:
三、添加DN节点
目标:在新的节点192.168.2.138添加dn003节点
注:PGXC的操作均在管控节点192.168.2.136上操作
3.1. 准备新 DN 节点
在新的 DN 节点上,创建必要的目录结构并设置权限:
# 创建数据目录 mkdir -p /data/opentenbase/data/dn003 mkdir -p /data/opentenbase/install chown -R opentenbase:opentenbase/data/opentenbase # 创建 opentenbase 用户 useradd -d /data/opentenbase -s /bin/bash -m opentenbase # 设置密码 passwd opentenbase
3.2. 配置opentenbase环境变量
[opentenbase]
$ vim ~/.bashrc
export OPENTENBASE_HOME=/data/opentenbase/install/opentenbase_bin_v2.6
export PATH=$OPENTENBASE_HOME/bin:OPENTENBASEHOME/bin:$PATH
export LD_LIBRARY_PATH=$OPENTENBASE_HOME/lib:OPENTENBASEHOME/lib:${LD_LIBRARY_PATH}
export LC_ALL=C
3.3. 分发二进制文件
将 OpenTenBase 的二进制文件分发到新的 DN 节点。
- 管控节点192.168.2.136分发软件包
[opentenbase]
pgxc_ctl -c /data/opentenbase/pgxc_ctl/pgxc_ctl.conf
deploy 192.168.2.138
3.4. 配置 SSH 互信
确保现有的集群节点可以无密码访问新的 DN 节点:
# 生成 SSH 密钥对(如果还没有)
ssh-keygen -t rsa
# 将公钥复制到新的 DN 节点
ssh-copy-id -i ~/.ssh/id_rsa.pub opentenbase@192.168.2.138
3.5 添加dn003节点
pgxc_ctl -c /data/opentenbase/pgxc_ctl/pgxc_ctl.conf
PGXC
add datanode master dn003 192.168.2.138 40004 20012 /data/opentenbase/data/dn003 none none none none
3.6 节点操作补充(不用执行)
1)初始化新的 DN 节点
[opentenbase]
pgxc_ctl -c /data/opentenbase/pgxc_ctl/pgxc_ctl.conf
PGXC
init datanode dn003
2)启动新的 DN 节点
使用 pgxc_ctl 工具启动新的 DN 节点:
[opentenbase]
pgxc_ctl -c /data/opentenbase/pgxc_ctl/pgxc_ctl.conf
PGXC
start datanode dn003
3)移除DN节点
使用 pgxc_ctl 工具移除新的 DN 节点:
[opentenbase]
pgxc_ctl -c /data/opentenbase/pgxc_ctl/pgxc_ctl.conf
PGXC
remove datanode master dn003 clean
四. 验证
新增的 DN 节点连接到任意一个协调节点(CN),验证新的 DN 节点是否已经成功加入集群:
[opentenbase@db1 ~]$ psql -h 192.168.2.136 -p 30004 -d postgres -U opentenbase
psql (PostgreSQL 10.0 OpenTenBase V2)
Type "help" for help.
postgres=# select * from pgxc_node;
node_name | node_type | node_port | node_host | nodeis_primary | nodeis_preferred | node_id | node_cluster_name
-----------+-----------+-----------+---------------+----------------+------------------+-------------+---------------------
gtm | G | 50001 | 192.168.2.136 | t | f | 428125959 | opentenbase_cluster
cn001 | C | 30004 | 192.168.2.136 | f | f | -264077367 | opentenbase_cluster
cn002 | C | 30004 | 192.168.2.137 | f | f | -674870440 | opentenbase_cluster
dn001 | D | 40004 | 192.168.2.136 | t | t | 2142761564 | opentenbase_cluster
dn002 | D | 40004 | 192.168.2.137 | f | f | -17499968 | opentenbase_cluster
dn003 | D | 40004 | 192.168.2.138 | f | f | -1956435056 | opentenbase_cluster
(6 rows)
五、总结
通过以上步骤,你可以成功地使用 pgxc_ctl 工具向 OpenTenBase 集群中添加一个新的 DN 节点。主要步骤包括准备新节点、分发二进制文件、添加节点以及验证新增节点是否成功加入集群。
我们目前正在积极征集OpenTenBase的用户使用案例,如果您有相关使用经验,欢迎提交给我们。也期待您加入OpenTenBase社区,跟我们共同推动项目发展!
官网: https://www.opentenbase.org/
贡献代码