По умолчанию резервные копии БД Eltex-SC (актуально для версии >1.21) располагаются в директории:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
/storage/iot/mongodb/mongobackups/
/storage/iot/olapdb/clickhouse-backup/archives/ |
Резервные копии создаются по расписанию каждые сутки с момента первой инсталляции и запуска ядра платформы Eltex-SC.
Предупреждение |
---|
Рекомендуется настроить резервное копирование в хранилище отличное от исходного сервера. |
- Для восстановления из резервной копии БД необходимо предварительно подготовить сервер и проинсталлировать необходимо ПО, в том числе платформу Eltex-SC с помощью Ansible.
Пример с установкой дополнительного ПО:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
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, например:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
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:
Блок кода |
---|
language | yml |
---|
linenumbers | true |
---|
|
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. Остановить микросервисы с доступом до БД:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
ansible-playbook services_stop.yml --extra-vars '{"services":["core", "broker", "olapservice"]}' |
6. Удалить старые коллекции iot если имеются, например:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
mongo 127.0.0.1:27017/$target_bd_name --eval "db.dropDatabase()" |
где, $target_bd_name:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
iot-core
iot-events
iot-broker |
7. Восстановить записи из резервных копий mongo, например:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
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, например:
Блок кода |
---|
language | bash |
---|
linenumbers | true |
---|
|
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. |