pg12新特性-max_wal_senders从max_connections分离

PostgreSQL 12 中,max_wal_senders 参数从 max_connections 中分离出来,不再受限于 max_connections。这解决了在 pg11 中因 max_wal_senders 连接数占用导致的备份或流复制问题。在 pg12 中,即使 max_connections 达到上限,max_wal_senders 仍能独立控制,确保数据库备份如 pg_basebackup 可正常进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

瀚高数据库
目录
文档用途
详细信息
相关文档

pg12新特性,max_wal_senders从max_connections分离

详细信息

  1. 官方文档说明
[官方文档](https://www.postgresql.org/docs/12/release-12.html)

Make max_wal_senders not count as part of max_connections (Alexander Kukushkin)
  1. 参数说明

max_connections-数据库实例允许的最大并发连接数
max_wal_senders-通过 pg_basebackup 备份或流复制备库和主库同步占用主库的最大并发连接数
superuser_reserved_connections-给超级用户预留连接数

max_wal_senders和superuser_reserved_connections需要的连接数都从max_connections中来。受max_connections限制。当连接数占满时,使用max_wal_senders连接的流复制、逻辑复制、数据库备份(pg_basebackup)都会收到影响。
从pg12开始,max_wal_senders从max_connections分离出来,不再受max_connections限制,可单独控制,因此很好解决了上面的问题。

  1. 示例

  2. pg11

设置 postgresql.conf 参数,如下:

max_connections = 3
superuser_reserved_connections = 0
max_wal_senders = 2

连接两个会话,占用两个连接。

之后在数据库主机上执行 pg_basebackup 命令备份数据库,如下:

$ pg_basebackup -D backup -Ft -P
pg_basebackup: could not connect to server: FATAL: sorry, too many clients already

pg_basebackup 命令消耗的是 max_wal_senders 设置的连接数,max_wal_senders 连接数是 max_connections 的子集,由于pg_basebackup 备份数据库需占用两个连接,因此以上报连接数不足。

  1. Pg12

设置 postgresql.conf 参数,如下:

max_connections = 3
superuser_reserved_connections = 0
max_wal_senders = 2

连接两个会话,占用两个连接。

之后在数据库主机上执行 pg_basebackup 命令备份数据库,如下:

$ pg_basebackup -D backup -Ft -P
3963845/3963845 kB (100%), 1/1 tablespace

备份正常,验证了 12 版本 max_wal_senders 参数不受 max_connections 参数影响。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值