Я пытаюсь создать реплику горячего резервирования для мастера PostgreSQL 9.5.
Основной процесс, который я использовал, - это запустить резервное копирование на главном сервере:
SELECT pg_start_backup('label', true)
Затем на ведомом устройстве я запускаю pg_basebackup:
pg_basebackup -h <master ip> -D /data/pgsql/9.5/data -U replicator -v -P --xlog-method=stream
По завершении я выполняю команду, чтобы остановить резервное копирование на главном сервере:
SELECT pg_stop_backup()
На этом этапе я получил в STDOUT следующее:
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 canceled safely, but the database backup will not be usable without all the WAL segments.
Это продолжается и не выходит.
Команда архивирования на главном устройстве установлена на:
rsync -a %p <replica ip>:/data/wal-archive/%f
Изначально это не работало, так как необходимо было принять ключ сервера. Как только я сделал это вручную, запустился rsync, и я увидел большое скопление файлов (пока ~ 15 ГБ) в / data / wal-archive.
Это БД на 20 ТБ, поэтому я действительно не хочу снова начинать этот процесс, что-то испортило.
Безопасно ли просто выйти из терминала, выдав ПРЕДУПРЕЖДЕНИЯ? Я читал в других сообщениях, что archive_mode должен быть включен только во время процесса потоковой передачи БД в реплику для целей настройки реплики, и кроме того, это не требуется.
В таком случае могу я просто нажать CTRL-C на терминале и приступить к настройке реплики?
Могу ли я затем отключить archive_mode на мастере?
Да, CTRL-C безопасно вне pg_stop_backup ().
Создание файлов в каталоге / data / wal_archive происходит из команды archive_command на главном устройстве.
После запуска службы postgres на ведомом устройстве эти «журналы» потребляются (т. Е. Записываются в базу данных на ведомом устройстве), а затем удаляются.