暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

云贝教育 |【技术文章】pgxc_ctl命令添加DN节点

云贝教育 2024-10-21
243

本文为云贝教育 刘老师 原创,请尊重知识产权,转发请注明出处,不接受任何抄袭、演绎和未经注明出处的转载。


pgxc_ctl 是 OpenTenBase 提供的一个命令行工具,用于管理和操作集群。添加 DN(Data Node)节点是扩展集群存储和处理能力的常见操作。
以下是使用 pgxc_ctl 添加 DN 节点的详细步骤。

一、前提条件

  1. 已经安装并配置好 OpenTenBase 集群:确保你已经有一个运行中的 OpenTenBase 集群。
  2. 已编译并安装好 OpenTenBase 二进制文件:确保 pgxc_ctl 工具可用。
  3. 新的 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


集群信息如下:

节点名称IP数据目录
GTM master

192.168.2.136

/data/opentenbase/data/gtm

GTM slave

192.168.2.137

/data/opentenbase/data/gtm

CN1

192.168.2.136

/data/opentenbase/data/coord

CN2

192.168.2.137

/data/opentenbase/data/coord

DN1 master

192.168.2.136

/data/opentenbase/data/dn001

DN1 slave

192.168.2.137

/data/opentenbase/data/dn001

DN2 master

192.168.2.137

/data/opentenbase/data/dn002

DN2 slave

192.168.2.136

/data/opentenbase/data/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:$PATH
export LD_LIBRARY_PATH=$OPENTENBASE_HOME/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 节点

使用 pgxc_ctl 工具初始化新的 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 节点。主要步骤包括准备新节点、分发二进制文件、添加节点以及验证新增节点是否成功加入集群。



想了解更多相关的学习资料(技术文章和视频),可以微信公众号或B站搜索《云贝教育》,免费获取。

需要课程资料的同学可以私聊课程顾问:19941464235(微信同号)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论