我想创建一个postgres-xl集群.该集群包括5个节点,1个GTM,2个协调器和2个Datanode.以下是节点的详细信息
GTM:
hostname=localhost
nodename=gtm
IP=127.0.0.1
port=20001
Coordinator1?
hostname=localhost
nodename=coord1
IP=127.0.0.1
pooler_port=30011?port=30001
Coordinator2?
hostname=host2
nodename=coord2
IP=10.4.6.36
pooler_port=30012?port=30002
Datanode1?
hostname=localhost
nodename=dn1
IP=127.0.0.1
pooler_port=40011, port=40001
Datanode2?
hostname=host2
nodename=dn2
IP=10.4.6.36
pooler_port=40012, port=40002
Run Code Online (Sandbox Code Playgroud)
我已经安装了pgxc_ctl并将/ usr/local/pgsql/bin添加到PATH for postgres.我已配置ssh身份验证以避免输入pgxc_ctl的密码.我在两个节点上编辑了postgresql.conf和pg_hba.conf.
然后我按如下方式构建了集群:
$ pgxc_ctl
PGXC$ add gtm master gtm localhost 20001 $dataDirRoot/gtm
PGXC$ add coordinator master coord1 localhost 30001 30011
$dataDirRoot/coord_master.1 none none
PGXC$ add coordinator master coord2 10.4.6.36 30002 30012
$dataDirRoot/coord_master.2 none none
Run Code Online (Sandbox Code Playgroud)
添加coord2后,我得到以下内容
psql:致命:无法从GTM获取事务ID.GTM可能已失败或丢失连接
PGXC$ add datanode master dn1 localhost …Run Code Online (Sandbox Code Playgroud) 由于数据量的原因,我需要扩展我们的应用程序数据库.它在PostgreSQL 9.3上.所以,我发现PostgreSQL-XL并且它看起来很棒,但是我很难试图绕过分布式表的限制.通过复制(在每个datanode中复制整个表)来分发它们是完全可以的,但是假设我有两个大的相关表需要沿着数据节点"分片":
CREATE TABLE foos
(
id bigserial NOT NULL,
project_id integer NOT NULL,
template_id integer NOT NULL,
batch_id integer,
dataset_id integer NOT NULL,
name text NOT NULL,
CONSTRAINT pk_foos PRIMARY KEY (id),
CONSTRAINT fk_foos_batch_id FOREIGN KEY (batch_id)
REFERENCES batches (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE,
CONSTRAINT fk_foos_dataset_id FOREIGN KEY (dataset_id)
REFERENCES datasets (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE,
CONSTRAINT fk_foos_project_id FOREIGN KEY (project_id)
REFERENCES projects (id) MATCH SIMPLE
ON …Run Code Online (Sandbox Code Playgroud) postgresql database-partitioning horizontal-scaling postgres-xl
我对postgres-xl很新.我打算将它用于我的应用程序.没有适当的文档可以在分布式模式下下载和安装.请指导我,从哪里下载,安装,配置,centOS 6的依赖包以支持postgres-xl,需要启动什么服务以及如何启动它们,分布式环境的配置更改.在分布式环境中,什么是开始和如何服务.请指导我.谢谢..!
例如,如果我有 5 个服务器(A、B、C、D、E)
我们可以设置复制因子为3的数据分布吗?(例如一个写到 ABC,其他记录到 ABD,其他记录到 ABE,等等),所以当节点 C 有一些硬件故障时,仍然有一些记录存在。
我们还可以添加一个新节点,然后在不停机的情况下将存储的数据平衡到新节点吗?