Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

По умолчанию резервные копии БД Eltex-SC (актуально для версии >1.21) располагаются в директории:

/storage/iot/mongodb/mongobackups/
/storage/iot/olapdb/clickhouse-backup/archives/

Резервные копии создаются по расписанию каждые сутки с момента первой инсталляции и запуска ядра платформы Eltex-SC.

Рекомендуется настроить резервное копирование в хранилище отличное от исходного сервера. 

  1. Для восстановления из резервной копии БД необходимо предварительно подготовить сервер и проинсталлировать необходимо ПО, в том числе платформу Eltex-SC с помощью Ansible.

Пример  с установкой дополнительного ПО:

apt update
apt install software-properties-common curl build-essential ansible
ansible-galaxy collection install community.general
ansible-galaxy collection install community.crypto
ansible-galaxy collection install community.docker
apt install mongo-tools mongodb-clients

2. Скачать архивы актуальных резервных копий БД на сервер (в данном примере в домашнюю директорию пользователя с правами root).

3. Распаковать архивы mongo, например:

tar -xvf iot-core_2022-04-18*
tar -xvf events_2022-04-18*
tar -xvf iot-broker_2022-04-18*

4. Подготовить и настроить проект платформы в ansible-iot. Для ansible-iot должны быть настроены параметры в vars/service_parameters.yml:

db_mapped_port: 27017
olapservice_mapped_port: 8023
olapservice_db_mapped_port: 8123
core_api_mapped_port: 8071
core_api_ssl_mapped_port: 8073
iot_core_log_level: debug
export_mongo_port: true
export_olapservice_port: true
export_olapservice_db_port: true

После завершения восстановления из резервных копий БД, необходимо вернуть настройки по умолчанию в vars/service_parameters.yml

5. Остановить микросервисы с доступом до БД:

ansible-playbook services_stop.yml --extra-vars '{"services":["core", "broker", "olapservice"]}'

6. Удалить старые коллекции iot если имеются, например:

mongo 127.0.0.1:27017/$target_bd_name --eval "db.dropDatabase()"

где, $target_bd_name:

iot-core
iot-events
iot-broker

7. Восстановить записи из резервных копий mongo, например:

mongorestore --host=127.0.0.1 --port=27017 --db=iot-core --noIndexRestore --drop var/backups/mongobackups/iot-core/2022-04-18_04-26/iot-core
mongorestore --host=127.0.0.1 --port=27017 --db=iot-events --noIndexRestore --drop var/backups/mongobackups/iot-events/2022-04-18_04-26/iot-events
mongorestore --host=127.0.0.1 --port=27017 --db=iot-broker --noIndexRestore --drop var/backups/mongobackups/iot-broker/2022-04-18_04-26/iot-broker

8. Восстановить записи из резервных копий olap, например:

cd /storage/iot/olapdb/clickhouse-backup/archives
rm -rf *
cp ` ls ~/iotcore_eventlog_*|tail -1|awk '{print $1}' ` .
tar -xvf iotcore_eventlog_*
docker cp var iot-olapservice-db-backup:/
ansible-playbook services_restart.yml --extra-vars '{"services":["olapservice-db", "olapservice-db-backup"]}'
cd /storage/iot/olapdb/clickhouse-backup/archives
echo "clickhouse-backup restore --rm "` ls var/lib/clickhouse/backup|tail -1|awk '{print $1}' ` > run.sh
docker cp run.sh iot-olapservice-db-backup:/
docker exec iot-olapservice-db-backup sh /run.sh
ansible-playbook services_stop.yml; ansible-playbook install.yml

Для выполнения команды ansible-playbook необходимо находиться или указать путь до сценариев ansible для развертывания ядра платформы Eltex-SC.

  • Нет меток