Утилита резервного копирования pg_probackup
Начиная с версии 8.1.0 утилитаpg_probackup нежелательна к использованию (считается deprecated). Рекомендуется перейти на использование утилиты CopyWala.
Поддержка утилиты будет прекращена c версии 9.x.x.
Описание
pg_probackup — это утилита для управления резервным копированием и восстановлением кластеров баз данных. Она предназначена для выполнения периодических резервных копий экземпляра, что позволяет восстановить сервер в случае сбоя.
Утилита pg_probackup поставляется в пакете компонента Pangolin Backup Tools в рамках дистрибутива продукта.
При включенном TDE выполнение резервного копирования с клиентского хоста требует дополнительной подготовки. На клиентском хосте должен быть обеспечен доступ к ключам кодирования и связанным параметрам, например через подключение к KMS-серверу или с помощью KMS-заменителя. Без такой подготовки использование pg_probackup на клиентском хосте невозможно.
Возможности
pg_probackup предоставляет ряд возможностей, упрощающих построение стратегий резервного копирования и работу с большими объемами данных:
Возможность | Описание |
|---|---|
Инкрементное копирование | Резервное копирование на уровне страниц, позволяющее экономить дисковое пространство и ускорять процессы резервирования и восстановления. Поддерживаются три режима, что позволяет подобрать стратегию под характер изменений данных |
Инкрементное восстановление | Восстановление на уровне страниц с повторным использованием неизмененных страниц в целевой директории, что значительно ускоряет процесс |
Объединение (Merge) | Реализация стратегии «инкрементально обновляемых резервных копий», устраняющей необходимость в периодических полных копиях |
Валидация | Автоматическая проверка согласованности данных и проверка резервных копий по запросу без фактического восстановления |
Верификация | Проверка целостности экземпляра с помощью команды |
Хранение (Retention) | Управление архивами WAL и резервными копиями по политике хранения (по времени восстановления, количеству копий или TTL для конкретной копии). Просроченные копии можно удалять или объединять |
Параллельная работа | Выполнение резервного копирования, восстановления, слияния, удаления, верификации и валидации в нескольких потоках |
Сжатие | Хранение данных резервной копии в сжатом виде для экономии места |
Дедупликация | Пропуск копирования неизмененных служебных файлов (например, |
Удаленные операции | Резервное копирование и восстановление экземпляра, расположенного на удаленном сервере |
Резервная копия со standby-сервера | Создание копии с реплики, что позволяет избежать нагрузки на узел мастер |
Внешние директории | Резервное копирование файлов и каталогов, находящихся за пределами |
Каталог резервных копий | Список резервных копий и метаданных в формате |
Каталог архива | Список всех линий времени WAL и их метаданных в формате |
Частичное восстановление | Восстановление только указанных баз или исключение отдельных баз из восстановления |
Фоновое резервное копирование | Создание консистентной резервной копии без остановки функционирования основной БД. Пользовательские сессии могут продолжать работу во время выполнения резервного копирования. |
Каталог резервных копий
Утилита pg_probackup хранит резервные копии и WAL-файлы, необходимые для восстановления до заданной точки во времени (PITR), хранящиеся в каталоге резервных копий. Для разных экземпляров можно выделять отдельные подкаталоги внутри одного каталога.
Типы резервного копирования
pg_probackup поддерживает 2 вида резервного копирования:
-
Полное (Full) — содержит все файлы данных, необходимые для восстановления кластера с нуля.
-
Инкрементное (Incremental) — хранит только измененные с момента предыдущей копии данные, что уменьшает размер резервной копии и ускоряет его создание.
Поддерживаются режимы:
PAGE— анализируются все WAL-файлы с момента последней резервной копии, и копируются только страницы, упомянутые в WAL-записях. Требуется полный набор WAL-файлов с момента предыдущей копии.DELTA— читаются все файлы данных вPGDATA, но копируются только измененные страницы. Непрерывное архивирование не требуется, но нагрузка на диск сравнима с резервным копированием полного типа.PTRACK— СУБД Pangolin помечает измененные страницы в специальном битмапе. Требует расширение ptrack. Нагрузка на сервер минимальная, а резервные копии создаются быстрее.
Режим резервного копирования задается с помощью параметра -b <backup-mode>.
Независимо от типа резервного копирования, все копии поддерживают два варианта доставки WAL:
- Автономная (
stream) — необходимые WAL-файлы передаются через протокол репликации и включаются в резервную копию. Даже при отсутствии непрерывного архивирования восстановление возможно. - Архивная (
archive) — используется механизм непрерывного архивирования. Для восстановления требуется полный набор WAL-файлов, сохраненных в архиве.
Параметры
Утилита pg_probackup поддерживает следующие параметры:
Общие параметры
Общие параметры, которые могут использоваться с различными командами утилиты:
--dry-run
Выполняет тестовый запуск команды без внесения изменений (не создаются, не удаляются и не перемещаются файлы). Пропускается потоковая трансляция WAL.
-B <backup-path>
Задает путь к каталогу резервных копий. Можно установить один раз через переменную окружения BACKUP_PATH.
-D <pgdata-path>
Путь к каталогу данных кластера (обязателен только для add-instance). Остальные команды могут использовать переменную PGDATA или конфигурационный файл.
-i <backup-id>
Уникальный идентификатор резервной копии.
--instance=<instance_name>
Имя экземпляра СУБД Pangolin.
--backup-pg-log
Включение в резервную копию каталога log. Этот каталог обычно содержит журналы сообщений сервера. По умолчанию каталог log в копию не включается. Параметр используется только для команды backup.
-j <num-threads>
Количество параллельных потоков для команд backup, restore, merge, validate, checkdb и archive-push.
--progress
Отображение прогресса выполнения.
--help
Подробная справка по параметрам команды.
--format
Формат вывода для команды show (plain, json).
Параметры создания
Используются с командой backup:
-b <backup-mode>
Выбор режима резервного копирования. Поддерживаются следующие режимы: FULL, DELTA, PAGE и PTRACK.
Параметры точки восстановления
Используются с командами restore или validate при непрерывном архивировании WAL:
--recovery-target=<immediate|latest>
Момент завершения восстановления: сразу (immediate) или после применения всех сегментов WAL (latest).
--recovery-target-timeline=<timeline>
Линия времени: immediate, latest или числовое значение.
--recovery-target-lsn=<lsn>
LSN до точки восстановления.
--recovery-target-name=<target-name>
Именованная точка сохранения.
--recovery-target-time=<time>
Точка времени для восстановления.
--recovery-target-xid=<xid>
Идентификатор транзакции для восстановления.
--recovery-target-inclusive=<boolean>
Включить целевую точку (true) или остановиться перед ней (false).
--recovery-target-action=<pause|promote|shutdown>
Действие сервера при достижении цели:
pause— остановка и ожидание решения администратора (используется по умолчанию);promote— переключение экземпляра в основную роль;shutdown— завершение работы сервера.
Параметры сохранения
Применяются с командами backup и delete:
--retention-redundancy=<retention-redundancy>
Количество полных копий для хранения (0 — отключено).
--retention-window=<retention-window>
Окно восстановления в днях (0 — отсутствует).
--wal-depth=<wal-depth>
Количество копий WAL для восстановления PITR (0 — отключено).
--delete-wal
Удаление файлов WAL, которые не являются необходимыми для восстановления кластера из имеющихся резервных копий.
--delete-expired
Удаление резервной копии, не удовлетворяющей политике хранения.
--merge-expired
Объединение старых инкрементальных копий в одну, удовлетворяющую требованиям политики хранения, с ее родительскими, срок хранения которых истек.
Параметры закрепления
Используются с командами backup и set-backup:
--ttl=interval
Время закрепления копии (0 — отмена закрепления).
--expire-time=<wal-depth>
Момент окончания хранения (формат ISO-8601).
Параметры ведения журнала
Могут применяться к любой команде:
--no-color
Отключение цветового выделения warning/error.
--log-level-console=<log-level-console>
Уровень сообщений для консоли (verbose, log, info, warning, error, off – по умолчанию).
--log-filename=<log-filename>
Шаблон имени файлов журнала.
--error-log-filename=<error-log-filename>
Отдельный файл для ошибок.
--log-directory=<log-directory>
Каталог для журналов (по умолчанию $BACKUP_PATH/log/).
--log-format-console=<log-format-console>
Формат журнала консоли (text или json).
--log-format-file=<log-format-file>
Формат файлов журнала (plain или json).
--log-rotation-size=<log-rotation-size>
Максимальный размер файла для ротации (0 — отключено).
--log-rotation-age=<log-rotation-age>
Максимальное время жизни файла для ротации (0 — отключено).
Параметры подключения
Используются с командами backup, catchup и checkdb.
-d <dbname> / PGDATABASE
База для подключения.
-h <host> / PGHOST
Узел сервера (по умолчанию localhost).
-p <port> / PGPORT
Порт подключения (по умолчанию 5432).
-U <username> / PGUSER
Имя пользователя.
-w / --no-password
Отсутствие запроса пароля.
-W / --password
Запрос пароля (устаревший параметр).
Параметры сжатия
Применяются с командами backup и archive-push:
--compress-algorithm=<compress-algorithm>
Алгоритм сжатия: zlib, lz4, zstd, pglz, none (по умолчанию none).
--compress-level=<compress-level>
Уровень сжатия, зависит от алгоритма (обычно 1–9, чем выше — тем сильнее сжатие, но медленнее).
--compress
Алгоритм по умолчанию с уровнем 1 (приоритет: zlib, pglz, lz4, zstd).
Параметры архивации
Используются с командами archive-push и archive-get:
--wal-file-path=<wal-file-path>
Путь к файлу WAL.
--wal-file-name=<wal-file-name>
Имя файла WAL.
--overwrite
Перезапись файлов WAL.
--batch-size=<batch_size>
Максимальное количество WAL-файлов, которое может копироваться за один раз при archive-push или archive-get. Ускоряет архивирование и восстановление.
--archive-timeout=<archive-timeout>
Интервал времени, после которого незавершенные .part файлы считаются потерянными. По умолчанию — 300 секунд. Используется только с archive-push.
--no-ready-rename
Параметр, запрещающий переименование файлов состояния в archive_status. Полезен при нескольких командах в archive_command. Только для archive-push.
--no-sync
Параметр, отключающий принудительную запись WAL-файлов на диск, что ускоряет архивирование, но может привести к повреждению архива при сбое системы. Только для archive-push.
--no-validate-wal
Параметр, отключающий проверку предзагруженных WAL-файлов перед использованием, ускоряя восстановление. Используется только с archive-get.
Параметры удаленного режима
Параметры, отвечающие за удаленное выполнение операций pg_probackup по SSH. Применяются с командами add-instance, set-config, backup, catchup, restore, archive-push и archive-get.
--remote-proto=<protocol>
Протокол удаленного выполнения операций. Поддерживается только SSH. Возможные значения:
ssh— включение удаленного режима через SSH (по умолчанию);none— явное отключение удаленного режима.
Можно не задавать, если указан --remote-host.
--remote-host=<host>
Имя или IP-адрес удаленного сервера.
--remote-port=<port>
Порт на удаленном сервере. По умолчанию: 22.
--remote-user=<username>
Имя пользователя для SSH-соединения на удаленной системе. Если не указано, используется текущий пользователь.
--remote-path=<path>
Каталог установки pg_probackup на удаленной системе.
--ssh-options=ssh-options
Строка дополнительных параметров SSH.
Параметры потоковой передачи WAL
Применяются с командами backup и catchup:
--stream
Создание потоковой резервной копии (STREAM), включая в нее все необходимые файлы WAL, получаемые от сервера по протоколу репликации.
--temp-slot=<true|false|on|off>
Создание временного слота физической репликации для передачи WAL с архивируемого экземпляра. По умолчанию --temp-slot включен. Это гарантирует, что все нужные сегменты WAL будут доступны, если в процессе копирования произойдет переключение сегментов WAL. Этот параметр может использоваться только вместе с параметром --stream. По умолчанию имя слота — pg_probackup_slot. Чтобы его поменять, воспользуйтесь параметром --slot/-S и явно укажите --temp-slot или --temp-slot=<true|on>.
-S <slot_name> / --slot=<slot_name>
Указание слота репликации, к которому будет выполнено подключение для передачи WAL. Этот параметр можно указать только вместе с параметром --stream.
Параметры удаленного архива WAL
Параметры для настройки аргументов archive-get при восстановлении PITR или копий типа ARCHIVE в удаленном режиме.
--archive-host=<host>
Имя или IP-адрес сервера для команды archive-get.
--archive-port=<port>
Порт удаленного сервера для archive-get. По умолчанию: 22.
--archive-user=<username>
Имя пользователя для команды archive-get.
Параметры инкрементального восстановления
Параметры, влияющие на инкрементальное восстановление кластера. Используются с командой restore.
-I / --incremental-mode=<none|checksum|lsn>
Режим инкрементального восстановления. Возможные значения:
CHECKSUM— замена только страницы с неподходящей контрольной суммой и LSN;LSN— замена только страницы с LSN больше точки расхождения;NONE— обычное восстановление.
-R / --restore-as-replica
Формирование минимального файла конфигурации восстановления, предназначенного для упрощения настройки ведомого сервера. Если для подключения репликации необходим пароль, его следует отдельно указать в параметре primary_conninfo.
--primary-conninfo=<primary_conninfo>
Установка заданного значения для параметра primary_conninfo. Это значение учитывается только при использовании параметра -R.
-S / --primary-slot-name=<slot_name>
Установка заданного значения для параметра primary_slot_name. Это значение учитывается только при использовании параметра -R.
Параметры частичного восстановления
Параметры, определяющие, какие базы данных включать или исключать при восстановлении. Используются с командой restore.
--db-exclude=<dbname>
База данных, исключаемая из восстановления. Можно указать несколько раз.
--db-include=<dbname>
База данных, включаемая в восстановление. Остальные базы не восстанавливаются (кроме template0 и template1). Можно указать несколько раз.
Установка
При установке СУБД Pangolin с помощью скриптов автоматизации утилита pg_probackup устанавливается автоматически.
-
Установите пакет
pangolin-backup-tools-venv(обязательная зависимость дляpangolin-backup-tools):- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-backup-tools-venv-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-backup-tools-venv-{version_component}_amd64.debsudo apt-get install pangolin-backup-tools-venv-{version_component}-{OS}.x86_64.rpmПример заполненной команды:
cd distributive/3rdparty/
tar -xzf 3rdparty.tar.gz -C ./
sudo dnf install -y pangolin-backup-tools-venv-2.1.1-sberlinux9.x86_64.rpm -
Установите пакет компонента:
- SberLinux, РЕД ОС, CentOS
- Astra Linux
- Альт СП
sudo dnf install pangolin-backup-tools-{version_component}-{OS}.x86_64.rpmsudo apt install pangolin-backup-tools-{version_component}_amd64.debsudo apt-get install pangolin-backup-tools-{version_component}-{OS}.x86_64.rpmПример заполненной команды:
cd distributive
sudo dnf install -y pangolin-backup-tools-2.1.1-sberlinux9.x86_64.rpm
Путь к файлу настроек по умолчанию можно изменить используя переменную окружения BACKUP_TOOLS_CONFIG_PATH_FILE.
Настройка
Инициализация и конфигурация
Хранилище резервных копий уже проинициализировано и располагается в /pgarclogs/{version}/.
Создание нового каталога для хранения резервных копий
Для инициализации каталога резервных копий выполните команду:
pg_probackup init -B <backup-path>
Если указанный каталог резервных копий уже существует, он должен быть пустым, иначе pg_probackup завершит работу с ошибкой. Пользователь, запускающий утилиту, должен иметь полный доступ к каталогу резервных копий.
Определение экземпляра
Для определения копируемого экземпляра, выполните команду:
pg_probackup add-instance -B <backup-path> -D <pgdata-path> --instance=<instance_name>
[--external-dirs=<external-directories-pathsh>]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
Ручная настройка конфигурации
Для задания или изменения конфигурационных параметров экземпляра резервного копирования, используйте команду:
pg_probackup set-config -B <backup-path> --instance=<instance_name>
[-D <pgdata-path>]
[--external-dirs=<external-directories-pathsh>]
[--log-level-console=<log-level-console>]
[--log-level-file=<log-level-file>]
[--log-format-file=<log-format-file>]
[--log-filename=<log-filename>]
[--error-log-filename=<error-log-filename>]
[--log-directory=<log-directory>]
[--log-rotation-size=<log-rotation-size>]
[--log-rotation-age=<log-rotation-age>]
[--retention-redundancy=<retention-redundancy>]
[--retention-window=<retention-window>]
[--wal-depth=<wal-depth>]
[--compress-algorithm=<compress-algorithm>]
[--compress-level=<compress-level>]
[--archive-timeout=timeout]
[-d <dbname>] [-h <host>] [-p <port>] [-U <username>]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--restore-command=cmdline] [--archive-host=destination]
[--archive-port=<port>] [--archive-user=<username>]
Команда добавляет заданные параметры соединения, сжатия, хранения, ведения журнала и указания внешних каталогов в конфигурационный файл pg_probackup.conf либо изменяет ранее заданные значения.
Редактировать pg_probackup.conf вручную не рекомендуется.
По умолчанию все резервные копии, которые создает pg_probackup, сохраняются в предназначенном для них каталоге.
Настройка СУБД Pangolin для организации резервного копирования
При установке СУБД Pangolin автоматизированным способом инсталлятор автоматически устанавливает и настраивает все необходимые для организации резервного копирования, расширения и утилиты:
-
Устанавливает утилиту
pg_probackup. -
Инициализирует локальный каталог резервных копий:
pg_probackup init -B $PGBACKUP -
Определяет копируемый экземпляр (по умолчанию) резервных копий:
pg_probackup add-instance -B $PGBACKUP -D $PGDATA --instance=<instance_name> -
Устанавливает параметры БД:
wal_level = replica
hot_standby = on
full_pages_writes = on
archive_mode = always
archive_command = 'pg_probackup archive-push -B <backup-path> --instance <instance_name> --wal-file-path=%p --wal-file-name=%f --compress --overwrite -j 4'
archive_timeout = 180 -
Добавляет параметры работы
pg_probackup:pg_probackup set-config -B $PGBACKUP -D $PGDATA --instance <instance_name> -d <dbname> -h <host> -p <port> -U <username>
Просмотр конфигурации pg_probackup
Для просмотра текущей конфигурации резервной копии используйте команду:
pg_probackup show-config -B /pgarclogs/{version}/ --instance=clustername [--format=plain|json]
Пример вывода:
# Backup instance information
pgdata = /pgdata/08/data
system-identifier = 6900845675447083568
xlog-seg-size = 16777216
# Connection parameters
pgdatabase = postgres
pghost = <IP-Address>
pgport = 5433
pguser = backup_user
# Replica parameters
replica-timeout = 5min
# Archive parameters
archive-timeout = 5min
# Logging parameters
log-level-console = INFO
log-level-file = OFF
log-format-console = PLAIN
log-format-file = PLAIN
log-filename = pg_probackup.log
log-rotation-size = 0TB
log-rotation-age = 0d
# Retention parameters
retention-redundancy = 0
retention-window = 0
wal-depth = 0
# Compression parameters
compress-algorithm = none
compress-level = 1
# Remote access parameters
remote-proto = ssh
Управление
Создание резервной копии
Для создания резервной копии выполните следующую команду:
pg_probackup backup -B <backup-path> -b <backup-mode> --instance=<instance_name>
[-D <pgdata-path>] [-C]
[--stream [-S <slot-name>] [--temp-slot]]
[--backup-pg-log] [-j <num-threads>] [--progress]
[--no-validate] [--skip-block-validation]
[--external-dirs=<external-directories-pathsh>]
[--no-sync]
[--log-level-console=<log-level-console>]
[--log-level-file=<log-level-file>]
[--log-format-console=<log-format-console>]
[--log-format-file=<log-format-file>]
[--log-filename=<log-filename>]
[--error-log-filename=<error-log-filename>]
[--log-directory=<log-directory>]
[--log-rotation-size=<log-rotation-size>]
[--log-rotation-age=<log-rotation-age>] [--no-color]
[--delete-expired] [--delete-wal] [--merge-expired]
[--retention-redundancy=<retention-redundancy>]
[--retention-window=<retention-window>]
[--wal-depth=<wal-depth>]
[--compress]
[--compress-algorithm=<compress-algorithm>]
[--compress-level=<compress-level>]
[--archive-timeout=<archive-timeout>]
[-d <dbname>] [-h <host>] [-p <port>] [-U <username>]
[-w --no-password] [-W --password]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--ttl=interval] [--expire-time=<wal-depth>] [--note=text]
Примеры
Создание инкрементальной резервной копии для экземпляра с использованием 4 параллельных потоков, сжатием данных, добавлением потоковых файлов WAL и автоматическим удалением устаревших копий в соответствии с политикой хранения:
pg_probackup backup -B /pgarclogs/{version}/ --instance=<instance_name> -j4 --backup-mode=DELTA --compress --stream --delete-expired
Создание полной резервной копии для указанного экземпляра с использованием 4 параллельных потоков, сжатием данных, добавлением потоковых файлов WAL и автоматическим удалением устаревших копий в соответствии с политикой хранения:
pg_probackup backup -B /pgarclogs/{version}/ --instance=<instance_name> -j4 --backup-mode=FULL --compress --stream --delete-expired
Политика хранения
Для экономии дискового пространства можно задать политику хранения резервных копий, при которой устаревшие или избыточные копии будут автоматически удаляться.
Настройка политики хранения выполняется через файл pg_probackup.conf с помощью команды set-config, где можно указать одну или несколько следующих переменных:
--retention-redundancy=<retention-redundancy>
Определяет минимальное количество полных резервных копий, которые необходимо сохранять в каталоге.
--retention-window=<retention-window>
Задает минимальный временной диапазон, за который должна быть доступна хотя бы одна резервная копия. Значение указывается в днях. Например, при retention-window=7 сохраняется как минимум одна копия старше 7 дней вместе с необходимыми файлами WAL и всеми последующими копиями.
Если заданы оба параметра (--retention-redundancy и --retention-window), очистка каталога копий учитывает оба условия. Например, комбинация --retention-redundancy=2 и --retention-window=7 означает, что pg_probackup сохранит не менее двух полных копий, а также все копии, необходимые для восстановления за последние семь дней:
pg_probackup set-config -B <backup-path> --instance=<instance_name> --retention-redundancy=2 --retention-window=7
Очистку каталога в соответствии с политикой хранения можно выполнить с помощью команды delete с соответствующими параметрами или командой backup — в последнем случае ненужные копии будут удалены сразу после создания новой.
Чтобы удалить резервные копии, признанные устаревшими в рамках текущей политики хранения, используйте параметр --delete-expired:
pg_probackup delete -B <backup-path> --instance=<instance_name> --delete-expired
Для одновременного удаления файлов WAL, которые больше не требуются ни одной из копий, добавьте параметр --delete-wal:
pg_probackup delete -B <backup-path> --instance=<instance_name> --delete-expired --delete-wal
Кроме того, параметры --retention-redundancy и --retention-window можно указать напрямую при запуске команд delete или backup, чтобы установить или переопределить политику хранения:
pg_probackup delete -B <backup-path> --instance=<instance_name> --delete-expired --retention-window=7 --retention-redundancy=2
Восстановление из резервной копии
Чтобы восстановить кластер баз данных из резервной копии, выполните команду:
pg_probackup restore -B <backup-path> --instance=<instance_name>
[-D <pgdata-path>] [-i <backup-id>] [-j <num-threads>]
[--recovery-target-time=<time>|--recovery-target-xid=<xid>|--recovery-target-lsn=<lsn> [--recovery-target-inclusive=<boolean>]]
[--recovery-target-timeline=<timeline>]
[--recovery-target=<immediate|latest>]
[--recovery-target-name=<target-name>]
[--recovery-target-action=<pause|promote|shutdown>]
[--restore-command=cmdline]
[-R | --restore-as-replica] [--force]
[--primary-conninfo=<primary_conninfo>]
[-S | --primary-slot-name=<slot_name>]
[--no-validate] [--skip-block-validation]
[-T OLDDIR=NEWDIR] [--progress]
[--external-mapping=OLDDIR=NEWDIR]
[--skip-external-dirs] [--no-sync]
[-X WALDIR | --waldir=WALDIR]
[-I | --incremental-mode=<none|checksum|lsn>]
[--db-include | --db-exclude]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--archive-host=<host>]
[--archive-port=<port>] [--archive-user=<username>]
Восстановить кластер из копии можно только для копий с состоянием OK или DONE.
По умолчанию восстановление идет в оригинальные каталоги. Если восстановление выполняется на том же сервере и табличные пространства уже заняты, возникнет ошибка, так как данные должны быть восстановлены в те же директории. Чтобы перенаправить размещение табличных пространств, следует использовать параметр -T.
Если путь содержит знак =, его необходимо экранировать с помощью обратной косой черты (\=). Параметр может указываться несколько раз для переноса разных табличных пространств.
Для получения непрерывной резервной копии в конфигурации СУБД должны быть включены следующие параметры:
archive_command = 'pg_probackup archive-push -B /pgarclogs/{version} --instance=clustername --wal-file-path=%p --wal-file-name=%f --compress --overwrite -j 4 --batch-size=100'
archive_mode = 'on'
archive_timeout = '180'
Также при восстановлении в некоторых случаях (например, восстановление ведомого сервера) требуется установка дополнительного параметра:
restore_command = 'pg_probackup archive-get -B /pgarclogs/{version} --instance=clustername --wal-file-path=%p --wal-file-name=%f --compress --overwrite -j 4 --batch-size=100'
В случае кластерной конфигурации данные параметры меняются через /etc/pangolin-manager/postgres.yml. Для конфигурации standalone параметры меняются через /pgdata/{version}/data/postgresql.conf.
Параметр archive_mode требует перезапуска СУБД.
Примеры
Восстановление кластера из резервной копии с идентификатором QFEZBK в каталог данных /pgdata/{version}/data для указанного экземпляра, с использованием 4 параллельных потоков, немедленным завершением восстановления при достижении согласованного состояния и выводом информации о ходе выполнения операции:
pg_probackup restore -B /pgarclogs/{version}/ --instance=<instance_name> -D /pgdata/{version}/data -i QFEZBK -j 4 --recovery-target='immediate' --progress
Восстановление кластера из резервной копии с идентификатором QFEZBK в каталог данных /pgdata/{version}/data для указанного экземпляра, с использованием 4 параллельных потоков, с указанием целевого момента восстановления 2022-12-03 12:00:03-04 и выводом информации о ходе выполнения операции:
pg_probackup restore -B /pgarclogs/{version}/ --instance=<instance_name> -D /pgdata/{version}/data -i QFEZBK -j 4 --recovery-target='2022-12-03 12:00:03-04' --progress
Проверка резервной копии
Для проверки корректности и пригодности резервной копии для восстановления, выполните команду:
pg_probackup validate -B <backup-path> [--instance=<instance_name>]
[-i <backup-id>] [--progress] [-j <num-threads>]
[--recovery-target-time=<time>|--recovery-target-xid=<xid>|--recovery-target-lsn=<lsn> [--recovery-target-inclusive=<boolean>]]
[--recovery-target-timeline=<timeline>]
[--recovery-target-name=<target-name>]
[--skip-block-validation]
Например:
pg_probackup validate -B /pgarclogs/{version}/ --instance=clustername
Пример вывода:
INFO: Validate backups of the instance 'clustername'
INFO: Validating backup T1AI3F
INFO: Backup T1AI3F data files are valid
INFO: Backup T1AI3F WAL segments are valid
INFO: All backups are valid
Проверка гарантирует, что все необходимые файлы копий находятся в наличии, кластер можно восстановить до указанной точки восстановления (при наличии). Для этого команда запускается с теми же параметрами восстановления, которые будут использоваться при реальном восстановлении.
Если проверка прошла успешно, выводится сообщение об успешной валидации.
В случае ошибки будет выведено сообщение с указанием:
- точки времени;
- идентификатора транзакции (XID);
- значения LSN, до которых возможно восстановление.
Если указан параметр -i backup-id, проверяется только одна резервная копия с указанным идентификатором.
Если -i указан вместе с параметрами --recovery-target-*, проверяется возможность восстановления этой конкретной копии до заданной точки. Если backup-id относится к инкрементальной копии, дополнительно будут проверены все родительские копии, начиная с полной.
Если параметры не заданы, проверяются все резервные копии в каталоге.
Проверка базы данных
Чтобы убедиться в отсутствии повреждений в кластере, выполните следующую команду:
pg_probackup checkdb [-B <backup-path>] [--instance=<instance_name>]
[-D <pgdata-path>] [--progress] [-j <num-threads>]
[--amcheck] [--skip-block-validation]
[--heapallindexed] [--checkunique]
По умолчанию pg_probackup выполняет проверку страниц автоматически в процессе создания резервной копии.
Команда checkdb позволяет запускать проверку страниц в кластере отдельно, без создания резервной копии. Для ее выполнения не требуется предварительная настройка копирования кластера в pg_probackup.
Чтобы провести проверку, приложению pg_probackup необходимо подключиться к целевому кластеру:
- Обычно достаточно указать экземпляр кластера, зарегистрированный в
pg_probackup. - Если параметры
-Bи--instanceне заданы, то параметры подключения и путь к каталогу данных необходимо указать явно в командной строке или через переменные окружения.
Можно отключить физическую проверку с помощью параметра --skip-block-validation. В этом случае указывать каталог копий и каталог данных не требуется, достаточно задать только параметры подключения.
Для более глубокой диагностики можно использовать расширение amcheck (параметр --amcheck), которое выполняет проверку всех индексов во всех базах данных. Дополнительный параметр --heapallindexed позволяет убедиться, что все кортежи таблиц действительно представлены в индексах.
Просмотр списка резервных копий
Чтобы посмотреть сведения о хранилище резервных копий, выполните:
pg_probackup show -B /pgarclogs/{version}/
Пример вывода:
BACKUP INSTANCE 'clustername'
============================================================================================================================================
Instance Version ID Recovery time Mode WAL Mode TLI Time Data WAL Zratio Start LSN Stop LSN Status
============================================================================================================================================
clustername 06 PYSUE8 2020-12-21 15:51:48+03 FULL ARCHIVE 1/0 16s 9047kB 16MB 4.31 0/12000028 0/12000160 OK
Для каждой копии выдаются следующие сведения:
Параметр | Описание |
|---|---|
Instance | Имя экземпляра СУБД Pangolin |
Version | Базовая версия |
ID | Идентификатор резервной копии |
Recovery time | Самое раннее время, на которое можно восстановить кластер из данной копии. |
Mode | Режим, в котором была сделана копия. Возможные значения: |
WAL Mode | Режим доставки WAL. Возможные значения: |
TLI | Идентификаторы линии времени текущей копии и ее родителя |
Time | Время, за которое была выполнена данная копия |
Data | Объем файлов данных в этой копии. Значение не включает объем файлов WAL. Для копий в режиме |
WAL | Размер несжатых файлов WAL, которые должны быть применены для достижения согласованного состояния |
Zratio | Коэффициент сжатия: отношение «uncompressed-bytes» к «data-bytes» |
Start LSN | Последовательный номер в журнале WAL, соответствующий началу копирования. С этой позиции накатываются изменения (REDO) |
Stop LSN | Последовательный номер в журнале WAL, соответствующий окончанию копирования. Позиция точки согласованности при восстановлении |
Status | Состояние резервной копии. Возможные варианты:
|
Примеры
Чтобы получить более подробную информацию о копии, укажите в команде show ее идентификатор:
pg_probackup show -B /pgarclogs/{version}/ --instance=<instance_name> -i <backup-id>
Для получения сведений об архиве WAL файлов выполните следующую команду:
pg_probackup show -B /pgarclogs/{version}/ --instance=clustername --archive
Пример вывода:
ARCHIVE INSTANCE 'clustername'
================================================================================================================================
TLI Parent TLI Switchpoint Min Segno Max Segno N segments Size Zratio N backups Status
================================================================================================================================
10 0 0/0 0000000A00000017000000E6 0000000A00000017000000F9 20 13MB 25.52 0 OK
9 0 0/0 0000000900000017000000E3 0000000900000017000000E5 3 216kB 227.44 0 OK
Для каждой линии времени выдаются следующие сведения:
Параметр | Описание |
|---|---|
| Идентификатор линии времени |
| Идентификатор линии времени, от которой была ответвлена данная |
| LSN момента, когда эта линия времени ответвилась от родительской |
| Первый сегмент WAL, относящийся к этой линии времени |
| Последний сегмент WAL, относящийся к этой линии времени |
| Количество сегментов WAL, относящихся к этой линии времени |
| Объем, который занимают файлы на диске |
| Коэффициент сжатия, вычисляемый по формуле:
|
| Число копий, относящихся к этой линии времени. Для получения подробных сведений об этих копиях используйте формат JSON |
| Состояние архива WAL для этой линии времени. Возможные значения:
|
Редактирование параметров резервной копии
Для изменения времени жизни или добавления заметки, выполните команду:
pg_probackup set-backup -B <backup-path> --instance=<instance_name>
-i <backup-id> [--ttl=interval] [--expire-time=<wal-depth>]
[--note=text]
Управление резервными копиями
Удаление
Для удаления ненужной резервной копии, выполните команду:
pg_probackup delete -B <backup-path> --instance=<instance_name>
[-j <num-threads>] [--progress]
[--retention-redundancy=<retention-redundancy>]
[--retention-window=<retention-window>]
[--wal-depth=<wal-depth>]
[-i <backup-id> | --delete-expired | --merge-expired | --status=backup_status]
[--delete-wal]
[--dry-run] [--no-validate] [--no-sync]
Команда delete позволяет удалять ненужные резервные копии и связанные с ними файлы. Если указать идентификатор копии через параметр -i <backup-id>, будет удалена сама резервная копия и все ее зависимые инкрементальные копии (если такие есть). Это позволяет, удалить несколько последних инкрементальных копий, при этом сохранив предыдущую полную копию и часть следующих за ней копий.
Для очистки устаревших файлов WAL, которые больше не требуются для восстановления оставшихся резервных копий, используйте параметр --delete-wal.
Команда delete позволяет удалять резервные копии, которые считаются ненужными согласно установленной политике хранения. Чтобы удалить копии с истекшим сроком хранения, используйте параметр --delete-expired.
Копии с истекшим сроком нельзя удалить, если на них базируется хотя бы одна инкрементальная копия, удовлетворяющая политике хранения.
Если нужно сократить число копий, необходимых для восстановления инкрементальных резервных копий, можно использовать параметр --merge-expired.
В этом случае pg_probackup:
- Находит самую старую инкрементальную копию, удовлетворяющую политике хранения.
- Объединяет ее с базовой полной копией и всеми ее инкрементальными копиями, срок хранения которых истек.
- После завершения объединения устаревшие копии удаляются.
Перед удалением или объединением копий можно выполнить команду delete --dry-run. Это позволит получить текущее состояние всех резервных копий по политике хранения без выполнения каких-либо необратимых действий.
Чтобы удалить все копии с конкретным состоянием, используйте параметр --status=<backup_status>. При этом установленная политика хранения не учитывается — будут удалены все копии с указанным статусом.
Объединение
Со временем при регулярном создании инкрементальных копий общий объем каталога резервных копий может значительно увеличиться. Чтобы сократить занимаемое место на диске, можно объединить инкрементальные копии с их родительской полной копией. Для этого используется команда:
pg_probackup merge -B <backup-path> --instance=<instance_name>
-i <backup-id> [--progress] [-j <num-threads>]
[--no-validate] [--no-sync]
Если выбран идентификатор полной копии, она объединяется с ближайшей последующей инкрементальной копией.
Если выбран идентификатор инкрементальной копии, объединение выполняется с родительской полной копией, а также со всеми промежуточными инкрементальными копиями.
После выполнения операции:
- полная копия дополняется данными из всех объединенных копий;
- инкрементальные копии удаляются как избыточные.
Таким образом, результат объединения эквивалентен созданию новой полной копии, но операция выполняется значительно быстрее и эффективнее, чем обычное резервное копирование. Она не создает высокой нагрузки на подсистему ввода/вывода и сеть. Это важно при использовании pg_probackup в удаленном режиме.
Перед началом объединения, pg_probackup проверяет целостность всех копий, участвующих в операции.
Состояния операции:
MERGING— операция объединения в процессе;MERGED— финальный этап объединения, когда изменяются метаданные полной копии.
Если операция объединения прерывается, ее можно безопасно перезапустить.
Архивация WAL
Отправка WAL
Для отправки файлов WAL в архив, выполните команду:
pg_probackup archive-push -B <backup-path> --instance=<instance_name>
--wal-file-name=<wal-file-name>
[--wal-file-path=<wal-file-path>]
[-j <num-threads>] [--batch-size=<batch_size>]
[--archive-timeout=timeout]
[--no-ready-rename] [--no-sync]
[--overwrite] [--compress]
[--compress-algorithm=<compress-algorithm>]
[--compress-level=<compress-level>]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
Получение WAL
Для извлечения файлов WAL из архива, выполните команду:
pg_probackup archive-get -B <backup-path> --instance=<instance_name>
--wal-file-path=<wal-file-path>
--wal-file-name=<wal-file-name>
[-j <num-threads>] [--batch-size=<batch_size>]
[--no-validate-wal]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
Удаленная синхронизация
В pg_probackup реализована команда catchup, которая позволяет создать копию экземпляра сервера СУБД Pangolin напрямую, не используя каталог резервных копий. Инициализация данных локального узла с удаленного сервера:
pg_probackup catchup -b catchup-mode
--source-pgdata=<path_to_pgdata_on_remote_server>
--destination-pgdata=<path_to_local_dir>
[--stream [-S <slot-name>] [--temp-slot | --perm-slot]]
[-j <num-threads>]
[-T OLDDIR=NEWDIR]
[--exclude-path=<path_prefix>]
[-d <dbname>] [-h <host>] [-p <port>] [-U <username>]
[-w --no-password] [-W --password]
[--remote-proto] [--remote-host]
[--remote-port] [--remote-path] [--remote-user]
[--ssh-options]
[--dry-run]
Операция catchup отличается от остальных команд pg_probackup следующими особенностями:
- В отличие от обычных резервных копий,
catchupработает напрямую с исходным и целевым экземплярами СУБД Pangolin. - Поддерживается только режим
STREAMдля передачи WAL-файлов. - Копирование внешних каталогов не поддерживается.
- Файлы конфигурации (
postgresql.conf,postgresql.auto.conf,pg_hba.conf) копируются с исходного сервера и заменяют соответствующие файлы на целевом сервере. Для того чтобы сохранить конфигурационные файлы на целевом сервере без изменений, используйте параметр--exclude-path.
Перед клонированием/синхронизацией убедитесь, что исходный сервер запущен и принимает подключения. Перед синхронизацией можно выполнить команду с параметром --dry-run. Это позволит оценить объем данных, которые будут переданы, без внесения изменений на диск.
Если на исходной базе есть табличные пространства, которые нужно разместить в других каталогах на целевом сервере, задайте параметр -T.
Для ускорения передачи данных catchup можно запускать в нескольких потоках, используя параметр --threads=<num_threads>.
Общие команды
Вывод справки об утилите или команде:
pg_probackup help [COMMAND]
Версия утилиты:
pg_probackup version
Удаление экземпляра из каталога резервных копий
Чтобы удалить все резервные копии и файлы WAL, связанные с указанным экземпляром, выполните команду:
pg_probackup del-instance -B <backup-path>
--instance=<instance_name>
Сценарии использования
Снятие резервной копии с реплики
Функция резервного копирования позволяет снять с базы данных архивную копию, которую в дальнейшем можно использовать для восстановления. СУБД Pangolin поддерживает создание резервной копии как с лидера, так и с реплики.
Резервное копирование выполняется командой:
PGPASSWORD={backup_pass} pg_probackup backup -B {PGBACKUP} --instance {cluster_name} -b FULL
Восстановление из резервной копии:
pg_probackup restore -B {PGBACKUP} --instance {cluster_name} --recovery-target='latest'
Процедуры резервного копирования на главном сервере и на копии принципиально идентичны.
Использование pg_probackup на клиентском хосте с подключением к KMS-серверу
Предусловия
- На клиентском хосте установлены пакеты
pangolin-backup-tools,pangolin-backup-tools-venvиpangolin-security-utilities. - На клиентском хосте доступна лицензия Pangolin в файле
/opt/pangolin_license/license.json. - На сервере запущен экземпляр СУБД Pangolin с включенным TDE.
- Клиентский хост имеет сетевой доступ к KMS-серверу, который используется серверной частью.
- Для клиентского хоста доступен корневой сертификат KMS-сервера.
- Между клиентским хостом и сервером настроен SSH-доступ от имени пользователя
postgres. - На сервере в
pg_hba.confразрешены подключения пользователяpostgresс клиентского хоста, а также репликационные подключения для потоковой передачи WAL.
Подготовка клиентского хоста
-
Установите на клиентском хосте необходимые пакеты.
На клиентском хосте должны быть доступны утилиты
pg_probackupиsetup_kms_credentials. -
Настройте SSH-доступ от клиента к серверу для пользователя
postgres.После выполнения этого шага пользователь
postgresна клиентском хосте сможет подключаться к серверу по SSH без интерактивного ввода пароля. -
Скопируйте с серверного хоста корневой сертификат KMS и разместите его на клиентском хосте, например в каталоге
/pg_ssl/root.crt.Этот сертификат потребуется для подключения к KMS-серверу.
-
Настройте на клиентском хосте подключение к KMS с помощью утилиты
setup_kms_credentials.sudo su - kmadmin_pg
setup_kms_credentials \
-c <kms_cluster_name> \
-r /pg_ssl/root.crt \
-u <kms_user> \
-h <kms_host> \
-p <kms_port> \
-l 2 \
-x kv \
-t 1 \
-i adminencryptionПосле выполнения команды на клиентском хосте будет создана конфигурация подключения к KMS.
-
Подготовьте на клиентском хосте каталог данных и каталог
global.sudo rm -rf /pgdata
sudo mkdir -p /pgdata/06/data/global
sudo chmod 700 /pgdata
sudo chown -R postgres:postgres /pgdataПодготовленный каталог будет использоваться как
PGDATA. -
Скопируйте с сервера в каталог
/pgdata/06/data/globalклиентского хоста файлыenc_keys.json,pg_control,enc_settings.cfgиwal_keys.json.На клиентском хосте будет подготовлен минимально необходимый набор служебных файлов для работы
pg_probackupс экземпляром, использующим TDE.
Выполнение резервного копирования
-
Инициализируйте каталог резервных копий и добавьте экземпляр в
pg_probackup.sudo su - postgres
pg_probackup init -B /home/postgres/backup_data_remote/
pg_probackup add-instance \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name>Каталог резервных копий и экземпляр будут инициализированы.
-
Выполните полную резервную копию удаленного экземпляра.
pg_probackup backup \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name> \
-j 4 \
-b FULL \
--compress \
--stream \
--remote-host=<server_host> \
--remote-user=postgres \
-p 5433 \
-U postgres \
-d postgres \
--ssh-options='-o StrictHostKeyChecking=no'На клиентском хосте будет создана полная резервная копия удаленного экземпляра.
Восстановление резервной копии на клиентский хост
-
Очистите каталог данных на клиентском хосте.
Каталог данных будет подготовлен к восстановлению.
-
Выполните восстановление резервной копии в каталог данных клиентского хоста.
pg_probackup restore \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name> \
--streamРезервная копия будет восстановлена в каталог данных на клиентском хосте.
Восстановление резервной копии на сервер
-
Остановите экземпляр на сервере и очистите целевой каталог данных.
Серверный каталог данных будет подготовлен к восстановлению.
-
Выполните восстановление с клиентского хоста на сервер.
pg_probackup restore \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name> \
--stream \
--remote-host=<server_host> \
--remote-user=postgres \
-p 5433 \
-U postgres \
-d postgresСодержимое резервной копии будет восстановлено на сервер.
-
Запустите экземпляр на сервере и проверьте его доступность.
После запуска экземпляр должен успешно принимать подключения.
Использование pg_probackup на клиентском хосте с KMS-заменителем
Предусловия
- На клиентском хосте установлены пакеты
pangolin-backup-tools,pangolin-backup-tools-venvиpangolin-security-utilities. - На клиентском хосте доступна лицензия Pangolin в файле
/opt/pangolin_license/license.json. - На сервере запущен экземпляр СУБД Pangolin с включенным TDE.
- Между клиентским хостом и сервером настроен SSH-доступ от имени пользователя
postgres. - На клиентском хосте подготовлены параметры, необходимые для работы KMS-заменителя.
- На сервере в
pg_hba.confразрешены подключения пользователяpostgresс клиентского хоста, а также репликационные подключения для потоковой передачи WAL.
Подготовка клиентского хоста
-
Установите на клиентском хосте необходимые пакеты.
На клиентском хосте должны быть доступны
pg_probackup,encrypt_params_fileи плагины для работы с KMS-заменителем. -
Настройте SSH-доступ от клиента к серверу для пользователя
postgres.После выполнения этого шага пользователь
postgresна клиентском хосте сможет подключаться к серверу по SSH без интерактивного ввода пароля. -
Создайте на клиентском хосте файлы
kms_static_params.cfgиkms_dynamic_params.cfgв каталоге/etc/pangolin-security-utilities/.На клиентском хосте будет создана конфигурация KMS-заменителя.
-
Заполните файл
kms_static_params.cfgпараметрами мастер-ключа, ключа WAL и других ключей кодирования, необходимых для доступа к данным, для которых включено TDE.В конфигурации KMS-заменителя должны быть заданы необходимые ключевые параметры.
-
Заполните файл
kms_dynamic_params.cfgпараметрами режима работы KMS-заменителя.После этого будут определены параметры работы KMS-заменителя на клиентском хосте.
-
Выполните обработку файла
kms_static_params.cfgс помощью утилитыencrypt_params_file.sudo su - kmadmin_pg
/opt/pangolin-security-utilities/bin/encrypt_params_fileФайл
kms_static_params.cfgбудет подготовлен к использованию KMS-заменителем. -
Переключите библиотеку коннектора
pg_probackupна плагин KMS-заменителя.sudo rm -f /opt/pangolin-backup-tools/lib/libconnector_plugin.so
sudo su - postgres
ln -s /opt/pangolin-backup-tools/lib/plugins/libkms_substitute_plugin.so \
/opt/pangolin-backup-tools/lib/libconnector_plugin.soПосле этого
pg_probackupна клиентском хосте будет использовать KMS-заменитель вместо подключения к внешнему KMS. -
Подготовьте на клиентском хосте каталог данных и каталог
global.sudo rm -rf /pgdata
sudo mkdir -p /pgdata/06/data/global
sudo chmod 700 /pgdata
sudo chown -R postgres:postgres /pgdataПодготовленный каталог будет использоваться как
PGDATA. -
Скопируйте с сервера в каталог
/pgdata/06/data/globalклиентского хоста файлыenc_keys.json,pg_control,enc_settings.cfgиwal_keys.json.На клиентском хосте будет подготовлен минимально необходимый набор служебных файлов для работы
pg_probackupс экземпляром, использующим TDE.
Выполнение резервного копирования
-
Инициализируйте каталог резервных копий и добавьте экземпляр в
pg_probackup.sudo su - postgres
pg_probackup init -B /home/postgres/backup_data_remote/
pg_probackup add-instance \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name>Каталог резервных копий и экземпляр будут инициализированы.
-
Выполните полную резервную копию удаленного экземпляра.
pg_probackup backup \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name> \
-j 4 \
-b FULL \
--compress \
--stream \
--remote-host=<server_host> \
--remote-user=postgres \
-p 5433 \
-U postgres \
-d postgres \
--ssh-options='-o StrictHostKeyChecking=no'На клиентском хосте будет создана полная резервная копия удаленного экземпляра.
Восстановление резервной копии на клиентский хост
-
Очистите каталог данных на клиентском хосте.
Каталог данных будет подготовлен к восстановлению.
-
Выполните восстановление резервной копии в каталог данных клиентского хоста.
pg_probackup restore \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name> \
--streamРезервная копия будет восстановлена в каталог данных на клиентском хосте.
Восстановление резервной копии на сервер
-
Остановите экземпляр на сервере и очистите целевой каталог данных.
Серверный каталог данных будет подготовлен к восстановлению.
-
Выполните восстановление с клиентского хоста на сервер.
pg_probackup restore \
-B /home/postgres/backup_data_remote/ \
-D /pgdata/06/data \
--instance=<instance_name> \
--stream \
--remote-host=<server_host> \
--remote-user=postgres \
-p 5433 \
-U postgres \
-d postgresСодержимое резервной копии будет восстановлено на сервер.
-
Запустите экземпляр на сервере и проверьте его доступность.
После запуска экземпляр должен успешно принимать подключения.