术语
协调器:Coordinator,应用程序(客户端)连接到此以便从集群获得服务,协调器以接收SQL语句并反馈结果的方式同应用程序交互,但真实的数据并不是保存在这里;
数据节点:Datanode,这是数据实际保存的地方,协调器检测哪个节点包含SQL语句需要的数据并与它交互获得结果;
GTM:全局事物管理器(Global Transaction Manger),给协调器和数据节点提供内部事物信息,让他们整体看起来像一台单一的数据库
GTM伺服器:GTM proxy,在GTM和其他组建之间交互,提高整体性能(本次简易环境没有使用)。
编译安装
跟PG差不多,不过它的make world 部分包含了文档,因此需要把openjade、docbook-dtds、docbook-style-dsssl等开发包装好;
./configure --prefix=/usr/local/xc-pgsql --without-selinux --with-openssl --without-pam --without-ldap --with-libxml --with-libxslt --with-libedit-preferred
节点命名与目录设置
基础目录:/home/quanzl/xc
GTM:gtm, /home/quanzl/xc/gtm
协调器:coord1、coord2,分别位于: /home/quanzl/xc/coord1、 /home/quanzl/xc/coord2
数据节点:datanode1、datanode2 ,分别位于: /home/quanzl/xc/datanode1、 /home/quanzl/xc/datanode2
初始化GTM
/usr/local/xc-pgsql/bin/initgtm -Z gtm -D /home/quanzl/xc/gtm
-Z 节点类型,可以是gtm或gtm_proxy
-D 节点工作目录
这时我们可以看到在 /home/quanzl/xc/gtm 下有一个gtm.conf文件
打开此文件,默认端口号6666,我们将它改为 7001;默认节点名为:one,改为 gtm
初始化协调器
/usr/local/xc-pgsql/bin/initdb --nodename=coord1 -D /home/quanzl/xc/coord1 /usr/local/xc-pgsql/bin/initdb --nodename=coord2 -D /home/quanzl/xc/coord2
可以看到跟PG几乎一样的初始化过程
修改 /home/quanzl/xc/coord1/postgresql.conf
gtm_port = 7001 port = 7004 pooler_port = 7008
修改/home/quanzl/xc/coord2/postgresql.conf
gtm_port = 7001 port = 7005 pooler_port = 7009
初始化数据节点
/usr/local/xc-pgsql/bin/initdb --nodename=datanode1 -D /home/quanzl/xc/datanode1 /usr/local/xc-pgsql/bin/initdb --nodename=datanode2 -D /home/quanzl/xc/datanode2
可以看到,协调器和数据节点的初始化没什么不同
修改 /home/quanzl/xc/datanode1/postgresql.conf
port = 7006 gtm_port = 7001
修改 /home/quanzl/xc/datanode2/postgresql.conf
port = 7007 gtm_port = 7001
启动
/usr/local/xc-pgsql/bin/gtm_ctl start -Z gtm -D /home/quanzl/xc/gtm /usr/local/xc-pgsql/bin/pg_ctl start -Z datanode -D /home/quanzl/xc/datanode1 -o "-i" /usr/local/xc-pgsql/bin/pg_ctl start -Z datanode -D /home/quanzl/xc/datanode2 -o "-i" /usr/local/xc-pgsql/bin/pg_ctl start -Z coordinator -D /home/quanzl/xc/coord1 -o "-i" /usr/local/xc-pgsql/bin/pg_ctl start -Z coordinator -D /home/quanzl/xc/coord2 -o "-i"
刚开始学习XC,这是照葫芦画瓢、囫囵吞枣,炮制出来的文章,参考:
http://postgresxc.wikia.com/wiki/Laptop_configuration