PGCM 模块四 citus

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