Sac*_*rma 21 postgresql replication
普通的旧流复制。PostgreSQL:9.2.7 Windows 8.1 64 位
我的主要和次要集群在同一台Windows 机器上。我已经完成了pg_start_backup()和所有事情,所以两个节点都有完全相同的数据。
现在复制的问题是从服务器的“复制连接”无法连接到主服务器,但我可以使用 psql shell 使用相同的参数进行连接。我认为罪魁祸首是 slave 的 recovery.conf 中的连接字符串:
primary_conninfo = 'host = 127.0.0.1 port = 5432 user = postgres password = postgres'
Run Code Online (Sandbox Code Playgroud)
我尝试了 localhost, 0.0.0.0, lan IP 除了 pg log 之外的所有内容:
FATAL: could not connect to the primary server: FATAL: no pg_hba.conf entry for replication connection from host "127.0.0.1", user "postgres", SSL off
Run Code Online (Sandbox Code Playgroud)
现在看看我的Master的pg_hba.conf:
host all all 0.0.0.0/0 trust
host all postgres 127.0.0.1/0 trust
# IPv6 local connections:
host all all ::1/128 md5
hostnossl all postgres 127.0.0.1/32 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
就像我允许所有可能的连接但奴隶无法连接。你能帮忙吗?
Sac*_*rma 29
该数据库名必须replication
为all
不包括复制连接。
host replication postgres 127.0.0.1/0 trust
Run Code Online (Sandbox Code Playgroud)
在PostgreSQL文档进一步说:
该值
replication
指定记录在请求复制连接时匹配(请注意,复制连接不指定任何特定数据库)。否则,这是特定 PostgreSQL 数据库的名称。可以通过用逗号分隔来提供多个数据库名称。可以通过在文件名前加上@
.
我在这里遇到了另一种可能的解决方案。如果您正在进行逻辑复制并且将数据库设置为复制,则它将无法工作。它只需要获取一个常规参数。该replication
参数适用于物理复制,不适用于逻辑复制。
伙计,这个问题需要花一些功夫才能弄清楚。我希望这有帮助!
归档时间: |
|
查看次数: |
41818 次 |
最近记录: |