PostgreSQL 热备无法启动,因为 max_connections 的设置比主服务器上的低

PostgreSQL 热备无法启动,因为 max_connections 的设置比主服务器上的低

我有一个 PostgreSQL 9.6 主服务器和一个备用服务器。这两行分别位于postgresql.conf

max_connections = 100

待机状态recovery.conf如下所示(实际hostusercluster隐藏):

standby_mode = on
recovery_target_timeline = latest
primary_conninfo = 'host=<host> port=5433 user=<user>'

当我pg_ctlcluster 9.6 <cluster> start报告以下错误:

FATAL: hot standby is not possible because max_connections = 100 
is a lower setting than on the master server (its value was 2000)

我想知道:这个值从何2000而来。两个集群都应该看到100,即相等的值。而且SHOW max_connections主集群确实产生了100

这是怎么回事?我怎样才能使待机系统成功启动?

答案1

发生这种情况的原因是,我的主服务器和备用服务器都是从 初始化的,pg_basebackup而该服务器是在确实有 的集群上进行的max_connections = 2000。解释了这种情况的详细信息和两种补救措施这里

[...] 这是因为备用服务器上的 pg_control 会记得前一个主服务器的max_connections[...] 因此,您要么必须在备用服务器上设置更高的设置以至少重新启动一次,要么 [...] 只需使用 启动备用服务器一秒钟hot_standby = off,然后在重播待处理的 WAL 后重新启用它。

相关内容