DBE*_*ast 7 postgresql write-ahead-logging
我们max_wal_size
最近将其设置为 24 GB(默认为 1 GB),进行了一些测试,然后将其设置为 12 GB,然后重新启动服务器。当我在文件系统上查询 WAL 的大小(pg_xlog
目录中文件的总大小)时,它仍然显示为大约 20 GB。我已经发布了一个手动检查点并重新启动了服务器,但 WAL 并没有缩小到 12 GB。这是一个非常简单的实现——没有复制或存档,也不存在长时间运行的事务。我误解了这应该如何工作吗?当您降低max_wal_size
值并完成所有事务并且服务器重新启动时,它是否不会删除旧的 WAL 文件?
Postgres 版本:9.6.15
操作系统:Linux Ubuntu 16.04.6 LTS
设置:
max_wal_size = 12GB
min_wal_size = 80MB
wal_keep_segments = 0
checkpoint_timeout = 15 分钟
checkpoint_completion_target = 0.87
wal_compression = 关闭
存档模式 = 关闭
wal_level = 最小
它查看“max_wal_size”来决定是否应该回收或删除由刚刚完成的检查点释放的 WAL。但是,当“max_wal_size”降低时,在先前检查点中已经回收(重命名以期待未来重用)的 WAL 文件在“max_wal_size”较高时不会被删除。当它们被重用然后被删除(而不是再次回收)时,它们最终会以自己的方式离开系统。
如果您不能等待这种情况发生,您将不得不手动删除它们,这是一件相当危险的事情——如果您搞砸了,您将破坏您的数据库。
归档时间: |
|
查看次数: |
492 次 |
最近记录: |