如何减少 Postgres 集群中的 max_connections 值?

How to Reduce max_connections value in Postgres Cluster?

我有三个节点集群。

现在,我想将 max_connections 字段从 300 减少到 100。我已经更改了 postgresql.conf 文件中主副本和副本的值。我比其他副本节点首先重新启动了我的主节点。 master 中一切正常,但副本自动关闭。

这是错误: hot standby is not possible because max_connections = 100 is a lower setting than on the master server (its value was 300)

我找到了一个需要以 hot_standby=off.

开头的解决方案

除此之外还有其他解决方案吗?

随着你的改变max_connections,

停止所有实例,在所有三个节点中更改 max_connections 设置 postgresql.conf

  1. 开始掌握
  2. 然后开始复制

所以基本上发生的事情是,当我们设置 hot_standby = on.

时,我们无法启动具有比主值更少 max_connections 值的副本

虽然我已经更新了主服务器的 max_connections 信息没有到达副本端。通常,主服务器的配置更改会通过 wal 日志更改得到通知。出于这个原因,在用较低 max_connections 重新启动主节点后,我们需要等待写入操作,然后更改副本的 max_connecions.

但我认为这不是一个可行的解决方案。

更好的解决方案:

  1. 以较低的 max_connections
  2. 启动小学
  3. hot_standby = off启动副本(如果服务器停留在启动状态,几秒后不要等待启动)
  4. 关闭副本
  5. hot_standby = on
  6. 开始副本