Elma365-Backupper — утилита, позволяющая осуществлять резервное копирование данных приложения ELMA365.
Резервное копирование ELMA365 должно выполняться в составе:
- PostgreSQL — в базе данных хранятся основные данные системы: пользователи, элементы приложений, настройки приложений, разделов, процессы, страницы, виджеты, задачи, события и другие настройки конфигурации;
- MongoDB — в базе данных хранятся неструктурированные системные настройки, данные чатов и ленты;
- S3 Object Storage — в объектном хранилище находятся загружаемые и создаваемые в ELMA365 файлы любого типа и объёма, например, документы, фотографии, аудио- и видеофайлы.
Начало внимание
Во время создания резервной копии сервисы ELMA365 останавливаются, приложение становится недоступным.
Конец внимание
Резервное копирование и восстановление баз данных состоит из четырёх этапов:
- Установка Elma365-Backupper.
- Настройка Elma365-Backupper.
- Резервное копирование баз данных.
- Восстановление баз данных.
ШАГ 1: Установка Elma365-Backupper
- Установите пакеты:
sudo apt install -y apt-transport-https ca-certificates curl
- Импортируйте ключи:
sudo curl -fsSL https://repo.elma365.tech/deb/elma365-keyring.gpg | gpg --dearmor > /etc/apt/trusted.gpg.d/elma365-keyring.gpg
- Добавьте репозиторий 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
- Установите Elma365-Backupper:
sudo apt install elma365-backupper
Установка для Red Hat-подобных операционных систем
cat <<EOF | sudo tee /etc/yum.repos.d/elma365.repo Обратите внимание, rpm-пакет доступен только для Red Hat Enterprise Linux версии 9.
dnf install elma365-backupper |
ШАГ 2: Настройка Elma365-Backupper
- Откройте файл конфигурации
/opt/elma365/backupper/etc/config
:
nano /opt/elma365/backupper/etc/config
- В открывшемся файле заполните параметры:
KUBECONFIG
— путь до файла kubeconfig, задаётся для выбора кластера и связи с API-сервером кластера Kubernetes. Если параметр не задан, будет использоваться значение$HOME/.kube/config
;BACKUP_DST
— директория, в которую сохранится резервная копия. Доступные варианты директорий:
filesystem
— резервная копия сохранится в локальную файловую систему по пути, указанному в параметреBACKUP_PATH
;s3
— резервная копия сохранится в S3 хранилище. Для установления соединения будут использоваться значения, заданные в параметрахS3_BUCKET_NAME
,S3_HOST
,S3_PORT
,S3_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
.
# Параметр KUBECONFIG — путь до файла kubeconfig, используется для подключения к Kubernetes-кластеру |
ШАГ 3: Резервное копирование баз данных
Выполните резервное копирование баз данных приложения ELMA365:
elma365-backupper backup <<db-type>>
где <<db-type>>
— наименование базы данных, для которой необходимо выполнить резервное копирование. Варианты значений аргумента:
mongo
— MongoDB;postgres
— PostgreSQL;s3
— S3 хранилище;all
— все базы данных (MongoDB, PostgreSQL, S3).
Дополнительные ключи команды backup
Пример команды: elma365-backupper backup <<db-type>> --storage /opt/elma365/backupper/backup/
Пример команды: elma365-backupper backup <<db-type>> --config /opt/elma365/backupper/etc/config |
ШАГ 4: Восстановление баз данных
Вы можете восстановить базы данных из последней или определённой версии резервной копии.
Начало внимание
Восстановление из резервной копии должно производиться в пустые базы данных и S3 хранилище.
Перед восстановлением данных из резервной копии очистите базы данных и S3 хранилище или воспользуйтесь ключом --cleanup-databases
.
Конец внимание
Подробнее о подготовке БД к восстановлению читайте в статьях «PostgreSQL» и «MongoDB».
Восстановление из последней резервной копии
Выполните команду:
elma365-backupper restore <<db-type>>
где <<db-type>>
— наименование базы данных, для которой нужно получить список резервных копий. Варианты значений аргумента:
mongo
— MongoDB;postgres
— PostgreSQL;s3
— S3 хранилище;all
— все базы данных (MongoDB, PostgreSQL, S3).
С помощью этой команды вы сможете восстановить базы данных на последнюю резервную копию, найденную в хранилище.
Восстановление из определённой резервной копии
- Получите список резервных копий из хранилища:
elma365-backupper backup-list <<db-type>>
где <<db-type>>
— наименование базы данных, для которой нужно получить список резервных копий. Варианты значений аргумента:
mongo
— MongoDB;postgres
— PostgreSQL;s3
— S3 хранилище;all
— все базы данных (MongoDB, PostgreSQL, S3).
Дополнительные ключи команды backup-list
Пример команды: elma365-backupper backup <<db-type>> --storage /opt/elma365/backupper/backup/
Пример команды: elma365-backupper backup <<db-type>> --config /opt/elma365/backupper/etc/config |
В зависимости от способа хранения резервных копий, указанного в параметре BACKUP_DST
, команда backup-list вернёт:
- при указании значения
s3
— наименования директорий с дампами в S3 хранилище; - при указании значения
filesystem
— абсолютные пути до директорий с дампами в файловой системе.
- Выполните восстановление баз данных из определённой резервной копии:
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
Пример команды: elma365-backupper restore <<db-type>> --backup-path /path/to/backup --cleanup-databases
Пример команды: elma365-backupper restore <<db-type>> --backup-path /path/to/backup --config /opt/elma365/backupper/etc/config |