在我的 Ubuntu 20 服务器上,我使用 apt 管理器安装了 PostgreSQL 13。我阅读了一些关于 PostgreSQL [1] 性能调整的文章,并考虑增加 WAL 段大小(默认为 16MB)。我看到以下说明,但是,我不知道在哪里运行它。
initdb -D ./data --wal-segment=1024
我猜文档是指从 PostgreSQL 源代码安装,我不打算这样做。如何更改 WAL 段大小?
按照丹尼尔的回答,我做了以下步骤
$ 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/*
如果要更改现有集群的 WAL 段大小,可以使用
pg_resetwal
.警告:为此,
pg_resetwal
仅在已完全关闭的集群上运行。在崩溃的集群上运行pg_resetwal
会导致潜在的数据丢失。该命令看起来有点像这样:
min_wal_size
如果增加 WAL 段大小,您可能需要增加。Postgres 的 Ubuntu/Debian 软件包在其之上有自己的层,
initdb
用于pg_ctl
控制多个实例以及与 systemd 的集成。可用于在 Debian/Ubuntu 中创建具有特定选项的实例的命令是:
用于
pg_lsclusters
查看已存在集群的列表。可能您想删除main
使用您不想要的默认段大小命名的现有默认集群,以便拥有一个具有所需 wal 段大小的 Postgres 实例。