无法通过复制用户连接PostgreSQL群集

无法通过复制用户连接PostgreSQL群集,postgresql,postgresql-9.4,pg-hba.conf,Postgresql,Postgresql 9.4,Pg Hba.conf,我正在使用流式复制和专用复制插槽在单个服务器中复制多个PostgreSQL客户端 我们还希望监视一些参数,例如每个主机上复制插槽的状态,因此,我们希望能够使用replication user连接主机,只查询插槽状态,这样就不需要设置任何有权访问任何数据库的用户 joanmi@standby:~$ PGPASSWORD=supersecret psql -h serverB.example.com -U replication -c "select slot_name, active from p

我正在使用流式复制和专用复制插槽在单个服务器中复制多个PostgreSQL客户端

我们还希望监视一些参数,例如每个主机上复制插槽的状态,因此,我们希望能够使用replication user连接主机,只查询插槽状态,这样就不需要设置任何有权访问任何数据库的用户

joanmi@standby:~$ PGPASSWORD=supersecret psql -h serverB.example.com -U replication -c "select slot_name, active from pg_replic
ation_slots" postgres                                                                                                              
psql: FATAL:  no hay una línea en pg_hba.conf para «172.30.100.190», usuario «replication», base de datos «postgres», SSL activo   
FATAL:  no hay una línea en pg_hba.conf para «172.30.100.190», usuario «replication», base de datos «postgres», SSL inactivo
我在许多服务器上成功地实现了它。例如:

joanmi@standby:~$ PGPASSWORD=supersecret psql -h serverA.example.com -U replication -c "select slot_name, active from pg_replication_slots" postgres                                                                                                                 
    slot_name    | active       
-----------------+--------      
 pasifae_replica | t            
(1 fila)
但是,针对另一台服务器的完全相同的语句会抛出一条错误消息,声明不允许访问。具体地说,在
pg_hba.conf
文件中没有任何一行允许
replication
用户从我们的备用服务器连接
postgres
数据库

joanmi@standby:~$ PGPASSWORD=supersecret psql -h serverB.example.com -U replication -c "select slot_name, active from pg_replic
ation_slots" postgres                                                                                                              
psql: FATAL:  no hay una línea en pg_hba.conf para «172.30.100.190», usuario «replication», base de datos «postgres», SSL activo   
FATAL:  no hay una línea en pg_hba.conf para «172.30.100.190», usuario «replication», base de datos «postgres», SSL inactivo
事实上,这是真的。但在两个主服务器中,它只在其中一个主服务器中发生故障

我检查了pg_hba.conf和以下两行,它们都是
replication
user的(唯一)行:

服务器A:

host     replication     replication     172.30.100.190/32       md5
host    replication     replication     172.30.100.0/24           md5
服务器B:

host     replication     replication     172.30.100.190/32       md5
host    replication     replication     172.30.100.0/24           md5
…并且都是Postgresql 9.4。具体地说:

服务器A:9.4.6


服务器B:9.4.3

您显示的
pg_hba.conf
行仅允许用户的复制连接
复制

你需要一条像这样的线

host    postgres     replication    172.30.100.0/24     md5

如果它在其中一台服务器上工作,则在
pg_hba.conf
中必须有另一行允许连接。

你说得对!也许我是盲目地关注这样一个事实,即没有其他行明确地向用户
replication
授予权限。172.30.100.x是我们最近为复制和备份流量添加的一个管理网络,我不自觉地认为,除了我自己设置的
复制
访问之外,还没有授予该网络任何其他访问权限。谢谢你,很抱歉问了这么愚蠢的问题。