Postgresql

增加 WAL 段大小?

  • April 7, 2020

是否可以增加現有 PostgreSQL 11 數據庫中的 WAL 段大小?擁有更大的 WAL 段大小有什麼缺點?

想要從 16 MB 增加它的原因是為了提高使用 WAL-E 時傳輸 WAL 備份的速度。16 MB WAL 文件以大約 20 MB/s 的速度傳輸(在條帶鏡像對中使用 SSD),這對於大於 1 TB 的數據庫大小來說確實很慢。

增加 WAL 段大小後,我們通常是否要更改 和 的min_wal_sizemax_wal_size

乾淨關閉伺服器後,您可以使用 pg_resetwal 更改 wal 段大小。但是,我認為這樣做會使您設置的任何流式副本無效,並在您可能擁有的任何 wal 存檔中創建不連續性,從而強制進行新的基本備份。

我不認為我會自己這樣做。我只是升級到 v12,並創建具有所需大小的新伺服器。當你只能有一個不連續點時,為什麼還要創建兩個不連續點?

增加 WAL 段大小後,我們通常是否要更改 min_wal_size 和 max_wal_size 的值?

min_wal_size 需要至少是新段大小的兩倍,所以如果它還沒有那麼高,你將不得不改變它。除此之外,我認為沒有理由更改它們,除非它們一開始就不是最佳選擇。

initdb您可以在創建新集群時選擇 WAL 段大小。所以你必須轉儲和恢復數據,這意味著停機時間。Jeff Janes 的回答解釋說,這也可以用pg_resetwal.

我能想到的較大 WAL 段大小的唯一缺點是,當文件系統失去時失去的 WAL 量pg_wal會增加。但這是一個小問題,可以使用pg_receivewal.

我想不出改變的理由max_wal_sizemin_wal_size因為不同的 WAL 段大小,但也許wal_buffers與段大小匹配的值會是有益的。

引用自:https://dba.stackexchange.com/questions/264505