我有几个 postgres 8.3 数据库,它们显示出缺乏清理的症状。
我检查了配置,它们处于默认状态,即自动清理程序已打开。此外,当我启动数据库时,我在 postgres 日志中看到“自动清理程序已启动”。
问题是,我实际上从未看到过真空吸尘器在运行。我也从未在日志中看到过有关真空吸尘器运行的任何信息(我应该看到什么吗?)
那么我如何知道吸尘器是否在工作呢?例如,有没有办法查看上次吸尘完成的时间?更好的是,有人能给我提供一些文档来回答这个问题吗?
谢谢!
答案1
pg_stat_user_tables 有列last_autovacuum和last_autoanalyze。每当它执行某项操作时,它们都会被更新。
答案2
答案3
Google 是你的朋友,而 www.postgresql.org 更棒:
log_autovacuum_min_duration (整数)
如果自动清理执行的每个操作至少运行了指定的毫秒数,则记录该操作。将其设置为零将记录所有自动清理操作。减一(默认值)将禁用记录自动清理操作。例如,如果将其设置为 250ms,则将记录所有运行 250ms 或更长时间的自动清理和分析。启用此参数有助于跟踪自动清理活动。此设置只能在 postgresql.conf 文件或服务器命令行中设置。