由于主从复制的需要,在 PostgreSQL 中从库(slave)的 max_connections 参数值需要大于或等于主库(master)。因此,您可能会因为只读实例和主实例配置的原因导致主实例的 max_connections 参数值无法设置为其规格允许的最大值。此时您可以通过启用 soft_limit_connections 参数的方式来解决这个问题。下面将详细为您描述。
说明:
当 soft_limit_connections 参数修改为非-1时,实例的连接数将被该参数控制,如您的云数据库 PostgreSQL 实例不存在任何限制,建议您不修改该参数。
假如您现在有一个主实例和两个只读实例,配置分别如下:
|
主实例 | 8核48GB内存100GB磁盘 | 4500 |
只读实例 | 1核2GB内存100GB磁盘 | 2048 |
只读实例 | 1核2GB内存100GB磁盘 | 2048 |
如果您需要将主实例的连接数调整至4000,则您可以进行如下操作:
1. 修改所有只读实例的 soft_limit_connections
您可以修改只读实例的 soft_limit_connections 参数为非-1的值,则只读实例的连接数将由 soft_limit_connections 参数控制。修改该参数不需要重启。您可以在参数设置中搜索 soft_limit_connections 进行修改。如下图所示:
2. 修改所有只读实例的 max_connections
您在修改了只读实例的 soft_limit_connections 参数为非-1之后,只读实例的 max_connections 参数的最大值限制将跟主实例保持一致。由于从库(slave)的 max_connections 参数值需要大于或等于主库(master),因此,如果您需要调整主实例的 max_connections ,您可以先调整只读实例的 max_connections,为稍后调整主实例的 max_connections 做准备。您可以在参数设置中搜索 max_connections 进行修改。如下图所示:
3. 修改主实例的 max_connections
如果所有只读实例的 max_connections 已经调整,此时,您如果想将主实例的连接数限制调整的更高,您可以直接修改主实例的 max_connections 参数。您可以在参数设置中搜索 max_connections 进行修改。如下图所示:
自此,您主实例的最大连接数已经调整完毕,且不受只读实例规格的限制。
如果您不再需要使用参数 soft_limit_connections 来控制只读实例的连接数,您可以使用如下步骤来关闭该参数的设置。
修改主实例的参数 max_connections 为 2048
修改所有只读实例的参数 max_connections 为 2048
修改所有只读实例的参数 soft_limit_connections 为-1
本页内容是否解决了您的问题?