PostgreSQL之wal_keep_segments参数

wal_keep_segments参数用于设定pg_wal目录中保留的最小wal文件数量,以保证备用服务器流复制的需求。当备用服务器滞后超过设置值时,可能会导致复制连接中断。在PostgreSQL 13.0中,此参数更名为了wal_keep_size,允许指定WAL的大小而非文件数,反映系统对WAL归档和checkpoint的需要。了解这一参数对于优化数据库备份和恢复策略至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

wal_keep_segments:用于指定pg_wal目录中保存的过去的wal文件(wal 段)的最小数量,以防备用服务器在进行流复制时需要。

(参数解释见:https://postgresqlco.nf/doc/zh/param/wal_keep_segments/)

每个wal文件通常为16兆字节。如果连接到发送服务器的备用服务器滞后超过wal_keep_segment个文件,发送服务器可能会删除备用服务器仍然需要的WAL段,在这种情况下流复制连接将被终止。因此,下游连接最终也会失败。(但是,如果使用了WAL归档,备用服务器可以通过从归档中获取段来恢复。)

 

前面说到,wal_keep_segments这只设置了pg_wal中保留的最小数目;  WHY?

因为系统可能需要为WAL归档或者checkpoint(wal_keep_size)保留更多的段。如果wal_keep_segments为0(默认值),系统不会备用服务器流复制保留任何额外的段,所以备用服务器可用的旧WAL段的数量取决于前一个检查点的位置和WAL归档状态。

注意:postgresql 13.0中,将wal_keep_segments重命名为wal_keep_size,让用户指定WAL大小,而不是WAL文件个数。在PG内核不断演进的过程中,PostgreSQL开发者在逐渐弱化wal段数量(wal文件个数)的概念,并强调wal的size,之前就有checkpoint_segments改变为max_wal_si

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值