Назад | Перейти на главную страницу

доставка журналов postgresql не работает

Есть два сервера. Один - это сервер базы данных на месте; другой - внешний резервный сервер. Поскольку локальный сервер базы данных уже содержит около 900 ГБ данных, резервное копирование очень важно. Изначально мы использовали ежедневный pg_dumpall, но по соображениям производительности это больше не вариант.

Поскольку обновление сервера базы данных, включая обновление самого postgresql (с postgresql 9.1 до 9.4) все равно должно было быть, я решил попробовать перейти на использование доставки WAL на внешний сервер, чтобы резервные копии работали. Вот что я сделал до сих пор:

К сожалению, похоже, что это не работает. Когда я смотрю файл журнала прямо сейчас, я вижу следующее:

2016-07-25 12:30:59 CEST [137390-71] LOG:  record with zero length at 0/2000200
2016-07-25 12:31:04 CEST [137390-72] LOG:  restored log file "000000010000000000000002" from archive
2016-07-25 12:31:04 CEST [137390-73] LOG:  record with zero length at 0/2000200
2016-07-25 12:31:09 CEST [137390-74] LOG:  restored log file "000000010000000000000002" from archive

Это повторяется снова и снова.

Проверка pg_xlog каталог на внешнем сервере показывает, что там есть два файла: один 000000010000000000000002, у которого такая же контрольная сумма, как и у одноименного в /srv/pg_wal; другой ... 03, чего нет.

Мой /srv/pg_wal содержит все сегменты WAL, включая также 000000010000000000000001 (самый первый сегмент, сделанный исходным сервером базы данных). Однако мне кажется, что я не могу загрузить их на сторонний сервер.

Вопрос: могу ли я в данной ситуации каким-то образом заставить внешний сервер принимать эти логи WAL? Если да, как мне действовать?

Технически я мог бы создать новую базовую резервную копию и скопировать ее на новый сервер, но из-за большого количества данных, уже имеющихся на сервере, и низкой пропускной способности между двумя сайтами, я бы предпочел не делать этого, если я могу избежать Это.