pg12 新特性,max_wal_senders 從 max_connections 分離

瀚高PG實驗室發表於2022-06-17

瀚高資料庫
目錄
文件用途
詳細資訊
相關文件

pg12 新特性,max_wal_senders 從 max_connections 分離

詳細資訊

  1. 官方文件說明
[官方文件]()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 = 3superuser_reserved_connections = 0max_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 = 3superuser_reserved_connections = 0max_wal_senders = 2

連線兩個會話,佔用兩個連線。

之後在資料庫主機上執行 pg_basebackup 命令備份資料庫,如下:

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

備份正常,驗證了 12 版本 max_wal_senders 引數不受 max_connections 引數影響。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2901290/,如需轉載,請註明出處,否則將追究法律責任。

相關文章