ELMA365 On-Premises > ELMA365 On-Premises Enterprise / Перенос данных из встроенных баз во внешние в ELMA365 Enterprise

Перенос данных из встроенных баз во внешние в ELMA365 Enterprise

Вы можете перенести данные из баз внутри Kubernetes-кластера во внешние хранилища с помощью:

Рассмотрим этапы переноса внешними средствами:

  1. Подготовка к созданию дампа данных.
  2. Создание дампа данных.
  3. Восстановление данных на внешнем хранилище.
  4. Обновление параметров приложения ELMA365 Enterprise.

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

После переноса баз данных на внешние хранилища требуется повторная активация системы.

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

Шаг 1. Подготовка к дампу данных

  1. Предварительно установите пакет jq.
  2. Для получения доступа к базам данных внутри кластера пробросьте порты сервисов:

kubectl port-forward postgres-0 5432:5432 --address 0.0.0.0
kubectl port-forward mongo-0 27017:27017 --address 0.0.0.0

  1. Получите и сохраните пароли для подключения к базам данных:

kubectl get secrets/elma365-db-connections -o json | jq '.data | map_values(@base64d)'

Шаг 2. Создание дампа данных

  1. Сформируйте файл с дампом данных для PostgreSQL с помощью утилиты pg_dump:

pg_dump -h localhost -p 5432 -U postgres elma365 -f /backup/<backup-postgresql-folder-name>

Введите пароль, полученный на первом шаге.

  1. Сформируйте файл с дампом данных для MongoDB с помощью утилиты mongodump:

mongodump --host localhost --port 27017 --db elma365 -u elma365 --out /backup/<backup-mongodb-folder-name>

Введите пароль, полученный на первом шаге.

Подробнее об этих утилитах читайте в статье «Резервное копирование внешними средствами».

Шаг 3. Восстановление данных на внешнем хранилище

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

Очистите базы данных и S3-хранилище перед восстановлением данных из резервной копии.

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

  1. Восстановите данные PostgreSQL при помощи утилиты psql:

psql -h <external_db_host> -p <external_db_port> -U <username> -d <database_name> -f /backup/<backup-postgresql-folder-name>

Где:

  • <external_db_host> — хост внешней базы данных;
  • <external_db_port> — порт внешней базы данных;
  • <username> — имя пользователя внешней базы данных;
  • <database_name> — имя базы данных на внешнем сервере.
  1. Восстановите данные MongoDB при помощи утилиты mongorestore:

mongorestore --host <external_db_host> --port 27017 --db <database_name> -u <username> --dir=/backup/<backup-mongodb-folder-name>

Где:

  • <external_db_host> — хост внешней базы данных;
  • <username> — имя пользователя внешней базы данных;
  • <database_name> — имя базы данных на внешнем сервере.
  1. Восстановите данные S3-хранилища при помощи утилиты mc:

mc alias set <alias_source> <s3-endpoint_source> <access-key_source> <secret-key_source>
mc alias set <alias_destination> <s3-endpoint_destination> <access-key_destination> <secret-key_destination>

Где:

  • <alias_source> — короткое имя (псевдоним) для источника;
  • <s3-endpoint_source> — адрес S3-совместимого хранилища источника;
  • <access-key_source> — ключ доступа для источника;
  • <secret-key_source> — секретный ключ для источника;
  • <alias_destination> — короткое имя (псевдоним) для назначения;
  • <s3-endpoint_destination> — адрес S3-совместимого хранилища назначения;
  • <access-key_destination> — ключ доступа для назначения;
  • <secret-key_destination> — секретный ключ для назначения.

После этого скопируйте S3-хранилище из источника в место назначения:

mc cp --recursive <s3-endpoint_source>/bucket-name/ <s3-endpoint_destination>/bucket-name/

Где:

  • <alias_source> — короткое имя (псевдоним) для источника;
  • <alias_destination> — короткое имя (псевдоним) для назначения;
  • bucket-name — имя бакета;
  • --recursive — рекурсивное копирование всех объектов и файлов.
  1. После восстановления баз данных на внешних хранилищах выполните повторную активацию системы.

Шаг 4. Обновление параметров приложения ELMA365 Enterprise

  1. После восстановления данных на внешних базах убедитесь, что все таблицы для PostgreSQL или коллекции для MongoDB перенесены корректно.
  2. Чтобы параметры приложения ELMA365 Enterprise указывали на настроенные внешние базы, в конфигурационном файле values-elma365.yaml измените параметры подключения к базам данных и параметры подключения к S3-хранилищу файлов.
  3. Обновите параметры приложения ELMA365 c применением конфигурационного файла values-elma365.yaml.

Обновление параметров через интернет

Обновление параметров без доступа в интернет

  1. Перезапустите все сервисы командой:

kubectl rollout restart deploy [-n namespace]

  1. Проверьте корректность работы платформы и остановите старые базы данных внутри Kubernetes:

kubectl scale statefulset <db-type> --replicas=0 [-n namespace]

Где <db-type> — название StatefulSet: postgres, mongo или minio.