首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加入Postgres BDR节点使用过时的DSN

加入Postgres BDR节点使用过时的DSN
EN

Stack Overflow用户
提问于 2015-07-13 05:04:07
回答 1查看 854关注 0票数 4

我有一个Postgres集群,它有3个节点"准备好的“和3个节点"分家”。

如果我执行SELECT * FROM bdr.bdr_nodes,将显示以下信息:

代码语言:javascript
复制
-[ RECORD 1 ]------+-------------------------
node_sysid         | 6153716379158074503
node_timeline      | 1
node_dboid         | 16385
node_status        | r
node_name          | node3
node_local_dsn     | host=x.x.x.241 [...]
node_init_from_dsn | host=x.x.x.47 [...]
-[ RECORD 2 ]------+-------------------------
node_sysid         | 6153716914784688297
node_timeline      | 1
node_dboid         | 16385
node_status        | r
node_name          | node2
node_local_dsn     | host=x.x.x.5 [...]
node_init_from_dsn | host=x.x.x.47 [...]
-[ RECORD 3 ]------+-------------------------
node_sysid         | 6170758438846557459
node_timeline      | 1
node_dboid         | 16384
node_status        | r
node_name          | node4
node_local_dsn     | host=x.x.x.128 [...]
node_init_from_dsn | host=x.x.x.47 [...]
-[ RECORD 4 ]------+-------------------------
node_sysid         | 6153716402564903569
node_timeline      | 1
node_dboid         | 16385
node_status        | k
node_name          | node1
node_local_dsn     | host=x.x.x.47 [...]
node_init_from_dsn | 
-[ RECORD 5 ]------+-------------------------
node_sysid         | 6170830020100809103
node_timeline      | 1
node_dboid         | 16385
node_status        | k
node_name          | node6
node_local_dsn     | host=x.x.x.48 [...]
node_init_from_dsn | host=x.x.x.241 [...]
-[ RECORD 6 ]------+-------------------------
node_sysid         | 6170839982079996801
node_timeline      | 1
node_dboid         | 16385
node_status        | c
node_name          | node8
node_local_dsn     | host=x.x.x.142 [...]
node_init_from_dsn | host=x.x.x.241 [...]
-[ RECORD 7 ]------+-------------------------
node_sysid         | 6170833985333433816
node_timeline      | 1
node_dboid         | 16385
node_status        | k
node_name          | node7
node_local_dsn     | host=x.x.x.48 [...]
node_init_from_dsn | host=x.x.x.241 [...]

我想加入node8。但这是不可能的。错误如下:

代码语言:javascript
复制
d= p=5521 a=ERROR:  08006: could not connect to the primary server: could not connect to server: Connection timed out
        Is the server running on host "x.x.x.48" and accepting
        TCP/IP connections on port 5432?
d= p=5521 a=DETAIL:  Connection string is 'host=x.x.x.48 [...]'

该错误意味着它试图连接到已被杀死或删除的节点。为什么要连接到被杀死或删除的节点?我怎样才能解决这个问题?

下面的命令用于加入node8

代码语言:javascript
复制
SELECT bdr.bdr_group_join(
      local_node_name := 'node8',
      node_external_dsn := 'host=x.x.x.142 [...]',
      join_using_dsn := 'host=x.x.x.241 [...]'
);

BDR是根据本指令 (Debian )安装的:

代码语言:javascript
复制
curl -sSL https://manageacloud.com/api/cm/configuration/postgresql-bdr/debian/manageacloud-production-script.sh | bash

bdr.bdr_connections

代码语言:javascript
复制
-[ RECORD 1 ]----------+---------------------
conn_sysid             | 6170839982079996801
conn_timeline          | 1
conn_dboid             | 16385
conn_origin_sysid      | 0
conn_origin_timeline   | 0
conn_origin_dboid      | 0
conn_is_unidirectional | f
conn_dsn               | host=x.x.x.142 [...]
conn_apply_delay       | 
conn_replication_sets  | {default}
-[ RECORD 2 ]----------+----------------------
conn_sysid             | 6153716402564903569
conn_timeline          | 1
conn_dboid             | 16385
conn_origin_sysid      | 0
conn_origin_timeline   | 0
conn_origin_dboid      | 0
conn_is_unidirectional | f
conn_dsn               | host=x.x.x.47 [...]
conn_apply_delay       | 
conn_replication_sets  | {default}
-[ RECORD 3 ]----------+-----------------------
conn_sysid             | 6153716379158074503
conn_timeline          | 1
conn_dboid             | 16385
conn_origin_sysid      | 0
conn_origin_timeline   | 0
conn_origin_dboid      | 0
conn_is_unidirectional | f
conn_dsn               | host=x.x.x.241 [...]
conn_apply_delay       | 
conn_replication_sets  | {default}
-[ RECORD 4 ]----------+-----------------------
conn_sysid             | 6153716914784688297
conn_timeline          | 1
conn_dboid             | 16385
conn_origin_sysid      | 0
conn_origin_timeline   | 0
conn_origin_dboid      | 0
conn_is_unidirectional | f
conn_dsn               | host=x.x.x.5 [...]
conn_apply_delay       | 
conn_replication_sets  | {default}
-[ RECORD 5 ]----------+-----------------------
conn_sysid             | 6170758438846557459
conn_timeline          | 1
conn_dboid             | 16384
conn_origin_sysid      | 0
conn_origin_timeline   | 0
conn_origin_dboid      | 0
conn_is_unidirectional | f
conn_dsn               | host=x.x.x.128 [...]
conn_apply_delay       | 
conn_replication_sets  | {default}

版本:

代码语言:javascript
复制
# SELECT bdr.bdr_version();
    bdr_version    
-------------------
 0.9.1-2015-05-26-
(1 row)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 06:29:08

这是BDR中的一个bug。我刚刚在bdr-plugin/next树的本地副本中修复了它,并将在本地测试之后将更改推到bdr-plugin/REL0_9_STABLE中,以便包含在0.9.3中。

问题是,在作为节点连接的一部分在对等点上创建时隙时,我们没有过滤出基于bdr.bdr_connectionsbdr.bdr_nodes.state行。

删除没有对应bdr.bdr_nodes条目的任何bdr.bdr_nodes条目,或者在bdr.bdr_nodes条目有state = 'k'的地方使用0.9.2或更高版本的state = 'k',都是安全的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31375689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档