我正在尝试在 Postgres 9.1 实例上重新启用 autovacuuming,并在 db 日志中收到此消息:
2013-07-07 14:47:12 CDT WARNING: autovacuum not started because of misconfiguration
2013-07-07 14:47:12 CDT HINT: Enable the "track_counts" option.
看起来很简单。除了这里(相关部分)我的 postgresql.conf 文件:
...
#track_activities = on
track_counts = on
#track_functions = none # none, pl, all
#track_activity_query_size = 1024 # (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'
...
autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
autovacuum_max_workers = 5 # max number of autovacuum subprocesses
# (change requires restart)
#autovacuum_naptime = 1min # time between autovacuum runs
#autovacuum_vacuum_threshold = 50 # min number of row updates before
# vacuum
#autovacuum_analyze_threshold = 50 # min number of row updates before
# analyze
#autovacuum_vacuum_scale_factor = 0.2 # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1 # fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000 # maximum XID age before forced vacuum
# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms # default vacuum cost delay for
# autovacuum, in milliseconds;
# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1 # default vacuum cost limit for
# autovacuum, -1 means use
# vacuum_cost_limit
这是重启后 psql 报告的内容:
mydb=# show autovacuum;
autovacuum
------------
on
(1 row)
mydb=# show track_counts;
track_counts
--------------
off
(1 row)
任何见解都非常感谢!