Autovacuum не работает на картридже Openshift Online Postgres

У меня Postgres 9.2 на моем картридже Openshift Online. Используя Pgadmin3, я включил (установив флажок) параметр автоматического вакуума для postgresql.conf. Тем не менее, автовакуум, похоже, не работает.

Вот что у меня есть:

  1. ps -ef | grep -i vacuumАвтовакуумный процесс не показан.

  2. Используя консоль PSQL, show autovacuumговорит, что его значение включено

  3. Используя консоль PSQL, SELECT schemaname, relname, last_vacuum, last_autovacuum from FROM pg_stat_user_tables; не дает значения в столбцах last_vacuum и last_autovacuum, хотя я сделал ручной вакуум через функцию Maintenance с помощью pgadmin3.

  4. Вкладка свойств на БД в pgAdminIII говорит, что значение AUTOVACUUM 'не работает'

Что мне не хватает?

РЕДАКТИРОВАТЬ
Я также не могу получить доступ к postgresql.conf в Openshift Online при попытке найти файл на сервере - в надежде отредактировать файл вручную вместо использования pgAdminIII.
- нашел это https://www.openshift.com/forums/openshift/how-do-i-set-maxpreparedtransactions-on-my-postgresql-cartridge Теперь я могу просматривать / редактировать свой postgresql.conf. По всей видимости, автовакуум уже включен, поэтому настройка conf имеет правильную настройку.

Когда проблема pg_ctl restart -m fast я получил

LOG:  could not bind socket for statistics collector: Permission denied 
LOG:  trying another address for the statistics collector 
LOG:  could not bind socket for statistics collector: Permission denied 
LOG: trying another address for the statistics collector 
LOG:  could not bind socket for statistics collector: Cannot assign requested address LOG:  trying another address for the statistics collector 
LOG:  could not bind socket for statistics collector: Cannot assign requested address LOG:  disabling statistics collector for lack of working socket 
WARNING:  autovacuum not started because of misconfiguration 
HINT:  Enable the "track_counts" option. 
LOG:  database system was shut down at 2014-04-22 09:58:19 GMT 
LOG:  database system is ready to accept connections

Хоть track_counts уже включен в postgresql.conf

Извините за глупость, но любая помощь или указатели очень ценятся. Заранее спасибо.

2 ответа

Я столкнулся с подобной проблемой и нашел полезный совет в этой дискуссии:

... по какой-то безумной причине openshit отключил localhost, а autovacuum подключается только к localhost, я думаю, что имеет смысл, что они не захотят пытаться очистить удаленную базу данных... но openshit нарушает autovacuum.

Одно решение, которое я нашел (и которое я, вероятно, буду использовать), состоит в том, чтобы вручную добавить cronjob, который создает принудительный вакуум. Вот пакетный скрипт, который выглядит многообещающе, но будьте осторожны с побочными эффектами, которые может вызвать принудительный вакуум (конечно, в зависимости от вашего приложения).

Исправление postgres для использования OPENSHIFT_PG_HOST переменная среды вместо localhost кажется, чтобы решить проблему: pgstat.patch.

Другие вопросы по тегам