Перейти к основному содержимому
Версия: 4.5.X

Настройка создания и сохранения резервной копии

Порядок выполняемых действий:

  1. Настроить PostgreSQL

  2. Дать пользователю проверку доступа типа trust в /etc/postgres/version/main/pg_hba.conf:

    sudo nano /etc/postgresql/"номер_версии"/main/pg_hba.conf

    Напротив имени пользователя в графе METHOD изменить тип проверки на trust:

    # Database administrative login by Unix domain socket
    local all postgres trust
    примечание

    Для сохранения файла используйте Ctrl+O ⇒ Enter ⇒ Ctrl+X.

    Перезагрузить PostgreSQL:

    systemctl restart postgresql
  3. Перейти в директорию /opt/echelon/komrad/bin:

    cd /opt/echelon/komrad/bin
  4. Настроить хранилище minio (komrad-s3). После установки хранилище запускается автоматически, проверить его статус можно с помощью команды:

    systemctl status komrad-s3

    Если сервис не запущен, то можно создать сервер в репозитории с помощью следующей команды:

    ./komrad-s3 server /var/lib/postgresql/version/main

    Или запустить шлюз объектного хранилища s3 с помощью команды:

    ./komrad-s3 gateway s3 "конечная точка хранилища"
  5. Настроить конфигурацию политики и пользователя:

    • Проверить адрес консоли управления хранилищем можно с помощью команды:
    systemctl status komrad-s3
    • При переходе по данному адресу открывается интерфейс взаимодействия с хранилищем. Авторизация проходит по логину - komrad-s3 и паролю - komrad-s3-password

    • Настройка политики находится на вкладке "Пользователи", далее "Policies". Создание политики осуществляется с помощью кнопки Create Policy. В открывшемся окне необходимо придумать название политики, добавить следующую конфигурацию и сохранить:

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "s3:DeleteBucketPolicy",
    "s3:GetBucketPolicy",
    "s3:ListAllMyBuckets",
    "s3:ListBucket",
    "s3:PutBucketPolicy"
    ],
    "Resource": [
    "arn:aws:s3:::имя контейнера"
    ]
    },
    {
    "Effect": "Allow",
    "Action": [
    "s3:PutObject",
    "s3:AbortMultipartUpload",
    "s3:DeleteObject",
    "s3:GetObject",
    "s3:ListMultipartUploadParts"
    ],
    "Resource": [
    "arn:aws:s3:::имя контейнера/*"
    ]
    }
    ]
    }
    • Для активации политики необходимо создать пользователя во вкладке "Users" с помощью нажатия кнопки Create User, придумать логин (он является ключом доступа accesskey) и пароль (он является секретным ключом secretkey), выбрать созданную политику и сохранить
  6. Настроить агента хранилища (komrad-s3-agent)

    • Указать псевдоним хранилища с помощью команды:
    ./komrad-s3-admin alias set "псевдоним хранилища" "адрес хранилища s3" "ключ доступа (accesskey)" "секретный ключ (secretkey)"
    примечание

    Если Вы создали пользователя с именем user и паролем pass и хотите подключить хранилище, находящееся на локальном компьютере по порту 9050, выдав ему псевдоним myminio, то данная команда будет иметь вид:

    ./komrad-s3-admin alias set myminio localhost:9050 user pass
    • Создать контейнер для сбора резервных копий:
    ./komrad-s3-admin mb "псевдоним хранилища/имя контейнера"
    • Проверить, создался ли контейнер:
    ./komrad-s3-admin ls "псевдоним хранилища/"
  7. Создать файл в домашнем репозитории пользователя postgres .walg.json:

    sudo nano "домашний репозиторий/".walg.json

    Добавить в файл содержимое:

    {
    "WALE_S3_PREFIX": "s3://имя контейнера",
    "AWS_ACCESS_KEY_ID": "имя пользователя из п.5",
    "AWS_ENDPOINT": "http://адрес хранилища",
    "AWS_S3_FORCE_PATH_STYLE": "true",
    "AWS_SECRET_ACCESS_KEY": "пароль пользователя из п.5",
    "PGDATA": "/var/lib/postgresql/version/main",
    "PGHOST": "/var/run/postgresql/",
    "WALG_UPLOAD_CONCURRENCY": "2",
    "WALG_DOWNLOAD_CONCURRENCY": "2",
    "WALG_UPLOAD_DISK_CONCURRENCY": "2",
    "WALG_DELTA_MAX_STEPS": "7",
    "WALG_COMPRESSION_METHOD": "zstd"
    }
    примечание

    Если имя Вашего пользователя user и пароль pass, имя созданного контейнера backet, хранилище находится на локальном компьютере по порту 9050, а версия PostgeSQL является 11, то данная конфигурация для Вас будет иметь следующий вид:

    {
    "WALE_S3_PREFIX": "s3://backet",
    "AWS_ACCESS_KEY_ID": "user",
    "AWS_ENDPOINT": "http://localhost:9050",
    "AWS_S3_FORCE_PATH_STYLE": "true",
    "AWS_SECRET_ACCESS_KEY": "pass",
    "PGDATA": "/var/lib/postgresql/11/main",
    "PGHOST": "/var/run/postgresql/",
    "WALG_UPLOAD_CONCURRENCY": "2",
    "WALG_DOWNLOAD_CONCURRENCY": "2",
    "WALG_UPLOAD_DISK_CONCURRENCY": "2",
    "WALG_DELTA_MAX_STEPS": "7",
    "WALG_COMPRESSION_METHOD": "zstd"
    }
  8. Сделать резервную копию и загрузить в хранилище с помощью команды:

    ./komrad-backup postgres backup-push /var/lib/postgresql/version/main
  9. Для восстановления резервной копии необходимо выполнить следующие шаги:

    • Посмотреть список резервных копий с помощью команды:
    ./komrad-backup postgres backup-list
    • Скачать нужную резервную копию в любую директорию:
    ./komrad-backup postgres backup-fetch /home/share/ "название резервной копии"
    • Перенести файлы в репозиторий /var/lib/postgresql/version/, удалив файл /var/lib/postgresql/version/main/backup_label

    • Перезагрузить сервис PostgreSQL:

    systemctl restart postgresql