3.4. Использование pg_probackup3 в удалённом режиме #

pg_probackup3 поддерживает работу в удалённом режиме. Данные для резервного копирования можно получать от сервера Postgres Pro удалённо по встроенному репликационному протоколу, а резервные копии можно сохранять в хранилище S3 или на сервер SSH по протоколу SFTP.

В зависимости от типа операции можно выбрать следующие сценарии:

  • Чтобы подключиться к серверу Postgres Pro для создания резервной копии, используйте стандартные параметры подключения: --pghost, --pgport, --pgdatabase и --pguser.

  • Для сохранения, восстановления и проверки резервных копий в хранилище S3 укажите параметры S3. За подробностями обратитесь к Разделу 2.13.

  • Для работы с резервными копиями на сервере SSH по протоколу SFTP укажите параметры SSH. Обратитесь к Разделу 2.12 за подробностями.

Таким образом и каталог резервных копий, и экземпляр Postgres Pro, для которого делается резервная копия, могут располагаться на удалённых серверах.

Типичная схема его использования выглядит так:

  • В системе резервного копирования настройте pg_probackup3, как описывается в подразделе Установка и настройка. Для команд init, add-instance, backup и set-config необходимо задать параметры подключения, указывающие на сервер с экземпляром Postgres Pro.

  • Если вы хотите в удалённом режиме использовать доставку WAL в режиме ARCHIVE, настройте непрерывное архивирование WAL с сервера баз данных, как описано в подразделе Настройка непрерывного архивирования WAL. Для этого в команде archive-push требуется задать параметры SSH, указывающие на сервер, где находится каталог резервных копий.

Примечание

Для работы в режиме непрерывного архивирования файлов WAL исполняемые файлы pg_probackup3 должны находиться на сервере Postgres Pro. Вызов pg_probackup3 с командами archive-push и archive-get осуществляется сервером Postgres Pro в соответствии с параметрами archive_command и restore_command в его конфигурации.

Например, чтобы создать полную архивную локальную копию кластера Postgres Pro, работающего в удалённой системе с адресом 192.168.0.2, подключившись к серверу через порт 2302 с именем пользователя postgres, выполните:

pg_probackup3 backup -B каталог_копий --instance=имя_экземпляра -b FULL --pguser=postgres --pghost=192.168.0.2 --pgport=2302

Чтобы создать резервную копию на сервере SSH с адресом 10.0.3.77 для пользователя ubuntu, выполните:

pg_probackup3 backup -B каталог_копий --instance=имя_экземпляра -b FULL --pguser=postgres --pghost=192.168.0.2 --pgport=2302 --remote-host=10.0.3.77 --remote-user=ubuntu

Скрипт для создания резервной копии в хранилище S3:

export PG_PROBACKUP_S3_PORT=9000
export PG_PROBACKUP_S3_ACCESS_KEY=admin
export PG_PROBACKUP_S3_SECRET_ACCESS_KEY=password
export PG_PROBACKUP_S3_REGION=us-west-2
export PG_PROBACKUP_S3_HOST=10.0.3.77
export PG_PROBACKUP_S3_BUCKET_NAME=test
pg_probackup3 backup -B каталог_копий --instance=имя_экземпляра -b FULL --pguser=postgres --pghost=192.168.0.2 --pgport=2302 --s3

Чтобы настроить непрерывное архивирование WAL на сервере SSH с адресом 10.0.3.77, выполните следующую команду:

pg_probackup3 archive-push -B каталог_копий --instance=имя_экземпляра --wal-file-name=%f --compress-algorithm=zstd --remote-host=10.0.3.77 --remote-user=ubuntu

Чтобы настроить непрерывное архивирование WAL в хранилище S3, выполните следующую команду:

pg_probackup3 archive-push -B каталог_копий --instance=имя_экземпляра --compress-algorithm=zstd --wal-file-name=%f --s3 --config-file=s3.config

При этом параметры подключения должны быть сохранены в файле s3.config в каталоге данных Postgres Pro.

3.4. Using pg_probackup3 in the Remote Mode #

pg_probackup3 supports operations in the remote mode. The backup data can be obtained from a remote Postgres Pro server using the built-in replication protocol. Backups can be saved to an S3 storage or to an SSH server via the SFTP protocol.

Depending on the type of operation you can choose the following scenarios:

  • To connect to the Postgres Pro server to create a backup, use the standard connection options: --pghost, --pgport, --pgdatabase, and --pguser.

  • To save, restore, and validate backups in an S3 storage, use the S3 options. Refer to Section 2.13 for more details.

  • To manage backups on an SSH server via the SFTP protocol, use the SSH options. Refer to Section 2.12 for more details.

This way, both the backup catalog and the Postgres Pro instance to back up can be located on remote servers.

The typical workflow is as follows:

  • On your backup host, configure pg_probackup3 as explained in the section Installation and Setup. For the init, add-instance, backup, and set-config commands, make sure to specify the connection options to the server with the Postgres Pro instance, as well as the options to access the storage where the backups will be saved.

  • If you would like to rely on ARCHIVE WAL delivery mode, configure continuous WAL archiving from the database host as explained in the section Setting up continuous WAL archiving. For the archive-push command, specify the SSH options that point to the backup host with the backup catalog.

Note

To use the continuous WAL archiving mode, the pg_probackup3 executable files must be located on the Postgres Pro server. The Postgres Pro server calls pg_probackup3 with the archive-push and archive-get commands in accordance with the archive_command and restore_command parameters in its configuration.

For example, to create a local archive full backup of a Postgres Pro cluster located on a remote system with the host address 192.168.0.2 on behalf of the postgres user through the port 2302, run:

pg_probackup3 backup -B backup_dir --instance=instance_name -b FULL --pguser=postgres --pghost=192.168.0.2 --pgport=2302

To create a backup on an SSH server with the address 10.0.3.77 for the ubuntu user, run:

pg_probackup3 backup -B backup_dir --instance=instance_name -b FULL --pguser=postgres --pghost=192.168.0.2 --pgport=2302 --remote-host=10.0.3.77 --remote-user=ubuntu

The script for creating a backup in an S3 storage is as follows:

export PG_PROBACKUP_S3_PORT=9000
export PG_PROBACKUP_S3_ACCESS_KEY=admin
export PG_PROBACKUP_S3_SECRET_ACCESS_KEY=password
export PG_PROBACKUP_S3_REGION=us-west-2
export PG_PROBACKUP_S3_HOST=10.0.3.77
export PG_PROBACKUP_S3_BUCKET_NAME=test
pg_probackup3 backup -B backup_dir --instance=instance_name -b FULL --pguser=postgres --pghost=192.168.0.2 --pgport=2302 --s3

To set up continuous WAL archiving to an SSH server with the address 10.0.3.77, run the following command:

pg_probackup3 archive-push -B backup_dir --instance=instance_name --wal-file-name=%f --compress-algorithm=zstd --remote-host=10.0.3.77 --remote-user=ubuntu

To set up continuous WAL archiving to an S3 storage, run the following command:

pg_probackup3 archive-push -B backup_dir --instance=instance_name --compress-algorithm=zstd --wal-file-name=%f --s3 --config-file=s3.config

The connection options must be saved in the s3.config file in the Postgres Pro data directory.

FAQ