При обновлении с версий ниже 2.9.2 на 2.10.0 и выше медиа и файлы не сохранятся! Миграция медиа и файлов проводится по запросу. Для проведения миграции файлов обратитесь в коммерческий отдел компании Eltex: eltex@eltex-co.ru. |
Для упрощения создания и восстановления резервных копий воспользуйтесь скриптом: elph-chat-backup.sh.
Резервное копирование базы выполняется с запущенного Chat Server. |
elph-chat-backup.sh создает резервную копию только mongo и minio! Копию postgreSQL с данными Keycloak нужно создавать вручную! |
1. Скачайте установочный скрипт и выдайте права на исполнение:
sudo chmod +x elph-chat-backup.sh |
2. Запустите скрипт:
./elph-chat-backup.sh dump |
При запуске скрипт установит MinIO Client:
|
Ответьте на вопросы:
Введите MinIO Access Key и MinIO Ssecret Key. Подойдут MINIO_ROOT_USER и MINIO_ROOT_PASSWORD.
Введите адрес или доменное имя Elph Chat Server (например, elph-chat-server.loc):
|
Данный скрипт создаст 2 директории с файлами: minio и mongo.
Убедитесь, что резервная копия создана успешно и нет ошибок в процессе выполнения скрипта! |
Создайте резервную копию postgreSQL:
docker exec elph-postgres pg_dump -U postgres postgres > pg_dump_$(date +%d%m%Y_%H:%M).sql |
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. Установка MinIO Client:
2.1.1 Скачайте MinIO Client:
wget https://dl.min.io/client/mc/release/linux-amd64/mc |
2.1.2 Сделайте файл исполняемым:
chmod +x mc |
2.1.3 Переместите файл в системный путь и переименуйте mc в minio-client, чтобы избежать конфликтов:
sudo mv mc /usr/local/bin/minio-client |
2.2. Настройте alias в MinIO:
minio-client alias set myminio http://<chat-server-address>:9000 minio_root_login minio_root_password |
2.3. Скопируйте файлы из MinIO в директорию:
minio-client cp --recursive myminio/elph-chat <path_to_backup> minio-client cp --recursive myminio/temp-files <path_to_backup> |
3. Создайте резервную копию postgreSQL:
docker exec elph-postgres pg_dump -U postgres postgres > pg_dump_$(date +%d%m%Y_%H:%M).sql |
1. Остановите все контейнеры сервера, кроме mongoDB, MinIO и postgres. Убедитесь, что контейнеры elph-mongo, elph-minio и elph-postgres запущены и доступны.
2. Запустите скрипт:
./elph-chat-backup.sh restore |
И ответьте на вопросы:
Пример вопросов и ответов при восстановлении резервной копии
Введите адрес или доменное имя Elph Chat Server. (Например elph-chat-server.loc):
Введите директорию в которой сохранена резервная копия.
|
3. Восстановите postgreSQL:
3.1. Очистите базу postgres:
docker exec -i elph-postgres psql -U postgres -d template1 -c "DROP DATABASE IF EXISTS postgres;" |
3.2. Создайте базу postgres:
docker exec -i elph-postgres psql -U postgres -d template1 -c "CREATE DATABASE postgres;" |
3.3. Запустите восстановление базы данных:
docker exec -i elph-postgres psql -U postgres -d postgres < backup_postgres.sql |
4. Запустите все контейнеры:
./ecss-elph-chat-server.sh up |
Перейдите по адресу https://<chat-address>:9000, авторизуйтесь и проверьте структуру базы данных MinIO:
|
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 |
5. Восстановите postgreSQL:
5.1. Очистите базу postgres:
docker exec -i elph-postgres psql -U postgres -d template1 -c "DROP DATABASE IF EXISTS postgres;" |
5.2. Создайте базу postgres:
docker exec -i elph-postgres psql -U postgres -d template1 -c "CREATE DATABASE postgres;" |
5.3. Запустите восстановление базы данных:
docker exec -i elph-postgres psql -U postgres -d postgres < backup_postgres.sql |
Перейдите по адресу https://<chat-address>:9000, авторизуйтесь и проверьте структуру базы данных:
|
6. Запустите все контейнеры:
./ecss-elph-chat-server.sh up |