Есть сервер, на котором когда-то кем-то был настроен postgres дял одной задачи (может даже и я, не помню -) )
Все работало пару лет, никто его не трогал. Понадобилось погасить сервер ненадолго (работы по питанию), подняли, а postgres не поднимается.
Последние записи в логе:
2011-04-14 12:22:41 MSD LOG: получен запрос о быстром останове
2011-04-14 12:22:41 MSD LOG: отмена всех активных транзакций
2011-04-14 12:22:41 MSD LOG: autovacuum launcher shutting down
2011-04-14 12:22:41 MSD LOG: отключение в процессе
2011-04-14 12:22:41 MSD LOG: система отключена
С тех пор запуск не удается и в логах полная тишина.
Даже так:
pg_ctl start -l /tmp/pg.log -w -D /var/lib/pgsql/data/
waiting for server to start...............................................................could not start server
или так:
/usr/bin/postgres -D /var/lib/pgsql/data/
В логе ничего не появляется (ноль байт).
На мгновение в top появляется процесс postgres и всё.
Как эту сволочь диагностировать? Чего ему надо?
Сервер не абы какой важный, но тем не менее, полезный.
Переименовал /var/lib/pgsql/data/ в /var/lib/pgsql/data1/, запустилось, но, естественно, голое. Как мне теперь вернуть одну из быз в эту пустую конфигурацию?
Ежели запустилось с голыми базами — значит скорее всего обновляли таки постгресс. Нужно откатится до той версии, в которой была создана база (PG_VERSION в папке data). И либо использовать ее, либо сделать дамп, обновиться, залить дамп.
Не обновлял. Этот сервер два года никто не трогал вообще, даже не перезагружали.
В общем, помог голый конфиг. Старый был напичкан доп. опциями для оптимизации, видимо, какая-то последняя правка и вызвала глюк, но в прошлый раз человек не перезапустил postgres после внесения правок.