1

我正在尝试在 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)

任何见解都非常感谢!

4

2 回答 2

2

仔细检查日志。在您列出的行之前,您是否得到以下行:

LOG:  could not bind socket for statistics collector: Cannot assign requested address
LOG:  disabling statistics collector for lack of working socket

如果是这种情况,请先解决该问题。您最可能需要做的是在 /etc/hosts 文件中添加这样的条目:

127.0.0.1 本地主机

很可能是文件当前将 localhost 分配给 IPv6,如下所示:

::1 localhost ipv6-localhost ipv6-loopback

如果是这种情况,您还需要将该行更改为:

::1 ipv6-localhost ipv6-loopback

于 2014-11-26T16:53:33.463 回答
1

进行更改后是否重新加载了 postgresql.conf 文件?例如,作为超级用户(“postgres”)

select pg_reload_conf();
于 2013-07-08T18:18:54.783 回答