Q-Logo 我的学习笔记分享

PostgreSQL 12主从流复制不再支持recovery.conf

报错信息

最近用PostgreSQL 12.2部署主从流复制,在启动从数据库时报了如下错误:

2020-03-13 06:47:48.534 UTC [24] FATAL: using recovery command file "recovery.conf" is not supported

原因和解决

经查,原因是在PostGresQL 12中,已经不再使用recovery.conf配置文件。

从PostgreSQL 12开始,recovery.conf的配置文件不再被支持,原有的配置内容,整合到postgresql.conf中,移除standby_mode配置,改用standby.signal标识文件来标识 。 若 recovery.conf 存在,从数据库无法启动 ,报上面的错误。

具体需要做如下修改:

  1. 将recovery.conf文件中的内容复制到postgresql.conf中,删除其中的standby_mode=on配置
  2. 创建standby.signal标识文件,无须包含任何内容(即使有内容也会被忽略)。

经过上述修改后,启动从数据库成功,主从流复制正常工作。

参考资料

  1. https://www.2ndquadrant.com/en/blog/replication-configuration-changes-in-postgresql-12/
  2. https://www.postgresql.org/docs/current/runtime-config-replication.html#RUNTIME-CONFIG-REPLICATION-STANDBY
  3. https://yq.aliyun.com/articles/714975