Так получилось, что База Данных неудачно перезагрузилась, неожиданно закончилось место на диске или последний сегмент не смог записаться на диск, не запускается 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 восстановление базы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.