PostgreSQL XL
官网:https://www.postgres-xl.org/
官网部署文档:https://www.postgres-xl.org/documentation/server-start.html
参考:https://www.jianshu.com/p/82aaf352b772
概述
Postgres XL,XL是eXtensible Lattice的简写,意识是可扩展的盒子。
主要特点:
可伸缩(Scalable)
Postgres XL可实现数据分表存储在多个节点中,或在多节点中同步副本集
完全支持ACID(Fully ACID)
Atomicity (原子性,或称不可分割性)
Consistency(一致性)
Isolation(隔离性,或称独立性)
Durability(持续性)

目前安装方式只支持二进制安装,rpm或deb等格式以后会支持的
组件构成
GTM
GTM-Proxy
Coordinator
Datanode
安装
这里有3个角色概念:
GTM
Coordinator
Datanode
官方推荐Coordinator和Datanode在同一节点,GTM至少有一个Standby,因此,我们安装一套初始环境,节点做如下安排:
Node1:GTM => 2CPUs + 4G MEM + 20G DISK
Node2:GTM Standby => 2CPUs + 4G MEM + 20G DISK
Node3: coord_1 + datanode_1 => 2CPUs + 4G MEM + 200G SSD
Node4: coord_2 + datanode_2 => 2CPUs + 4G MEM + 200G SSD
Node5: datanode_1_slave => 2CPUs + 4G MEM + 200G SSD
Node6: datanode_2_slave => 2CPUs + 4G MEM + 200G SSD
6个节点,2个GTMs,2个Shards, 每个Shard有一个Slave
创建postgres用户账号
在每个节点,创建postgres账号,创建存放数据的基础目录
实现从node1向其他节点ssh免登陆
Node1上:
一路默认回车,会得到两个文件/home/postgres/.ssh/id_rsa和/home/postgres/.ssh/id_rsa.pub,把pub文件复制到authorized_keys中
登录Node2-Node6,那/home/postgres/.ssh/authorized_keys文件的内容复制到每个节点的/home/postgres/.ssh/authorized_keys
从Node1用postgres账号登录Node2-6,确认每个节点都不需要输入密码
下载、编译
在每个节点编译安装Postgres-XL,版本为XL9_5_R1_6
编辑/etc/environment,添加/usr/local/pgsql/bin
使用pgxc_ctl工具初始化集群
在Node1上用postgres账号使用pgxc_ctl
创建~/pgxc_ctl/pg_hba_extra.conf文件,这个文件至关重要,把每台服务器的IP都加入信任列表,让每个账户访问数据库都不需要输入密码。否则,在后面的步骤中,创建的新用户将无法访问数据库,即使密码输入正确也不行。
再次运行pgxc_ctl,开始添加集群角色
现在,1个GTM,2个Coordinator,2个datanode组成了集群
在node1上测试一下:
添加GTM
添加Coordinator
添加Datanode
Master:
Slave:
Last updated