2013-07-08 7 views
1

Я пытаюсь повторно включить autovacuuming на экземпляре Postgres 9.1, и я получать это в журнале БД:Postgres автовакууминг не запускается из-за неправильной

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) 

Любое понимание высоко ценится!

+0

Возможно, сборщик статистики не работает. Нет ли других сообщений при запуске? –

+0

Может быть, вторая копия параметра 'track_counts' где-нибудь в файле? Вы пытались прокомментировать параметр 'track_counts' (по умолчанию он включен). Вы также можете действительно подтвердить, что редактируете правильный файл, запустив 'select setting from pg_settings, где name = 'config_file'' –

ответ

1

Перезагрузите файл postgresql.conf после внесения изменений? Например, в качестве суперпользователя ("Postgres")

select pg_reload_conf(); 
+0

Фактически перезапустили базу данных. – Forelight

+0

Вы отредактировали правильный файл postgresql.conf? Есть ли другие сообщения вокруг сообщения об ошибке, которые могут дать ключ? Я лично не видел эту ошибку раньше, но то, что вы указали в своем postgresql.conf, выглядит мне хорошо. – bma

+0

Боюсь, что так. В этой системе есть только один экземпляр, и если я прокомментирую autovacuum param, ошибка исчезнет. – Forelight

1

Дважды проверьте журнал. Перед линией, которую вы указали, вы получаете следующие строки:

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

Если это так, сначала решить эту проблему. То, что вы, скорее всего, нужно сделать, чтобы решить, что это добавить запись, как это ваш/и т.д./файл хостов:

127.0.0.1 локальный

Это вполне может быть так, что в данный момент файла присваивает Localhost на IPv6, с линией, как это:

:: 1 локальный ipv6-локальный ipv6-петлевой

Если это так, то вам также нужно изменить эту строку:

:: 1 ipv6 -localhost ipv6-loopback