PostgreSQL 9.5 - 更改为 max_connections 对从属不可见
PostgreSQL 9.5 - change to max_connections not being visible to slaves
我已经在我的主服务器上添加了一个 pgbouncer 进程,所以我想将连接数从 1500 减少到 100 左右以释放主服务器上的资源,但是当我在主服务器和主服务器上都更改它时从站,新设置对从站不可见:
2020-01-29 14:59:19 dbr5 postgres[47563]: [4-1] 2020-01-29 14:59:19 EST [47563]: [4-1] user=,db=,app=,client= FATAL: hot standby is not possible because max_connections = 100 is a lower setting than on the master server (its value was 1500)
这是换主后的样子:
master=# show max_connections;
max_connections
-----------------
100
(1 row)
为什么奴隶不采用新设置的任何线索?
配置参数在全局设置时永远不会被复制。它们可以被设置
在postgresql.conf
和ALTER SYSTEM
在服务器进程启动时使用命令行选项
最后一个选项显然无法复制,前两个使用配置文件也无法复制。
这是一项功能:在某些情况下您可能希望配置参数有所不同(尽管通常不值得称赞)。
您必须更改备用服务器上的参数。
slave 需要知道 master 的 max_connections
设置才能执行此检查,因此 master 通过 WAL 条目将更改通知 slave。
但是,如果从站当前的 max_connections
设置与主站上的 last known 设置不兼容,则从站不会读取任何 WAL 条目。
你应该先重新配置master,给相应的WAL条目一个复制的机会,然后再重新配置slave。
在从机上输入 hot_standby = off
,用新的较低连接数重新启动主机,然后在确认从机已收到更改后通过查看日志中的 FATAL: the database system is starting up
日志条目,然后将其切换回 on
有效。系统现在有了新的连接下限。
我已经在我的主服务器上添加了一个 pgbouncer 进程,所以我想将连接数从 1500 减少到 100 左右以释放主服务器上的资源,但是当我在主服务器和主服务器上都更改它时从站,新设置对从站不可见:
2020-01-29 14:59:19 dbr5 postgres[47563]: [4-1] 2020-01-29 14:59:19 EST [47563]: [4-1] user=,db=,app=,client= FATAL: hot standby is not possible because max_connections = 100 is a lower setting than on the master server (its value was 1500)
这是换主后的样子:
master=# show max_connections;
max_connections
-----------------
100
(1 row)
为什么奴隶不采用新设置的任何线索?
配置参数在全局设置时永远不会被复制。它们可以被设置
在
postgresql.conf
和
ALTER SYSTEM
在服务器进程启动时使用命令行选项
最后一个选项显然无法复制,前两个使用配置文件也无法复制。
这是一项功能:在某些情况下您可能希望配置参数有所不同(尽管通常不值得称赞)。
您必须更改备用服务器上的参数。
slave 需要知道 master 的 max_connections
设置才能执行此检查,因此 master 通过 WAL 条目将更改通知 slave。
但是,如果从站当前的 max_connections
设置与主站上的 last known 设置不兼容,则从站不会读取任何 WAL 条目。
你应该先重新配置master,给相应的WAL条目一个复制的机会,然后再重新配置slave。
在从机上输入 hot_standby = off
,用新的较低连接数重新启动主机,然后在确认从机已收到更改后通过查看日志中的 FATAL: the database system is starting up
日志条目,然后将其切换回 on
有效。系统现在有了新的连接下限。