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个角色概念:

  1. GTM

  2. Coordinator

  3. 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:

注意:添加slave时,名称,端口都要和master一样

Last updated