【自建分布式数据库详细指南】(二)部署:多节点分布式集群搭建

搭建分布式数据库集群比较难,特别是对于许多小众公司来讲,能够利用现有条件和技术,在降低学习和应用成本前提下,能够选择的分布式集群不多,今天我们采用Citus架构搭建分布式集群,作为CITUS是POSTGRESQL的扩展架构,对我们后期教程实现读写分离等扩展功能难度相对较低,下面开始进入正题

简介

Citus是Postgres的开源扩展,将Postgres转换成一个分布式数据库,在集群的多个节点上分发数据和查询,具有像分片、分布式SQL引擎、复制表和分布式表等特性。

因为Citus是Postgres的扩展(而不是一个独立的代码分支),所以当你使用Citus时,你也在使用Postgres,可以利用最新的Postgres特性、工具和生态系统。

架构节点

每个集群都有一个称为协调节点(Coordinator Node,CN)的特殊节点,其他节点称为工作节点(Worker Node,WN/DN)。

CN只存储和数据分布相关的元数据,实际的表数据被分成M个分片,打散到N个DN上。

应用程序将它们的查询发送到协调器节点,该节点将查询转发给相关的数据节点并收集结果。

 第一步:增加安装CITUS。

# Add Citus repository for package manager
curl https://install.citusdata.com/community/rpm.sh | sudo bash

第二步:安装postgresql并初始化 

# install PostgreSQL with Citus extension
sudo yum install -y citus102_14
# initialize system database (using RHEL 6 vs 7 method as necessary)
sudo service postgresql-14 initdb || sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
# preload citus extension
echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/14/data/postgresql.conf

   PS:对于无法实现在线安装的,在第一步后通过下载本地包然后选择本地包进行安装,不清楚的可以参见本教程第一篇。【自建分布式数据库详细指南】(一)起步:聊聊LINUX及POSTGRESQL

第三步:配置数据库

sudo vi /var/lib/pgsql/14/data/postgresql.conf
# Uncomment listen_addresses for the changes to take effect
listen_addresses = '*'

这个是把监听地址改为任意,不修改的话别的主机无法访问,更多关于POSTGRESQL的基础性配置见另外文章

部分新手安装数据库后远程无法连接可能存在以下几个方面的原因

1.防火墙或路由设置 systemctl stop firewalld

2.以上提到的listen_addresses未改为星号

3.pg_hba.conf未配置访问地址

以下配置数据库访问权限:

sudo vi /var/lib/pgsql/14/data/pg_hba.conf

 在打开的配置文件中作如下修改,(PS:#是注释符号),对应的IP要进行修改。

# Allow unrestricted access to nodes in the local network. The following ranges
# correspond to 24, 20, and 16-bit blocks in Private IPv4 address spaces.
host    all             all             10.0.0.0/8              trust

# Also allow the host unrestricted access to connect to itself
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust

 如果想修改密码,一定在创建集群前修改CN节点密码。

su postgres

-bash$psql -U postgres

postgres=#alter user postgres with password 'new pwd';

postgres=#\q

第四步:启动服务并创建CITUS集群扩展

# start the db server
sudo service postgresql-14 restart
# and make it start automatically when computer does
sudo chkconfig postgresql-14 on

需要在每个节点上进行如上操作并

sudo -i -u postgres psql -c "CREATE EXTENSION citus;"

添加worker节点的IP地址(或者DNS名称)和端口号到pg_dist_node表。

sudo -i -u postgres psql -c "SELECT * from master_add_node('192.168.0.101', 5432);"
sudo -i -u postgres psql -c "SELECT * from master_add_node('192.168.0.102', 5432);"

验证是否成功 

sudo -i -u postgres psql -c "SELECT * FROM citus_get_active_worker_nodes();"

能返回查询到记录即是正常成功

好了开启分布式集群

sudo -i -u postgres psql

【自建分布式数据库详细指南】(三)扩展:在分布式基础上加装读写分离

点击链接加入群聊【CITUS POSTGRESQL MPP数据库】

【发文不易,路过请高抬贵手收藏点个赞^.^】

你可能感兴趣的:(CSDN精华,数据库,分布式,postgresql)