Подготовка СУБД PostgreSQL

Управление резервным копированием выполняется командами с сервера клиенту. Взаимодействие с СУБД выполняется модулем PostgreSQL Universal на узле клиента (локально).

Резервное копирование СУБД может быть выполнено, если

  • обеспечена сетевая доступность узла СУБД с сервера и сервера — с клиента;

  • в настройках СУБД разрешено локальное подключение к СУБД пользователя, указанного в настройках модуля PostgreSQL Universal;

  • в настройках СУБД настроен режим архивирования.

1. Создание и настройка прав пользователя СУБД

Если для доступа к СУБД используется учетная запись не администратора СУБД, то для создания базовой резервной копии пользователь должен обладать правами на вызов функций начала и окончания резервного копирования экземпляра СУБД.

  1. Создайте в СУБД пользователя rubackup_backuper.

    create user rubackup_backuper password '12345'; (1)
    alter role rubackup_backuper with login;
    1 Вместо 12345 укажите желаемый пароль.
  2. Настройте права пользователя в СУБД для доступа.

    Пример 1. Предоставление прав на выполнение функций в PostgreSQL версии 15 и выше
    grant execute on function pg_backup_start(text,bool) to rubackup_backuper; (1)
    grant execute on function pg_backup_stop(bool) to rubackup_backuper; (1)
    grant execute on function pg_switch_wal() to rubackup_backuper;
    grant pg_read_all_settings to rubackup_backuper;
    Пример 2. Предоставление прав на выполнение функций в PostgreSQL версии 14 и ниже
    grant execute on function pg_start_backup(text,bool,bool) to rubackup_backuper; (1)
    grant execute on function pg_stop_backup(bool,bool) to rubackup_backuper; (1)
    grant execute on function pg_switch_wal() to rubackup_backuper;
    grant pg_read_all_settings to rubackup_backuper;

    В конфигурационном файле укажите имя созданного пользователя (username) и его пароль (password).

2. Доступ пользователя к СУБД

Правила доступа к СУБД задаются в файле pg_hba.conf. Файл устанавливает метод подключения (local — локально, host — по TCP/IP), ограничивает доступ базой данных или задачей (replication), предоставляет доступ пользователю с заданных адресов указанным методом аутентификации.

Добавьте в файл pg_hba.conf строки, указывающие на право пользователя rubackup_backuper на локальный (localhost, 127.0.0.1) доступ по TCP/IP к СУБД для резервного копирования и репликации. Закомментируйте строки, предоставляющие доступ неограниченному кругу лиц (host all all).

host   backupdb    rubackup_backuper  127.0.0.1/32  md5
host   replication rubackup_backuper  127.0.0.1/32  md5
Пример 3. Пример файла pg_hba.conf
# TYPE DATABASE    USER               ADDRESS       METHOD

# "local" is for Unix domain socket connections only
local  all         all                              md5

# IPv4 local connections:
# host   all         all                127.0.0.1/32  md5

# IPv6 local connections
# host   all         all                ::1/128       md5

# Allow replication connections from localhost, by a user with the
# replication privilege
local  replication all                              md5
host   replication all                127.0.0.1/32  md5
host   replication all                ::1/128       md5
host   backupdb    rubackup_backuper  127.0.0.1/32  md5
host   replication rubackup_backuper  127.0.0.1/32  md5

Если вы хотите подключаться из локальной сети (192.168.1.*) непосредственно к СУБД, добавьте в pg_hba.conf строку:

host   any   any   192.168.1.1/32  md5
Для доступа к СУБД необходимо открыть порт 5432 (или иной заданный в postgresql.conf) в фаерволе узла клиента. Пользователь, для которого требуется доступ к СУБД, должен существовать и иметь необходимые полномочия.