1 配置 hosts 文件
vi /etc/hosts
--------------------input------------------------------
192.168.10.159 node1
2 准备3 个数据库实例
2.1 创建数据库集簇目录
su - postgres
mkdir -p /home/postgres/data_cn
mkdir -p /home/postgres/data_worker01
mkdir -p /home/postgres/data_worker02
2.2 初始化集簇目录
initdb -D /home/postgres/data_cn -k -W
1qaz@WSX
initdb -D /home/postgres/data_worker01 -k -W
1qaz@WSX
initdb -D /home/postgres/data_worker02 -k -W
1qaz@WSX
2.3 配置数据库参数
echo "listen_addresses = '*'" >> data_cn/postgresql.conf
echo "listen_addresses = '*'" >> data_worker01/postgresql.conf
echo "listen_addresses = '*'" >> data_worker02/postgresql.conf
echo "port = 1921" >> data_cn/postgresql.conf
echo "port = 7000" >> data_worker01/postgresql.conf
echo "port = 8000" >> data_worker02/postgresql.conf
3 安装 citus
3.1 安装操作系统依赖包
yum install libcurl-devel -y
su - postgres
cd /soft
3.2 获取citus 源码编译和安装
wget https://github.com/citusdata/citus/archive/refs/tags/v12.0.0.tar.gz
tar -zxf v12.0.0.tar.gz
cd citus-12.0.0
./configure
make -j 8
make install
4 创建数据库插件
4.1 更改shared_preload_libraries 参数
cd ~
echo "shared_preload_libraries = 'citus'" >> data_cn/postgresql.conf
echo "shared_preload_libraries = 'citus'" >> data_worker01/postgresql.conf
echo "shared_preload_libraries = 'citus'" >> data_worker02/postgresql.conf
4.2 创建扩展
pg_ctl start -D /home/postgres/data_cn
psql -p 1921 -U postgres -d postgres
CREATE EXTENSION citus;
exit
pg_ctl start -D /home/postgres/data_worker01
psql -p 7000 -U postgres -d postgres
CREATE EXTENSION citus;
exit
pg_ctl start -D /home/postgres/data_worker02
psql -p 8000 -U postgres -d postgres
CREATE EXTENSION citus;
exit
4.3 配置 pg_hba.conf
cd ~
cat >> /home/postgres/data_cn/pg_hba.conf << EOF
host all all 192.168.10.0/24 trust
EOF
pg_ctl -D /home/postgres/data_cn/ reload
cat >> data_worker01/pg_hba.conf << EOF
host all all 192.168.10.0/24 trust
EOF
pg_ctl -D /home/postgres/data_worker01/ reload
cat >> data_worker02/pg_hba.conf << EOF
host all all 192.168.10.0/24 trust
EOF
pg_ctl -D /home/postgres/data_worker02/ reload
4.4 添加work节点
psql -U postgres -d postgres -p 1921
SELECT citus_set_coordinator_host('node1', 1921);
SELECT citus_add_node('node1', 7000);
SELECT citus_add_node('node1', 8000);
SELECT rebalance_table_shards();
5 对表进行分片
psql -U postgres -d postgres -p 1921
DROP TABLE shiptrack;
CREATE TABLE shiptrack(gid serial primary key, tracktime timestamp without time zone);
SELECT create_distributed_table('shiptrack','gid','hash',shard_count:=32);
6 小结
6.1 yum 安装
curl https://install.citusdata.com/community/rpm.sh > add-citus-repo.sh
sed -i 's/centos/almalinux/' add-citus-repo.sh
bash add-citus-repo.sh