如何判断Postgres 9.x中的 autovacuum守护程序是否正在运行并维护数据库集群?

最佳答案

PostgreSQL 9.3

确定自动真空是否正在运行

这特定于UNIX上的Postgres 9.3。
对于Windows,请参阅此question

查询Postgres系统表

SELECT
  schemaname, relname,
  last_vacuum, last_autovacuum,
  vacuum_count, autovacuum_count  -- not available on 9.0 and earlier
FROM pg_stat_user_tables;

Grep系统进程状态
$ ps -axww | grep autovacuum
24352 ??  Ss      1:05.33 postgres: autovacuum launcher process  (postgres)

Grep Postgres日志
# grep autovacuum /var/log/postgresql
LOG:  autovacuum launcher started
LOG:  autovacuum launcher shutting down

如果您想了解更多有关自动真空 Activity 的信息,请将log_min_messages设置为DEBUG1..DEBUG5。 SQL命令VACUUM VERBOSE将在日志级别INFO输出信息。

关于Autovacuum守护程序,Posgres文档指出:



也可以看看:
  • http://www.postgresql.org/docs/current/static/routine-vacuuming.html
  • http://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html
  • 08-17 15:03