Ошибка архивации postgresql 9.0 при настройке репликации «горячего потока» - PullRequest
6 голосов
/ 23 января 2011

Я пытаюсь запустить потоковую репликацию на postgresql 9.0. Я следую инструкциям, указанным в ссылке: http://brandonkonkle.com/blog/2010/oct/20/postgres-9-streaming-replication-and-django-balanc/

Когда я пытаюсь выполнить команду архивирования в postgresql, я получаю предупреждение с просьбой ждать бесконечно. Я выполняю команды в следующем порядке:

SELECT pg_start_backup('base_backup');

cd /var/lib/postgresql/9.0/
sudo tar -cjf ~/postgres-data.tar.bz2 main

SELECT pg_stop_backup();

Для этого я получаю следующий вывод:

NOTICE:  pg_stop_backup cleanup done, waiting for required WAL segments to be archived
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (60 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be cancelled safely, but the database backup will not be usable without all the WAL segments.
WARNING:  pg_stop_backup still waiting for all required WAL segments to be archived (120 seconds elapsed)
HINT:  Check that your archive_command is executing properly.  pg_stop_backup can be cancelled safely, but the database backup will not be usable without all the WAL segments.

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

Ответы [ 4 ]

1 голос
/ 02 февраля 2011

Если вы просто хотите использовать новый SR в pg 9, даже не связывайтесь с архивированием. Сначала у меня тоже были проблемы с этим. Я написал учебное пособие по настройке barebones без архивации, в котором реплицируется ведущий на подчиненное устройство: http://eggie5.com/15-setting-up-pg9-streaming-replication

1 голос
/ 30 августа 2012

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

С уважением.

1 голос
/ 24 января 2011

Вы установили archive_command, как описано в указанной вами ссылке? Правильно ли копировать файлы xlog в безопасное место? Вывод с сервера предполагает, что это не так, и что внутри pg_xlog

создается резерв

Кажется, я помню, что на самом деле вам не нужно включать архивирование на сервере, чтобы использовать его в качестве мастера реплики. Для do необходимо установить wal_level на hot_standby. С этим параметром ваша реплика может подключаться к главному устройству для потоковой передачи записей xlog независимо от традиционного процесса архивирования xlog. Поэтому попробуйте установить archive_mode=off.

edit: читая ссылку более подробно, вам нужно установить archive_mode для создания базовой резервной копии, что имеет смысл. поэтому либо исправьте команду archive, чтобы вы могли правильно выполнить базовое резервное копирование, либо создайте базовое резервное копирование, когда сервер остановлен.

0 голосов
/ 29 августа 2018

Также проверьте, что у вас нет существующих файлов wal, которые archive_command пытается скопировать, что блокирует его от записи файлов wal.

...