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