Postgres 9.4 中的槽复制不起作用

Postgres 9.4 中的槽复制不起作用

我在 Windows 2008 服务器上使用 Postgres 9.4。我使用了三个这样的实例。一个作为主服务器,其余两个作为从服务器/备用服务器。这三个实例中的 Postgres 版本均为 9.4。我已使用物理插槽设置了复制。但复制不起作用。查询时SELECT * from pg_stat_replication;返回 0 行,查询时SELECT * from pg_replication_slots;插槽显示它处于非活动状态(“活动”列中的“f”)。

我有以下配置:

在主要/主服务器上:

  1. wal_level = hot_standby
  2. 最大发送者数 = 2
  3. 最大复制槽数 = 2
  4. hot_standby = on

在辅助/备用服务器上:

  1. wal_level = hot_standby
  2. hot_standby = on

辅助/备用服务器上的 recovery.conf 文件:

  1. 待机模式 = 开启
  2. primary_conninfo = '主机=192.168.8.192 端口=5432 用户=postgres 密码=123456'
  3. 主插槽名称 = '测试'
  4. recovery_min_apply_delay = 1分钟

可能缺少什么?我已经使用主服务器的数据备份引导了备用服务器。谢谢。

答案1

我在 Ubuntu 上也遇到过类似的问题。对我来说,结果发现它replication.conf不在正确的位置。

根据 Postgres Wiki流复制在描述 recovery.conf 的部分中:

$EDITOR 恢复.conf

请注意,recovery.conf 必须位于 $PGDATA 目录中。

它不应该与 postgresql.conf 位于同一目录中

一旦我移动recovery.conf到正确的位置并重新启动 Postgres,SELECT * from pg_stat_replication就返回active = true

希望有所帮助。

相关内容