Postgres 在 conf 中忽略 wal_level 设置

cdu*_*fin 4 postgresql postgresql-9.5

我正在尝试在 Postgres 中配置复制,并遇到服务器忽略wal_level配置文件中的设置的问题。

我在配置文件中设置:

wal_level = hot_standby
max_wal_senders = 5

但是,当我开始启动 Postgres 时,我遇到了错误:

WAL 流(max_wal_senders > 0)需要 wal_level “archive”、“hot_standby”或“logical”

如果我设置了max_wal_senders = 0,服务器启动正常,但是在 psql 中运行“show all”会显示wal_level = minimal.

 -bash-4.2$ grep wal_level postgresql.conf
wal_level = hot_standby # 最小、存档、hot_standby 或逻辑

-bash-4.2$ psql -c 'show "wal_level";'
 wal_level
-----------
 最小的

知道为什么会忽略配置值吗?

Postgres 错误日志中没有什么值得注意的:

Oct 13 11:03:53 postgres[12324]: [3-1] LOG:数据库系统在 2016-10-13 10:55:35 UTC 关闭
10 月 13 日 11:03:53 postgres[12324]:[4-1] 日志:Mu​​ltiXact 成员环绕保护现已启用
10 月 13 日 11:03:53 postgres[12328]:[3-1] 日志:autovacuum 启动器启动
Oct 13 11:03:53 postgres[12321]: [3-1] LOG:数据库系统准备好接受连接

只是一个wal_level配置行,并archive_mode已启用并配置为将存档文件 rsync 同步到从站。我在这里上传了配置:http : //pastebin.com/Vi3vByc1

我已经检查过,它肯定加载了正确的配置文件。

-bash-4.2$ psql -c 'show config_file;'
             配置文件
-------------------------------
 /data/pgsql/9.5/data/postgresql.conf
(1 行)

-bash-4.2$ grep wal_level /data/pgsql/9.5/data/postgresql.conf
wal_level = hot_standby # 最小、存档、hot_standby 或逻辑

小智 6

查看 postgresql.auto.conf 文件 - 如果您使用alter system. 此外,请确保重新启动实例,而不仅仅是重新加载它,因为这种更改需要重新启动。

  • @cduffin:而不是使用 `show wal_level` 你可以使用 `select name, setting, sourcefile, sourceline from pg_settings where name = 'wal_level';` 然后你可以看到 *where* 属性被设置 (5认同)