ELMA365 On-Premises > ELMA365 On-Premises Enterprise / Резервное копирование и восстановление баз данных: утилита Elma365-Backupper

Резервное копирование и восстановление баз данных: утилита Elma365-Backupper

Elma365-Backupper — утилита, позволяющая осуществлять резервное копирование данных приложения ELMA365.

Резервное копирование ELMA365 должно выполняться в составе:

  • PostgreSQL — в базе данных хранятся основные данные системы: пользователи, элементы приложений, настройки приложений, разделов, процессы, страницы, виджеты, задачи, события и другие настройки конфигурации;
  • MongoDB — в базе данных хранятся неструктурированные системные настройки, данные чатов и ленты;
  • S3 Object Storage — в объектном хранилище находятся загружаемые и создаваемые в ELMA365 файлы любого типа и объёма, например, документы, фотографии, аудио- и видеофайлы.

Начало внимание

Во время создания резервной копии сервисы ELMA365 останавливаются, приложение становится недоступным.

Конец внимание

Резервное копирование и восстановление баз данных состоит из четырёх этапов:

  1. Установка Elma365-Backupper.
  2. Настройка Elma365-Backupper.
  3. Резервное копирование баз данных.
  4. Восстановление баз данных.

ШАГ 1: Установка Elma365-Backupper

  1. Установите пакеты:

sudo apt install -y apt-transport-https ca-certificates curl

  1. Импортируйте ключи:

sudo curl -fsSL https://repo.elma365.tech/deb/elma365-keyring.gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/elma365-keyring.gpg

  1. Добавьте репозиторий ELMA365:

echo "deb [arch=amd64] https://repo.elma365.tech/deb $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/elma365.list
sudo apt update

  1. Установите Elma365-Backupper:

sudo apt install elma365-backupper

Установка для Red Hat-подобных операционных систем

ШАГ 2: Настройка Elma365-Backupper

  1. Откройте файл конфигурации /opt/elma365/backupper/etc/config:

nano /opt/elma365/backupper/etc/config

  1. В открывшемся файле заполните параметры:
  • KUBECONFIG — путь до файла kubeconfig, задаётся для выбора кластера и связи с API-сервером кластера Kubernetes. Если параметр не задан, будет использоваться значение $HOME/.kube/config;
  • BACKUP_DST — директория, в которую сохранится резервная копия. Доступные варианты директорий:
    • filesystem — резервная копия сохранится в локальную файловую систему по пути, указанному в параметре BACKUP_PATH;
    • s3 — резервная копия сохранится в S3 хранилище. Для установления соединения будут использоваться значения, заданные в параметрах S3_BUCKET_NAME, S3_HOST, S3_PORTS3_ROOT_USER, S3_ROOT_PASSWORD, S3_SSL_ENABLED;
  • K8S_NS_APP — namespace, в котором установлено приложение ELMA365;
  • K8S_NS_DBS — namespace, в котором установлены встроенные базы данных, развёрнутые в Kubernetes-кластере с помощью статьи «Подготовка встроенных баз данных».

Убедитесь, что порты 7000, 7001, 7002 свободны и могут быть использованы для переадресации портов для доступа к базам данных в Kubernetes-кластере. При необходимости переопределить порты можно в параметрах S3_SRC_PORT, PG_SRC_PORT, MONGO_SRC_PORT;

  • BACKUP_LIFE — период хранения резервных копий в днях. Резервные копии старше указанного значения будут удаляться при выполнении очередного резервного копирования;
  • TMP_DIR — директория для хранения временных резервных копий. В директории должно быть достаточно места для хранения одной резервной копии. В указанной директории происходит сборка резервной копии, затем файлы резервной копии перемещаются в целевое место хранения, указанное в параметре BACKUP_DST.

Пример заполненного файла

ШАГ 3: Резервное копирование баз данных

Выполните резервное копирование баз данных приложения ELMA365:

elma365-backupper backup <<db-type>>

где <<db-type>> — наименование базы данных, для которой необходимо выполнить резервное копирование. Варианты значений аргумента:

  • mongo — MongoDB;
  • postgres — PostgreSQL;
  • s3 — S3 хранилище;
  • all — все базы данных (MongoDB, PostgreSQL, S3).

Дополнительные ключи команды backup

ШАГ 4: Восстановление баз данных

Вы можете восстановить базы данных из последней или определённой версии резервной копии.

Начало внимание

Восстановление из резервной копии должно производиться в пустые базы данных и S3 хранилище.

Перед восстановлением данных из резервной копии очистите базы данных и S3 хранилище или воспользуйтесь ключом --cleanup-databases.

Конец внимание

Подробнее о подготовке БД к восстановлению читайте в статьях «PostgreSQL» и «MongoDB».

Восстановление из последней резервной копии

Выполните команду:

elma365-backupper restore <<db-type>>

где <<db-type>> — наименование базы данных, для которой нужно получить список резервных копий. Варианты значений аргумента:

  • mongo — MongoDB;
  • postgres — PostgreSQL;
  • s3 — S3 хранилище;
  • all — все базы данных (MongoDB, PostgreSQL, S3).

С помощью этой команды вы сможете восстановить базы данных на последнюю резервную копию, найденную в хранилище. 

Восстановление из определённой резервной копии

  1. Получите список резервных копий из хранилища:

elma365-backupper backup-list <<db-type>>

где <<db-type>> — наименование базы данных, для которой нужно получить список резервных копий. Варианты значений аргумента:

  • mongo — MongoDB;
  • postgres — PostgreSQL;
  • s3 — S3 хранилище;
  • all — все базы данных (MongoDB, PostgreSQL, S3).

Дополнительные ключи команды backup-list

В зависимости от способа хранения резервных копий, указанного в параметре BACKUP_DST, команда backup-list вернёт:

  • при указании значения s3 — наименования директорий с дампами в S3 хранилище;
  • при указании значения filesystem — абсолютные пути до директорий с дампами в файловой системе.
  1. Выполните восстановление баз данных из определённой резервной копии:

elma365-backupper restore <<db-type>> --backup-path /path/to/backup

Загрузка резервной копии для восстановления баз данных происходит из хранилища, указанного в параметре BACKUP_DST:

  • если указано S3 хранилище:

elma365-backupper restore <<db-type>> --backup-path ELMA365_YYYY.MM.DD-HH.MI.SS

  • если указана локальная директория:

elma365-backupper restore <<db-type>> --backup-path /opt/elma365/backupper/backup/ELMA365_YYYY.MM.DD-HH.MI.SS/

Дополнительные ключи команды restore