4. Резервное копирование и восстановление
4.1. Основные понятия
Задачи резервного копирования разделяются на 2 типа:
Создание резервных копий Datamart Platform Studio (Оркестратора Витрин данных)
При этом производится сохранение всех данных, содержащихся в папке Datamart Platform Studio, включающих в себя настройки доступа к инфраструктуре, конфигурацию услуг со всеми настройками и настроечными файлами, данные бандлов и приложений, используемых в Datamart Platform Studio и хранящихся в папке DMS-DIRS и в БД Студии, настройки доступа к БД, глобальные параметры.
Важно
При создании резервной копии Datamart Platform Studio не производится резервное копирование данных Витрин и прочих услуг!
Размер файла резервной копии Datamart Platform Studio зависит от объема данных, хранимых в Datamart Platform Studio и не зависит от объема данных Витрин и прочих услуг, добавленных в Datamart Platform Studio.
Создание резервных копий услуг типа Витрина данных
При создании резервных копий Витрин данных производится полное сохранение статуса Витрины - всех данных, содержащихся в Витрине на момент копирования (в СУБД Витрины и сервисах потоковой обработки данных).
Важно
При создании резервной копии Витрины, происходит сохранение данных Витрины, но не настроек приложений.
Размер файла резервной копии Витрины зависит от объема данных, хранимых в Витрине. Для обеспечения процесса непрерывности функционирования Витрин в процессе резервного копирования и консистентности данных, сначала создается копия Витрины, потом происходит её упаковка в файл архива. В связи с этим, при расчете требуемого места необходимо учитывать, что помимо места для хранения файлов архивов резервных копий, необходимо предусмотреть достаточный объем диска для хранения еще одной копии данных Витрины для обеспечения процесса резервного копирования.
4.2. Резервное копирование из веб-интерфейса
Примечание
Выполнение процедур бэкап из интерфейса Datamart Platform Studio разрешено только пользователям с ролями superadmin, admin, backup (см. раздел «Права ролей в Datamart Platform Studio»)
4.2.1. Резервное копирование и восстановление Datamart Platform Studio
Для вызова задачи резервного копирования данных Студии в меню пользователя Студии необходимо выбрать пункт «Резервное копирование», затем «Создать резервную копию».
Для восстановления Студии из резервной копии в меню пользователя необходимо выбрать пункт «Резервное копирование», выбрать требуемый файл для восстановления и выбрать опцию «Восстановить».
При восстановлении веб-интерфейс Студии будет отключен, доступ к нему возобновится после восстановления.
4.2.2. Резервное копирование и восстановление услуг типа Витрин данных НСУД
Для выполнения резервного копирования и восстановления Витрин данных, Datamart Platform Studio использует утилиту Типового ПО Витрин данных Backup Manager.
Для вызова утилиты в разделе Бекапы Витрины в интерфейсе Datamart Platform Studio необходимо выбрать опцию «Создать».
Для восстановления в разделе Бекапы Витрины в интерфейсе Datamart Platform Studio необходимо у файла резервной копии, из которого необходимо выполнить восстановление, выбрать пункт «Резервное копирование», выбрать опцию «Восстановить».
4.3. Резервное копирование и восстановление Datamart Platform Studio из консоли
4.3.1. При установке на сервере или ВМ
Для создания файла резервной копии в папке, в которой установлена Datamart Platform Studio необходимо от имени пользователя datamart остановить программу и выполнить команду backup:
./datamart-studio stop
./datamart-studio backup
После выполнения процедуры бекапирования, в директории ./backup будет создан архив с отметкой о версии и времени бэкапа. При неудаче или отмене частично созданный бэкап удаляется.
После окончания процедуры бэкапа необходимо снова запустить программу:
./datamart-studio start
Восстановление из резервной копии или запуск упакованного дистрибутива в новом месте, соответственно, осуществляется последовательным выполнением распаковки архива в домашней директории Datamart Platform Studio и запуска программы:
tar -zxvf <backup_file_name>.tgz
./datamart-studio start
4.3.2. При установке в среде Kubernetes
Подключитесь SSH-клиентом к серверу управления, с которого производилась установка и на котором расположены скрипты для управления Datamart Platform Studio в Kubernetes.
Перейдите в папку Datamart Studio командой:
cd /opt/datamart_studio
Выполните действия создания резервной копии (в процессе бэкапа ПО будет остановлено, бэкап-файлы будут сохранены в архив /opt/datamart_studio/backup/datamart-studio-<version>-backup.tgz и ПО будет вновь запущено):
./datamart-studio backup-k8s
Успешный процесс создания резервной копии завершается сообщением:
Datamart Studio status: 'Backup completed successfully'
Проверьте факт создания файла резервной копии командой:
ls /opt/datamart_studio/backup/
Восстановление из резервной копии осуществляется последовательным выполнением команды, с указанием файла, из которого нужно произвести восстановление данных для контейнеров (в процессе восстановления ПО будет остановлено, данные восстановлены из архива и ПО будет вновь запущено):
./datamart-studio restore-k8s /opt/datamart_studio/backup/datamart-studio-<version>-backup.tgz
, где datamart-studio-<version>-backup.tgz - имя файла архива для восстановления, <version> - версия Datamart Platform Studio, которая автоматически выставляется скриптом бэкапа.
4.4. Восстановление после сбоев
4.4.1. Восстановление на сервере
Примечание
Все действия в примере ниже проводятся в директории /home/datamart-studio
Проверить, что все контейнеры Datamart Platform Studio запущены и имеют статус
running(см. Рисунок 4.1):
# docker-compose -f docker-compose.datamart.yaml ps
Рисунок 4.1 Контейнеры Datamart Platform Studio
Проверить логи на наличие ошибок у контейнеров не в статусе running
# docker-compose -f docker-compose.datamart.yaml logs <имя сервиса>
Устранить проблемы в соответствии с ошибками из предыдущего пункта
Перезапустить Datamart Platform Studio
./datamart-studio stop
./datamart-studio start
4.4.2. Восстановление в Kubernetes (K8s)
Примечание
Для версии Datamart Platform Studio Kubernetes все действия производятся с kubectl, настроенным для подключения к нужному контексту и NameSpace (по умолчанию dms). В примере ниже, действуем в директории с управляющим скриптом datamart-studio.
Проверить, что запущены все сервисы студии:
deployments - все, кроме dms-backup должны быть READY 1/1 pods - все должны быть в статусе RUNNING, в идеале 0 рестартов у всех
# kubectl -n dms get deployments.apps
# kubectl -n dms get pods
Рисунок 4.2 Имена сервисов Datamart Platform Studio в K8s
Рисунок 4.3 Контейнеры POD Datamart Platform Studio в K8s
Проверить логи на наличие ошибок у компонентов (deployments) студии не в статусе running
# kubectl logs deployments/<имя сервиса>
Устранить проблемы в соответствии с ошибками из предыдущего пункта
Перезапустить Datamart Platform Studio
# ./datamart-studio stop-k8s
# ./datamart-studio start-k8s