Решение проблем

1. Настройка SELinux

В некоторых случаях SELinux может блокировать выполнение резервного копирования. На это может указывать ошибка в журнале:

cp: cannot create regular file
'/opt/rubackup/mnt/postgresql_archives/00000001000004B500000077':
Permission denied

Чтобы устранить ошибку, выполните следующие шаги:

  1. Установите инструменты управления SELinux: пакет policycoreutils-python-utils (или policycoreutils-python, в зависимости от дистрибутива).

    • RHEL, CentOS, Fedora

    • Debian, Ubuntu

    sudo yum install policycoreutils-python-utils
    sudo apt install policycoreutils-python-utils
  2. Создайте пользовательский модуль политики SELinux.

    Сначала создайте файл для определения вашей пользовательской политики. Например, создайте файл с именем my_custom_policy.te:

    vi my_custom_policy.te

    Добавьте в этот файл следующее содержимое, заменив /path/to/your/folder фактическим путем к каталогу, который вы хотите исключить из ограничений, а my_custom_t — пользовательским типом.

    module my_custom_policy 1.0;
    require
    {
      type unconfined_t;
      type my_custom_t;
    }
    type my_custom_t;
    allow unconfined_t my_custom_t:file { read write execute };
    allow unconfined_t my_custom_t:dir { read write add_name remove_name };
  3. Скомпилируйте модуль политики.

    checkmodule -M -m -o my_custom_policy.mod my_custom_policy.te
    semodule_package -o my_custom_policy.pp -m my_custom_policy.mod
  4. Установите модуль политики.

    sudo semodule -i my_custom_policy.pp
  5. Пометьте каталог пользовательским типом SELinux:

    Используйте команду semanage fcontext, чтобы добавить контекст, и команду restorecon, чтобы его применить.

    sudo semanage fcontext -a -t my_custom_t "/path/to/your/folder(/.*)?"
    sudo restorecon -R -v /path/to/your/folder

2. Резервное копирование в Astra Linux

При настройке резервного копирования в ОС Astra Linux SE 1.6 и 1.7 необходимо в файле /etc/parsec/mswitch.conf для параметра zero_if_notfound установить значение yes и перезагрузить СУБД.

3. Восстановление с развертыванием в Alt Linux

Для корректного восстановления с развертыванием в ОС Alt Linux в файле /etc/passwd необходимо:

  1. Добавить строку:

    postgres:x:46:46:PostgreSQL Server:/var/lib/pgsql:/bin/bash
  2. Закомментировать строку:

    postgres:x:46:46:PostgreSQL Server:/var/lib/pgsql:/dev/null

4. Настройка ведомых серверов в кластерах Patroni

Проблема

Резервное копирование не с узла-лидера в кластере Patroni завершается с ошибкой.

Решение

Установите в настройках кластера wal_level = always для ведомых серверов.