Postgresql 相当新,但必须设置复制。我选择了 BDR,它在本地演示中运行良好,但在分布式机器上开始出现问题,主要是因为我不知道我到底在做什么,我哭着睡着了,渴望 MySQL。我已经让 BDR 在多台服务器上工作,几乎。当我运行时:
SELECT bdr.bdr_node_join_wait_for_ready();
在它挂起的加入节点上。这在 DB2 和 DB3 上都会发生。DB1 返回一个有效响应。研究这个我遇到了 bdr_init_copy 命令,它显然做了我一直在手工做的所有事情,然后是一些。所以尝试了一下。现在,当我运行时:
/usr/lib/postgresql/9.4/bin/bdr_init_copy -d "host=192.168.1.10 dbname=demo3" --local-dbname="host=192.168.1.23 dbname=demo3" -n db2 -D bdr_data
我明白了
bdr_init_copy: starting ...
Getting remote server identification ...
Detected 2 BDR database(s) on remote server
Updating BDR configuration on the remote node:
demo2: creating replication slot ...
demo2: creating node entry for local node ...
demo3: creating replication slot ...
demo3: creating node entry for local node ...
Creating base backup of the remote node...
63655/63655 kB (100%), 1/1 tablespace
Creating restore point on remote node ...
Bringing local node to the restore point ...
它坐在那里。我假设这两个问题的原因相同。据我所知,本地节点(db2)上没有创建日志条目,但远程(db1)上存在以下内容
2016-10-12 22:38:43 UTC [20808-1] postgres@demo2 LOG: logical decoding found consistent point at 0/5001F00
2016-10-12 22:38:43 UTC [20808-2] postgres@demo2 DETAIL: There are no running transactions.
2016-10-12 22:38:43 UTC [20808-3] postgres@demo2 STATEMENT: SELECT pg_create_logical_replication_slot('bdr_17163_6340711416785871202_2_17163__', 'bdr');
2016-10-12 22:38:43 UTC [20811-1] postgres@demo3 LOG: logical decoding found consistent point at 0/5002090
2016-10-12 22:38:43 UTC [20811-2] postgres@demo3 DETAIL: There are no running transactions.
2016-10-12 22:38:43 UTC [20811-3] postgres@demo3 STATEMENT: SELECT pg_create_logical_replication_slot('bdr_17939_6340711416785871202_2_17939__', 'bdr');
2016-10-12 22:38:44 UTC [20812-1] postgres@demo3 LOG: restore point "bdr_6340711416785871202" created at 0/50022A8
2016-10-12 22:38:44 UTC [20812-2] postgres@demo3 STATEMENT: SELECT pg_create_restore_point('bdr_6340711416785871202')
有什么帮助吗?