Так получилось, что База Данных неудачно перезагрузилась, неожиданно закончилось место на диске или последний сегмент не смог записаться на диск, не запускается Postgresql.
Восстановление PostgreSQL после повреждения файлов XLOG.
По логами видим сообщения:
(18777)2017-04-04 09:36:11 MSK:LOG: database system shutdown was interrupted; last known up at 2017-03-30 11:43:56 MSK (18777)2017-04-04 09:36:11 MSK:LOG: could not open file "pg_xlog/000000010000005100000028" (log file 81, segment 40): No such file or directory (18777)2017-04-04 09:36:11 MSK:LOG: invalid primary checkpoint record (18777)2017-04-04 09:36:11 MSK:LOG: could not open file "pg_xlog/000000010000005100000028" (log file 81, segment 40): No such file or directory (18777)2017-04-04 09:36:11 MSK:LOG: invalid secondary checkpoint record (18777)2017-04-04 09:36:11 MSK:PANIC: could not locate a valid checkpoint record (18754)2017-04-04 09:36:11 MSK:LOG: startup process (PID 18777) was terminated by signal 6: Aborted (18754)2017-04-04 09:36:11 MSK:LOG: aborting startup due to startup process failure
Смотрим pg_controldata /var/lib/pgsql/data (каталог с установленным postgresql)
Интересует:
Latest checkpoint’s NextXID: 0/690
Latest checkpoint’s NextOID: 74741
затем, от имени пользователя, с которого запускается сервис postgresql выполняем команду:
su postgres pg_resetxlog -o 74741 -x 690 -f /var/lib/pgsql/data
подставляем свои значения согласно pg_resetxlog -o [NextOID] -x [NextXID] [путь до Базы Данных].
Таким образом мы сделали postgresql восстановление базы.