首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgres max_wal_size和wal_keep_size参数

Postgres max_wal_size和wal_keep_size参数
EN

Database Administration用户
提问于 2022-09-23 03:27:15
回答 1查看 2.3K关注 0票数 1

我正在建立Postgres v14数据库。我有一个与max_wal_sizewal_keep_size参数相关的问题。

根据文件:

max_wal_size⇒最大大小,以便在自动检查点期间使WAL增长。这是一个软限制;在特殊情况下,例如重负载、失败的max_wal_size或高wal_keep_size设置,WAL大小可以超过D5

wal_keep_size⇒指定保存在pg_wal目录中的过去日志文件段的最小大小,以防备用服务器需要获取它们以进行流复制。

如果wal_keep_size的值大于max_wal_size的值,并且备用服务器的复制速度比wal_keep_size慢,那么会发生什么?在主目录上,wal_keep_size值将保留在WAL目录中。但是由于WAL文件的大小超过了max_wal_size,检查点会继续运行直到小于max_wal_size的大小吗?

EN

回答 1

Database Administration用户

发布于 2022-09-23 05:33:38

就这些参数而言,待机侧的行为或滞后不影响主服务器的行为。如果备用设备落后于wal_keep_size,那么它就死了,但是主要用户并不在意。

此外,检查点的持续时间并不影响删除多少WAL段。检查点将某个日志序列号(LSN)之前的所有数据修改刷新到磁盘。检查点可以由max_wal_size触发,但它的持续时间并不直接取决于有多少WAL。

检查点和WAL大小之间有联系,但只有在检查点完成时才起作用。此时,PostgreSQL删除或回收不再需要的WAL段。回收的WAL片段的数量取决于考虑到最近编写的WAL的数量的启发式方法,唯一重要的关注是必须至少有WAL片段的min_wal_size值才能供将来使用。max_wal_size在这里根本不起作用。

max_wal_size是最被误解的PostgreSQL参数之一。由于明显的原因,人们认为这是WAL的一种尺寸限制。在现实中,它只在检查站开始时管理。当然,WAL会在检查点的末尾被删除,所以会有到WAL大小的连接,但这有点巧合。

wal_keep_size根本没有涉及到这一点。检查点不是由pg_wal的大小触发的,而是由上一个检查点以来写入的WAL数量触发的。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/317265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档