Postgresql

Postgresql 13 更改 WAL 段大小

  • May 19, 2021

在我的 Ubuntu 20 伺服器上,我使用 apt 管理器安裝了 PostgreSQL 13。我讀了一些關於 PostgreSQL 性能調整的文章

$$ 1 $$並考慮增加 WAL 段大小(預設為 16MB)。我看到以下說明,但是,我不知道在哪裡執行它。 initdb -D ./data --wal-segment=1024

我猜文件是指從 PostgreSQL 原始碼安裝,我不打算這樣做。如何更改 WAL 段大小?

$$ 1 $$ https://software.intel.com/content/dam/develop/external/us/en/documents/Open-Source-Database-Tuning-Guide-on-3rd-Generation-Intel-Xeon-Scalable-Processors.pdf


按照丹尼爾的回答,我做了以下步驟

$ pg_lsclusters
$ sudo pg_dropcluster --stop 13 main
$ sudo pg_createcluster 13 main -- --wal-segsize=256
$ sudo pg_ctlcluster 13 main start

您可以將 WAL 段的大小驗證為

# du -hcs /var/lib/postgresql/13/main/pg_wal/*

Postgres 的 Ubuntu/Debian 軟體包在其之上有自己的層,initdb用於pg_ctl控制多個實例以及與 systemd 的集成。

可用於在 Debian/Ubuntu 中創建具有特定選項的實例的命令是:

pg_createcluster [options] version name [-- initdb options]

用於pg_lsclusters查看已存在集群的列表。可能您想刪除main使用您不想要的預設段大小命名的現有預設集群,以便擁有一個具有所需 wal 段大小的 Postgres 實例。

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