【发布时间】:2017-11-20 08:44:08
【问题描述】:
我正在尝试了解我在 PostgreSQL 环境中的 wals 行为。我的 wal 设置是:
wal_keep_segments = 200
max_wal_size = 3GB
min_wal_size = 80MB
archive_command = 'cp %p /PostgreSQL-wal/9.6/pg_xlog/wal_archives/%f'
archive_timeout = 10
#checkpoint_flush_after = 256kB
#checkpoint_completion_target = 0.5
我的 wals 目录是 /PostgreSQL-wal/9.6/pg_xlog/,我的档案目录是 PostgreSQL-wal/9.6/pg_xlog/wal_archives。昨晚我的 wals 目录存储已满(存档目录也是因为它们在同一个文件系统上)。
我的 wals 目录中现在有 211 个 wals:
ls -l /PostgreSQL-wal/9.6/pg_xlog/ | wc -l
212
唯一在夜间运行的只是从我们的监控代理中选择的。我猜想 wal 是因为 archive_timeout 非常低而创建的,而它们被删除是因为 wal_keep_segments 高。
今天早上,我将 wal_keep_segments 设置为 100,并将 archive_timeout 设置为 6 分钟。现在,在设置这些设置并启动集群 wals 开关后工作正常,我没有看到创建了很多 wals。但是,不应该自动删除旧的wals吗?我可以安全地删除档案吗?
【问题讨论】:
标签: postgresql wal