Не работает непрерывное архивирование и восстановление

Добрый день!

Не получается настроить восстановление на резервном сервере. Вроде всё делаю по инструкции.
Версия постгрес 9.1, ось Ubuntu 12.04

НА МАСТЕРЕ:

1. Включаю режим архивирования.
2. Получаю архив кластера и wal-файлы, которые образовались в архивном каталоге /var/lib/postgresql/archive после включения режима архивации.

psql -c "select pg_start_backup('hot_backup');"
tar -cf /var/lib/postgresql/backup.tar /var/lib/postgresql/9.1/
psql -c "select pg_stop_backup();"
tar -rf /var/lib/postgresql/backup.tar /var/lib/postgresql/archive/

НА СЛЕЙВЕ

1. Создаю с нуля резервный сервер, ставлю postgresql 9.1
2. Останавливаю postgres.
3. Сношу каталог кластера - удаляю ВСЁ что есть в каталоге /var/lib/postgresql/9.1/main и копирую туда содержимое с мастера. Назначаю нужные права файлам (postgres). Пробую стартовать сервер - успешно. Останавливаю и продолжаю.
4. Создаю папку для wal-файлов /var/lib/postgresql/9.1/wals и копирую туда файлы журнала из архивного каталога. Назначаю нужные права.
5. Создаю файл recovery.conf:

standby_mode = 'on'
restore_command = 'cp /var/lib/postgresql/9.1/wals/%f %p'
archive_cleanup_command = 'pg_archivecleanup /var/lib/postgresql/9.1/wals %r'

6. Стартую postgres, получаю вывод:
* Starting PostgreSQL 9.1 DATABASE server                                                                                                                      * The PostgreSQL server failed TO start. Please CHECK the log output:
2014-11-12 20:47:40 YEKT ОТМЕТКА:  система БД была выключена в процесса восстановления: 2014-11-12 20:47:17 YEKT
2014-11-12 20:47:40 YEKT ОТМЕТКА:  переход в режим резервного сервера
2014-11-12 20:47:40 YEKT ОТМЕТКА:  файл журнала "00000001000000000000008D" восстановлен из архива
2014-11-12 20:47:40 YEKT ОТМЕТКА:  запись нулевой длины по смещению 0/8D00018C
2014-11-12 20:47:40 YEKT ОТМЕТКА:  файл журнала "00000001000000000000008D" восстановлен из архива
2014-11-12 20:47:40 YEKT ОТМЕТКА:  запись нулевой длины по смещению 0/8D00018C
2014-11-12 20:47:40 YEKT ОТМЕТКА:  неполный стартовый пакет
2014-11-12 20:47:41 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:41 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:42 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:42 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:43 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:43 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:44 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:44 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:45 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:45 YEKT ОТМЕТКА:  файл журнала "00000001000000000000008D" восстановлен из архива
2014-11-12 20:47:45 YEKT ОТМЕТКА:  запись нулевой длины по смещению 0/8D00018C
2014-11-12 20:47:45 YEKT ВАЖНО:  система баз данных запускается
2014-11-12 20:47:46 YEKT ВАЖНО:  система баз данных запускается           [fail]

Сервер начинает запускаться, и никак не запускается. В логе postgres зациклены 2 записи:
2014-11-12 21:14:26 YEKT ОТМЕТКА:  файл журнала "00000001000000000000008D" восстановлен из архива
2014-11-12 21:14:26 YEKT ОТМЕТКА:  запись нулевой длины по смещению 0/8D00018C

Где копать?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Я так навскидку могу только

Я так навскидку могу только предположить, что проблема в фйле журнала где запись нулевой длины. Возможно файл как-то неправильно сформирован. Интересно, он не последний случайно?

Да, последний. Вообще я эту

Да, последний.
Вообще я эту процедуру выполнял с нуля 3 раза подряд. И безуспешно. Сервер запускается, если нет файла recovery.conf, но с файлом не хочет. Вот результат после третьей попытки:

 * Starting PostgreSQL 9.1 DATABASE server                                                                                                                      * The PostgreSQL server failed TO start. Please CHECK the log output:
2014-11-13 21:25:54 YEKT ОТМЕТКА:  система БД была выключена: 2014-11-13 21:25:40 YEKT
2014-11-13 21:25:54 YEKT ОТМЕТКА:  переход в режим резервного сервера
2014-11-13 21:25:54 YEKT ОТМЕТКА:  неполный стартовый пакет
2014-11-13 21:25:54 YEKT ОТМЕТКА:  файл журнала "000000010000000000000092" восстановлен из архива
2014-11-13 21:25:54 YEKT ОТМЕТКА:  неожиданный pageaddr 0/8A000000 в файле журнала 0, сегмент 146, смещение 0
2014-11-13 21:25:54 YEKT ПРЕДУПРЕЖДЕНИЕ:  WAL был создан с параметром wal_level=minimal, возможна потеря данных
2014-11-13 21:25:54 YEKT ПОДСКАЗКА:  Это происходит, если вы на время установили wal_level=minimal и не сделали резервную копию базу данных.
2014-11-13 21:25:54 YEKT ОТМЕТКА:  согласованное состояние восстановления достигнуто по смещению 0/920002CC
2014-11-13 21:25:54 YEKT ОТМЕТКА:  запись нулевой длины по смещению 0/920002CC
2014-11-13 21:25:54 YEKT ОТМЕТКА:  файл журнала "000000010000000000000092" восстановлен из архива
2014-11-13 21:25:54 YEKT ОТМЕТКА:  неожиданный pageaddr 0/8A000000 в файле журнала 0, сегмент 146, смещение 0
2014-11-13 21:25:54 YEKT ОТМЕТКА:  файл журнала "000000010000000000000092" восстановлен из архива
2014-11-13 21:25:54 YEKT ОТМЕТКА:  неожиданный pageaddr 0/8A000000 в файле журнала 0, сегмент 146, смещение 0
2014-11-13 21:25:54 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:55 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:55 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:56 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:56 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:57 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:58 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:58 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:59 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:59 YEKT ВАЖНО:  система баз данных запускается
2014-11-13 21:25:59 YEKT ОТМЕТКА:  файл журнала "000000010000000000000092" восстановлен из архива
2014-11-13 21:25:59 YEKT ОТМЕТКА:  неожиданный pageaddr 0/8A000000 в файле журнала 0, сегмент 146, смещение 0
2014-11-13 21:26:00 YEKT ВАЖНО:  система баз данных запускается

Всё делаю строго по инструкции с этого сайта (спасибо переводчику, перевод очень качественный). Уже 2 дня бьюсь...

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023