Столкнулся как с проблемой что не стартует postgresql ругаясь на отсутствуе одного из файлов в директории pg_xlog. Как выяснилось, человек отвечающий за сервер отреагировал на сообщения nagios о заканчивающемся свободном месте и выяснив кто его "поедает", удалил несколько файлов из каталога pg_xlog. Оживить сервер postgresql получилось следующими шагами:
1) Останавливаем postgresql
/etc/init.d/postgresql-8.4 stop
2) Выполняем команду pg_controldata указывая путь до базы postgresql
/usr/lib/postgresql-8.4/bin/pg_controldata /opt/backup/postgresql/8.4/data/
нас интересуют строчки:
Latest checkpoint's NextXID: 0/1186399159
Latest checkpoint's NextOID: 4716704
3) Выполняем команду pg_resetxlog коророй указываем NextOID и NextXID (команда выполняется из под пользователя postgres)
/usr/lib/postgresql-8.4/bin/pg_resetxlog -o 4716704 -x 1186399159 -f /opt/backup/postgresql/8.4/data/
4) Запускаем postgresql
/etc/init.d/postgresql-8.4 start
После выполнения этих шагов очистился каталог pg_xlog освободив около 90ГБ