При обновлении с версий ниже 2.9.2 на 2.10.0 и выше медиа и файлы не сохранятся! Миграция медиа и файлов проводится по запросу. Для проведения миграции файлов обратитесь в коммерческий отдел компании Eltex: eltex@eltex-co.ru.

Резервное копирование базы данных Chat Server версии < 2.7.0

Резервное копирование базы выполняется с запущенного контейнера mongoDB.

docker exec elph-chat-server-stable-mongo-1 mongodump --archive > dump_$(date +%d%m%Y_%H:%M).gz

Восстановление базы данных Chat Server версии < 2.7.0

1. Остановите все контейнеры сервера, кроме MongoDB и MinIO. Убедитесь, что контейнер elph-chat-server-stable-mongo-1 запущен и доступен.

docker ps
docker container stop elph-chat-server-stable-nginx-1 elph-chat-server-stable-server-1

2. Чтобы восстановить базу данных из созданной резервной копии, выполните следующую команду. Замените dump.gz на имя вашего файла резервной копии, если оно отличается:

docker exec -i elph-chat-server-stable-mongo-1 sh -c 'mongorestore --archive --db elph --drop' < dump.gz

3. Запустите все контейнеры:

./ecss-elph-chat-server.sh up



Резервное копирование баз данных Chat Server версии > 2.7.0

Перед тем как приступать к резервному копированию необходимо сгенерировать MinIO access и secret key.

Перейдите по адресу http://<chat-server-address>:9000;

Авторизуйтесь и перейдите во вкладку «Access Keys»;

Нажмите «Create access key»;

Нажмите «Create»;

Сохраните файл (credentials.json) с учетными данными в надежном месте.


Для упрощения создания и восстановления резервных копий воспользуйтесь скриптом: elph-chat-backup.sh 

Создание резервной копии скриптом

Резервное копирование базы выполняется с запущенного чат сервера.

1. Скачайте установочный скрипт и выдайте права на исполнение:

sudo chmod +x elph-chat-backup.sh

2. Запустите скрипт:

./elph-chat-backup.sh dump

При запуске скрипт установит MinIO Client:

wget https://dl.min.io/client/mc/release/linux-amd64/mc


И ответьте на вопросы:

Введите MinIO Access Key и MinIO Ssecret Key из файла credentials.json.

Enter MinIO access key:
Enter MinIO secret key:

Введите адрес или доменное имя Elph Chat Server (например, elph-chat-server.loc):

Enter MinIO ip or domain(Example: elph-chat-server.loc):
	Пример: elph-chat-server.loc или 192.168.0.12.

Введите директорию, в которую будет сохранена резервная копия, либо оставьте пустым для выбора домашней директории пользователя. Убедитесь, что у пользователя есть доступ к этой директории.
Enter backup directory or press enter to use default (Default: /home/[user]/elph-chat-backups/[date.time]/): 

Данный скрипт создаст 2 директории с файлами: minio и mongo.

Внимание!

Убедитесь, что резервная копия создана успешно и нет ошибок в процессе выполнения скрипта!

Создание резервной копии вручную

1. Сделайте резервную копию базы mongoDB с запущенного контейнера mongo:

docker exec elph-chat-server-stable-mongo-1 mongodump --archive > dump_$(date +%d%m%Y_%H:%M).gz

2. Сделайте резервную копию базы minIO:

2.1. Сгенерируйте access и secret key:

2.1.1 Перейдите по адресу http://<chat-server-address>:9000;

2.1.2 Авторизуйтесь и перейдите во вкладку Access Keys;

2.1.3 Нажмите Create Access Key;

2.1.4 Сохраните Access и Secret Key в надежном месте.

2.2. Установка MinIO Client:

2.2.1 Скачайте MinIO Client:

wget https://dl.min.io/client/mc/release/linux-amd64/mc

2.2.2 Сделайте файл исполняемым:

chmod +x mc

2.2.3 Переместите файл в системный путь и переименуйте mc в minio-client, чтобы избежать конфликтов:

sudo mv mc /usr/local/bin/minio-client

2.3. Настройте alias в MinIO:

minio-client alias set myminio http://<chat-server-address>:9000 <access_key> <secret_key>

2.4. Скопируйте файлы из MinIO в директорию:

minio-client cp --recursive myminio/elph-chat <path_to_backup>
minio-client cp --recursive myminio/temp-files <path_to_backup>

Восстановление баз данных Chat Server версии > 2.7.0

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

1. Остановите все контейнеры сервера, кроме mongoDB и MinIO. Убедитесь, что контейнеры elph-chat-server-unstable-mongo-1 и minio запущены и доступны.

docker ps
docker container stop elph-chat-server-stable-nginx-1 elph-chat-server-stable-server-1

2. Запустите скрипт:

./elph-chat-backup.sh restore

И ответьте на вопросы:

Пример вопросов и ответов при восстановлении резервной копии

Enter MinIO access key:
Enter MinIO secret key:

Введите адрес или доменное имя Elph Chat Server. (Например elph-chat-server.loc):

Enter MinIO ip or domain(Example: elph-chat-server.loc):
	Например: elph-chat-server.loc или 192.168.0.12.
Введите директорию в которой сохранена резервная копия.
Enter backup directory:
    Enter backup directory: /home/[user]/elph-chat-backups/[date.time]

3. Запустите все контейнеры:

./ecss-elph-chat-server.sh up

Перейдите по адресу https://<chat-address>:9000, авторизуйтесь и проверьте структуру базы данных:

Восстановление резервной копии вручную

1. Остановите все контейнеры сервера, кроме mongoDB и MinIO. Убедитесь, что контейнеры elph-chat-server-stable-mongo-1 и minio запущены и доступны.

docker ps
docker container stop elph-chat-server-stable-nginx-1 elph-chat-server-stable-server-1

2. Чтобы восстановить базу данных из созданной резервной копии, выполните следующую команду. Замените dump.gz на имя вашего файла резервной копии, если оно отличается:

docker exec -i elph-chat-server-stable-mongo-1 sh -c 'mongorestore --archive --db elph --drop' < dump.gz

3. Установите MinIO Client и настройте Access Keys;

4. Скопируйте файлы из директории в MinIO:

minio-client cp --recursive /minio-backup/ myminio/elph-chat
minio-client cp --recursive /minio-backup/ myminio/temp-files

Перейдите по адресу https://<chat-address>:9000, авторизуйтесь и проверьте структуру базы данных:

4. Запустите все контейнеры:

./ecss-elph-chat-server.sh up
  • Нет меток