我如何知道 postgres 8.3 中的自动清理器是否真的在运行?

我如何知道 postgres 8.3 中的自动清理器是否真的在运行?

我有几个 postgres 8.3 数据库,它们显示出缺乏清理的症状。

我检查了配置,它们处于默认状态,即自动清理程序已打开。此外,当我启动数据库时,我在 postgres 日志中看到“自动清理程序已启动”。

问题是,我实际上从未看到过真空吸尘器在运行。我也从未在日志中看到过有关真空吸尘器运行的任何信息(我应该看到什么吗?)

那么我如何知道吸尘器是否在工作呢?例如,有没有办法查看上次吸尘完成的时间?更好的是,有人能给我提供一些文档来回答这个问题吗?

谢谢!

答案1

pg_stat_user_tables 有列last_autovacuumlast_autoanalyze。每当它执行某项操作时,它们都会被更新。

答案2

从更高的层次来看,页面快照是你的朋友 ;-)

以下是一个例子上次真空报告

答案3

Google 是你的朋友,而 www.postgresql.org 更棒:

18.9. 自动清理

log_autovacuum_min_duration (整数)

如果自动清理执行的每个操作至少运行了指定的毫秒数,则记录该操作。将其设置为零将记录所有自动清理操作。减一(默认值)将禁用记录自动清理操作。例如,如果将其设置为 250ms,则将记录所有运行 250ms 或更长时间的自动清理和分析。启用此参数有助于跟踪自动清理活动。此设置只能在 postgresql.conf 文件或服务器命令行中设置。

相关内容