Конфигурационный файл /opt/rubackup/etc/rb_module_postgresql.conf

Обязательные к заполнению параметры обозначены символом .

Таблица 1. Параметры конфигурационного файла /opt/rubackup/etc/rb_module_postgresql.conf
Параметр Назначение

dbname

Имя базы данных, к которой будет происходить подключение для резервного копирования всей СУБД

По умолчанию

postgres

username

Имя пользователя в СУБД, обладающего правами выполнять резервное копирование

По умолчанию

rubackup_backuper

password

Пароль для пользователя, указанного в параметре username

По умолчанию

12345

host

IP-адрес или доменное имя локального хоста, на котором СУБД принимает подключения

По умолчанию

localhost

Необходим для взаимодействия c СУБД, резервное копирование которой выполняется

port

Порт для соединения с СУБД

По умолчанию

5432

postgresql_admin

Login администратора PostgreSQL в операционной системе

По умолчанию

postgres

pg_ctl

Полный путь до утилиты pg_ctl

По умолчанию

/usr/lib/postgresql/12/bin/pg_ctl

Параметр используется при восстановлении с развертыванием для остановки и запуска сервиса СУБД

Используется, если не задано значение параметра postgresql_service_name

postgresql_service_name

Имя systemd службы СУБД

По умолчанию

postgresql

Параметр используется при восстановлении с развертыванием для остановки и запуска сервиса СУБД через systemctl

Используется, если не задано значение параметра pg_ctl

auto_remove_wal

Удалять ли архивные WAL-файлы из каталога, указанного в параметре archive_catalog

Возможные значения

yes, no

По умолчанию

yes

При значении:

  • yes архивные WAL-файлы удаляются из каталога archive_catalog после выполнения резервного копирования (если они включены в резервную копию);

  • no архивные WAL-файлы не удаляются.

wal_wait_timeout

Период (в секундах) ожидания окончания архивации последнего WAL-файла, сгенерированного во время создания резервной копии

По умолчанию

10

wal_check_period

Период (в секундах) проверки окончания архивации последнего WAL-файла, сгенерированного во время создания резервной копии

По умолчанию

1

use_secret_storage

Использование хранилища секретов HashiCorp Vault v1.16.3

По умолчанию

no

keep_wal_chain

Сохранять цепочку WAL-файлов даже при полном резервном копировании

Возможные значения

yes, no

По умолчанию

no

auto_switch_full

Автоматически переключать на полное резервное копирование, если произошла ошибка выполнения инкрементального резервного копирования

Возможные значения

yes, no

По умолчанию

yes

operation_timeout

Таймаут (в секундах) запуска/остановки сервиса СУБД

По умолчанию

0

version_override

Принудительное указание версии ресурса для случаев, когда СУБД, основанная на PostgreSQL, возвращает некорректную или нестандартную версию. Указывается мажорная и минорная версия через точку (.)

По умолчанию

99.99

instance_name

Изменение переменной части имени ресурса

По умолчанию

custom_name

По умолчанию имя ресурса имеет формат PostgreSQL (<port>), где PostgreSQL - постоянная часть имени, (<port>) - переменная часть имени.

Параметр instance_name позволяет задать переменную часть имени ресурса в свободном формате

Значение может содержать:

  • не более 128 символов;

  • заглавные буквы;

  • строчные буквы;

  • цифры;

  • спецсимволы: ()[]._.

Используется, если параметру legacy_instance_name установлено значение no

legacy_instance_name

Использовать формирование имени ресурса, совместимое с прошлыми версиями

Возможные значения

yes, no

По умолчанию

no

По умолчанию имя ресурса имеет новый формат PostgreSQL (<port>), где PostgreSQL - постоянная часть имени, (<port>) - переменная часть имени.

Значение yes параметра legacy_instance_name позволяет использовать старый способ именования ресурса в формате PostgreSQL <Версия Major>.<Версия Minor>. Значение параметра instance_name игнорируется

archive_catalog

Каталог для хранения архивных WAL-файлов

По умолчанию

/opt/rubackup/mnt/postgresql_archives

move_on_archive_get

Перенос WAL-файлов вместо копирования

Возможные значения

yes, no

По умолчанию

yes

При значении:

  • yes WAL-файлы будут перемещены;

  • no будут созданы копии WAL-файлов.

num_threads_for_wal_archiving

Количество потоков для архивации WAL-файлов

По умолчанию

1

batch_size_for_wal_archiving

Количество обрабатываемых WAL-файлов, которые одновременно отправляются в архивный каталог

По умолчанию

1

wal_archive_files_size

Максимальный размер архивных WAL-файлов, хранимых локально (в МБ)

По умолчанию

0

При превышении размера архива запускается фоновая очистка. Во время резервного копирования очистка блокируется.

При значении 0 размер не ограничен

Может использоваться только если команды архивирования и восстановления WAL-файлов выполняются через утилиту rb_module_postgresql (см. Настройка архивирования журналов транзакций)

cleanup_wait_timeout

Максимальное время ожидания (в секундах) освобождения архивного каталога, которое ждет процесс резервного копирования

По умолчанию

1000

make_archiving_check

Проверка работы архивации WAL-файлов до запуска длительного резервного копирования

Возможные значения

yes, no

По умолчанию

yes

При значении:

  • yes выполняется проверка команд архивации перед резервным копированием. Если проверка завершилась успешно, то резервное копирование происходит в штатном режиме. Если проверка завершилась неудачно, то резервное копирование не запускается, в журнале появляется соответствующая запись;

  • no проверка команд архивации перед резервным копированием не выполняется.

restore_target_action

Восстановление целевого действия

Возможные значения

pause, promote, shutdown

По умолчанию

promote

При значении:

  • pause восстановление будет приостановлено;

  • promote восстановление будет продолжено;

  • shutdown восстановление не производится.

wal_sum_max_retries

Попытки проверки, что wal summarizer успел внести все изменения в summary файлы

По умолчанию

20

replication_catalog

Абсолютный путь до каталога с репликационными данными

По умолчанию

/opt/rubackup/mnt/postgresql_replica

Используется только для доставки WAL-файлов в режиме stream

pg_receivewal

Путь до утилиты pg_receivewal

По умолчанию

/usr/lib/postgresql/10/bin/pg_receivewal

Утилита pg_receivewal обрабатывает ошибки и сохраняет файлы

Используется только для доставки WAL-файлов в режиме stream

drop_slot

Выполняет удаление физического слота

Возможные значения

yes, no

По умолчанию

no

При значении:

  • yes физический слот будет удален;

  • no физический слот удален не будет.

Используется только для доставки WAL-файлов в режиме stream

slot_name

Имя, с которым необходимо создать физический слот

По умолчанию

my_slot_name

Если значение не задано, то используется физический слот, заданный в системе

Используется только для доставки WAL-файлов в режиме stream

patroni_host

IP-адрес, на котором Patroni принимает входящие запросы Rest API

По умолчанию

localhost

Параметр необходим только для взаимодействия модуля с Rest API локального процесса Patroni.

Если значение параметра не указано, то оно определяется через утилиту lsof

patroni_port

Порт, на котором локальный процесс Patroni слушает запросы Rest API

По умолчанию

8008

Параметр необходим только для взаимодействия модуля с Rest API локального процесса Patroni.

Если значение параметра не указано, то оно определяется через утилиту lsof

patroni_node_type_for_backup

Роль узла в кластере Patroni, при которой ресурс будет доступен

Возможные значения

leader, sync, async

По умолчанию

leader

При значении:

  • leader ресурс будет доступен только при условии, что узел на котором установлен модуль с таким значением имеет роль leader в кластере Patroni;

  • sync ресурс будет доступен только при условии, что узел, на котором установлен модуль с таким значением, имеет роль sync stanby в кластере Patroni;

  • async ресурс будет доступен только при условии, что узел, на котором установлен модуль с таким значением, имеет роль replica в кластере Patroni.

patroni_https

Позволяет использовать режим HTTPS при работе с Patroni

Возможные значения

yes, no

По умолчанию

no

При значении:

  • yes режим HTTPS может использоваться;

  • no режим HTTPS не может использоваться.

patroni_ca

Путь к корневому сертификату, если требуется проверка сертификата сервера Patroni

По умолчанию

/etc/ssl/ca.crt

pg_waldump

Путь до утилиты pg_waldump

По умолчанию

/usr/lib/postgresql/12/bin/pg_waldump

Используется для работы подтипа инкрементального резервного копирования page. Параметр необходим, если наблюдаются проблемы с запуском или остановкой сервиса postgresql через pg_ctl.

Местонахождение pg_waldump зависит от используемой СУБД

num_threads_for_wal_processing

Количество процессов, выделенных для обработки архивных WAL-файлов

По умолчанию

8

restore_target

В каком состоянии будет восстановлена БД

Возможные значения

immediate, latest

По умолчанию

immediate

При значении:

  • immediate БД будет восстановлена в самом раннем состоянии;

  • latest БД будет восстановлена в самом позднем состоянии, исходя из содержимого архива WAL.

Используется только для подмодуля pg_probackup

pg_probackup

Абсолютный путь до утилиты pg_probackup

По умолчанию

/opt/pgpro/std-13/bin/pg_probackup

Используется только для подмодуля pg_probackup

probackup_catalog_copies

Абсолютный путь до каталога для хранения резервных копий

По умолчанию

/opt/rubackup/mnt/pg_probackup

Используется только для подмодуля pg_probackup

probackup_instance_name

Имя подкаталога для хранения резервных копий

По умолчанию

data

Используется только для подмодуля pg_probackup

check_probackup_version

Нужно ли проверять версию probackup

По умолчанию

yes, no

По умолчанию

yes

Используется только для подмодуля pg_probackup

s3_interface

Интерфейс облачного хранилища

По умолчанию

minio, vk

По умолчанию

minio

При значении:

  • minio будет использоваться объектное хранилище MinIO, совместимое с облачным хранилищем S3;

  • vk будет использоваться хранилище VK.

Используется только для подмодуля pg_probackup

pg_binary

Путь к исполняемому файлу postgres

По умолчанию

/usr/bin/custom/postgres

Необходим при использовании утилиты pg_ctl для запуска СУБД при восстановлении с развертыванием

pg_log

Путь до файла, в который будет направляться вывод сообщений сервера

По умолчанию

/tmp/postgres.log

Необходим при использовании утилиты pg_ctl для запуска СУБД при восстановлении с развертыванием
Пример листинга конфигурационного файла /opt/rubackup/etc/rb_module_postgresql.conf
# Symbol "#" at the beginning of the line treats as a comment
# "#" in the middle of the line treats as a parameter value
# So please do not use comments in one line with parameter
#
#
# ----- General -----
#
#dbname postgres
#username rubackup_backuper
#password 12345
#host localhost
#port 5432
#postgresql_admin postgres
# Specify this path according to the installed version
#pg_ctl /usr/lib/postgresql/12/bin/pg_ctl
#postgresql_service_name postgresql
#auto_remove_wal yes
# Timeout period for the last WAL file generated during backup(in seconds)
#wal_wait_timeout 10
# Availability check period for last WAL file generated during backup(in seconds)
#wal_check_period 1
#Enable interaction with centralized secret repositories
#use_secret_storage no
#keep wal files chain even for full backup
#keep_wal_chain no
# Переключаться или нет на полный бэкап если невозможно выполнить инкрементальный/дифф
#auto_switch_full yes
# Таймаут старт/стоп БД. В секундах. 0 - использовать системный дефолт. Обычно 60 сек.
#operation_timeout 0
# Переопределение версии БД
#version_override 99.99
# Имя инстанса
#instance_name custom_name
# Использовать формирование имени ресурса совместимое с прошлыми версиями
#legacy_instance_name no
#
# ----- Wal Archiving -----
#
#archive_catalog /opt/rubackup/mnt/postgresql_archives
# Использовать move для переноса WAL из архива вместо копирования
#move_on_archive_get yes
# Количество потоков для архивации WAL
#num_threads_for_wal_archiving 1
# Количество файлов обрабатываемых за один вызов архивации
#batch_size_for_wal_archiving 1
# Макс. размер хранимых локально архивных WAL файлов (0 - нет лимита)
#wal_archive_files_size 0
# Макс. время в секундах которое процесс снятия РК ждет освобождения архивного каталога
#cleanup_wait_timeout 1000
# Выполнять проверку работы команд архивации перед снятием РК
#make_archiving_check yes
#
# ----- Параметры для восстановления РК -----
#
# Возможные значения для restore_target_action: [pause  promote  shutdown]
#restore_target_action promote
#
# ----- Wal Summarizer -----
#
# Попытки проверки, что wal summarizer успел внести все изменения в summary файлы
#wal_sum_max_retries 20
#
# ----- Stream -----
#
# Директория для сохранения репликационных данных
#replication_catalog /opt/rubackup/mnt/postgresql_replica
# Путь до утилиты pg_receivewal (физическая репликация), начиная с 10 версии
#pg_receivewal /usr/lib/postgresql/10/bin/pg_receivewal
# Выполнить drop физического слота с именем slot_name после создания РК
#drop_slot no
# Использовать физический слот, заданный в системе, иначе создать с указанным именем
#slot_name my_slot_name
#
# ----- Patroni -----
#
# and may be needed for the module work in a patroni cluster
#patroni_host localhost
#patroni_port 8008
#patroni_node_type_for_backup leader
#patroni_https no
#patroni_ca /etc/ssl/ca.crt
#
# ----- Page -----
#
#pg_waldump /usr/lib/postgresql/12/bin/pg_waldump
#num_threads_for_wal_processing 8
#
# ----- pg_probackup -----
#
# Возможные значения для restore_target: [immediate | latest]
#restore_target immediate
# Абсолютный путь до утилиты pg_probackup
#pg_probackup /opt/pgpro/std-13/bin/pg_probackup
# Абсолютный путь до каталога, в котором хранятся резервные копии
#probackup_catalog_copies /opt/rubackup/mnt/pg_probackup
# Имя инстанса. Имя подкаталогов, в которых будут храниться копии
#probackup_instance_name data
# Нужно ли проверять версию probackup
#check_probackup_version yes
#
# ----- S3 -----
#
# Возможные значения для s3_interface: [minio | vk]
#s3_interface minio
#
# ----- Custom PostgreSQL build -----
#
# Specify if custom built PostgreSQL binary is required
# pg_binary /usr/bin/custom/postgres
# Specify if server output should be redirected to the file
# pg_log /tmp/postgres.log
#
# Variables value
username
password
port
postgresql_admin
pg_ctl
auto_remove_wal
wal_wait_timeout
wal_check_period
legacy_instance_name
archive_catalog