我尝试按照快速入门中提供的步骤为 postgres 设置多主 BDR。我设法使安装和配置正确(希望如此)。
我有两台 centos 7 服务器:X 和 Y。postgres 和 bdr 都安装在其中。
在 pg_hba.conf 中添加条目后,postgresql.conf。重新启动两个服务器上的 postgres 实例。
my pg_hba.conf have on both X and Y:
host replication postgres X/32 trust
host replication postgres Y/32 trust
此外,添加了 postgresql.conf 以及快速入门中提供的更改。
我能够创建 bdr 扩展和 btree_gist。
在 X 机器上:
select bdr.bdr_group_create(local_node_name :='node1', node_external_dsn :='port=5432 dbname=testDB host=IPADDRESS_of_X', node_local_dsn := NULL, apply_delay := NULL, replication_sets :=array['status']);
在 Y 机器上:
select bdr.bdr_group_join(local_node_name := 'node2', node_external_dsn := 'port=5432 dbname=testDB host=IPADDRESS_of_Y', join_using_dsn := 'port=5432 dbname=testDB host=IPADDRESS_of_X', node_local_dsn := NULL, apply_delay := NULL, replication_sets :=ARRAY['status']);
对于我跑的测试,
select bdr.bdr_node_join_wait_for_ready();
这按预期返回了 null 。
select '*' from pf_relication_slots;
这给了我的 testDB 一个插槽名称。
但是,当我在数据库上运行手动更新或插入时,我看到数据没有在其他节点上复制。
SELECT * FROM bdr.bdr_nodes
给出的输出为:
有人可以帮我解决这个问题。