3.1. Создание резервной копии #
Чтобы создать резервную копию, выполните следующую команду:
pg_probackup3 backup -Bкаталог_копий--instance=имя_экземпляра-bрежим_копирования-sисточник_копирования-iид_резервной_копии
Здесь режим_копирования может принимать следующие значения: FULL, DELTA и PTRACK.
А источник_копирования может принимать одно из следующих значений: DIRECT, BASE и PRO.
Предупреждение
В режимах источника данных BASE и DIRECT не поддерживается CFS.
Примечание
В режиме источника данных BASE поддерживается резервное копирование только в режимах FULL и DELTA.
Некоторые параметры можно не указывать, в зависимости от цели пользователя:
Если
режим_копированияне указан, по умолчанию используется режимFULL.PRO— значение по умолчанию дляисточник_копирования.Если идентификатор резервной копии не указан явно в теле запроса,
ид_резервной_копиипримет значение даты и времени, когда резервная копия была создана.Если идентификатор резервной копии указан и включает в себя путь к каталогу,
каталог_копийиимя_экземпляраможно не указывать. Например: -i /mnt/ramdisk/backups/2.backup.Если путь к каталогу данных не указан ни через
каталог_копий, ни через параметр--backup-id, текущий каталог будет использоваться в качестве каталога по умолчанию.Если опустить идентификатор родительской копии при выполнении инкрементального копирования, pg_probackup3 использует последнюю подходящую копию из цепочки копий. Если родительскую резервную копию подобрать не удастся, процесс копирования завершится ошибкой.
Если указан параметр
--from-full, инкрементальная резервная копия будет создана из последней родительской полной копии.
3.1.1. Режим ARCHIVE #
Режим ARCHIVE используется в качестве режима доставки WAL по умолчанию.
Чтобы создать полную копию в режиме ARCHIVE доставки WAL, выполните:
pg_probackup3 backup -Bкаталог_копий--instance=имя_экземпляра-b FULL
Резервное копирование ARCHIVE требует организации непрерывного архивирования, посредством которого считываются сегменты WAL, требующиеся для восстановления согласованного состояния кластера на момент создания копии.
3.1.2. Режим STREAM #
Чтобы сделать полную резервную копию в потоковом (STREAM) режиме, добавьте флаг --stream к команде, показанной выше:
pg_probackup3 backup -Bкаталог_копий--instance=имя_экземпляра-b FULL --stream
В отличие от копий ARCHIVE, копии типа STREAM включают все сегменты WAL, необходимые для восстановления согласованного состояния кластера на момент создания копии.
В процессе выполнения команды backup pg_probackup3 передаёт файлы WAL, содержащие записи от Start LSN до Stop LSN, в файл с резервной копией.
Даже если вы используете непрерывное архивирование, копирование в режиме STREAM может быть полезно в следующих случаях:
Копии типа STREAM могут быть восстановлены на сервере, не имеющем файлового доступа к архиву WAL.
Копии типа STREAM позволяют восстановить состояние кластера на тот момент времени, для которого уже нет файлов WAL.
3.1.3. Внешние каталоги #
Чтобы заархивировать каталог, размещённый вне каталога данных, воспользуйтесь необязательным параметром --external-dirs, в котором можно задать путь к нужному каталогу. Если вы хотите заархивировать несколько внешних каталогов, их пути нужно разделить двоеточиями в Linux.
Например, чтобы в системе Linux включить каталоги /etc/dir1 и /etc/dir2 в полную копию экземпляра имя_экземпляра, которая будет размещаться в каталоге_копий, выполните:
pg_probackup3 backup -Bкаталог_копий--instance=имя_экземпляра-b FULL --external-dirs=/etc/dir1:/etc/dir2
Например, чтобы включить каталоги C:\dir1 и C:\dir2 в полную копию, в Windows нужно выполнить:
pg_probackup3 backup -Bкаталог_копий--instance=имя_экземпляра-b FULL --external-dirs=C:\dir1;C:\dir2
Для каждого внешнего каталога pg_probackup3 создаёт отдельный подкаталог в каталоге резервной копии и рекурсивно копирует в него всё содержимое внешнего каталога. Так как внешние каталоги, попадающие в разные резервные копии, не обязательно должны быть одинаковыми, при восстановлении кластера из инкрементальной копии будут восстановлены только те каталоги, которые относятся именно к ней. Внешние каталоги, сохранённые в предыдущих копиях, восстановлены не будут.
Чтобы нужные каталоги включались в каждую резервную копию вашего кластера, их список можно сохранить в файле конфигурации pg_probackup3.conf, воспользовавшись командой set-config с ключом --external-dirs.
Примечание
Внешние каталоги не поддерживаются в режиме BASE.
3.1. Creating a Backup #
To create a backup, run the following command:
pg_probackup3 backup -Bbackup_dir--instance=instance_name-bbackup_mode-sbackup_source-ibackup_id
Where backup_mode can take one of the following values: FULL, DELTA, and PTRACK.
And backup_source can take one of these: DIRECT, BASE, and PRO.
Warning
The BASE and DIRECT backup data source modes do not support CFS.
Note
The BASE backup data source mode supports only FULL and DELTA backup modes.
Some options can be skipped depending on the user goals:
If
backup_modeis not specified, theFULLmode is used by default.PROis the default value forbackup_source.If the backup ID is not specified explicitly in the body of a request,
backup_idwill take the value of the date and time it was created.If the backup ID is specified and includes a path to a directory,
backup_dirandinstance_namecan be skipped without specification. Example: -i /mnt/ramdisk/backups/2.backup.If a path to the data directory is not specified either via
backup_diror via--backup-id, the current directory will be used as the default one.If you omit the parent backup ID when performing incremental backups, pg_probackup3 will use the latest valid backup from the backup chain. If pg_probackup3 somehow fails to find it, the backup process will conclude with an error.
If the
--from-fullparameter is specified, an incremental backup will be created from the last FULL backup.
3.1.1. ARCHIVE Mode #
ARCHIVE is the default WAL delivery mode.
To make a FULL backup in the ARCHIVE mode, run:
pg_probackup3 backup -Bbackup_dir--instance=instance_name-b FULL
ARCHIVE backups rely on continuous archiving to get WAL segments required to restore the cluster to a consistent state at the time the backup was taken.
3.1.2. STREAM Mode #
To make a FULL backup in the STREAM mode, add the --stream flag to the command from the previous example:
pg_probackup3 backup -Bbackup_dir--instance=instance_name-b FULL --stream
Unlike backups in the ARCHIVE mode, STREAM backups include all the WAL segments required to restore the cluster to a consistent state at the time the backup was taken.
During backup pg_probackup3 streams WAL files containing WAL records between Start LSN and Stop LSN to the backup file.
Even if you are using continuous archiving, STREAM backups can still be useful in the following cases:
STREAM backups can be restored on the server that has no file access to WAL archive.
STREAM backups enable you to restore the cluster state at the point in time for which WAL files in archive are no longer available.
3.1.3. External Directories #
To back up a directory located outside of the data directory, use the optional --external-dirs parameter that specifies the path to this directory. If you would like to add more than one external directory, you can provide several paths separated by colons on Linux systems.
For example, to include /etc/dir1 and /etc/dir2 directories into the full backup of your instance_name instance that will be stored under the backup_dir directory on Linux, run:
pg_probackup3 backup -Bbackup_dir--instance=instance_name-b FULL --external-dirs=/etc/dir1:/etc/dir2
Similarly, to include C:\dir1 and C:\dir2 directories into the full backup on Windows, run:
pg_probackup3 backup -Bbackup_dir--instance=instance_name-b FULL --external-dirs=C:\dir1;C:\dir2
pg_probackup3 recursively copies the contents of each external directory into a separate subdirectory in the backup catalog. Since external directories included into different backups do not have to be the same, when you are restoring the cluster from an incremental backup, only those directories that belong to this particular backup will be restored. Any external directories stored in the previous backups will be ignored.
To include the same directories into each backup of your instance, you can specify them in the pg_probackup3.conf configuration file using the set-config command with the --external-dirs option.
Note
External directories are not supported in the BASE mode.