Бэкапирование баз и директорий архиватором Zpaq, проверка архивов после бэкапирования
Перейти к навигации
Перейти к поиску
Версия для Windows
Описание
Система предназначена для инкрементального архивирования и долгосрочного хранения архивов директорий (баз) и проверки созданных архивов.
Система включает в себя:
- директорию с приложением zpaq
- основной скрипт backup-zpaq.cmd
- файл dbsList.txt, содержащий список баз
- динамически создаваемые директории:
- dbs_backup для хранения созданных архивов
- dbs_extracted_for_check для распаковки и проверки созданных архивов
- dbs_log для записи логов и статуса бэкапирования
- Шаблон для системы Zabbix, необходимый для мониторинга бэкапирования
Инструкция по установке системы
- На сервере, на котором будет использоваться система бэкапирования:
- Скачать Monitor.zip, распаковать и положить распакованную директорию monitor в корень C:\
- Установить Zabbix агент, запустив C:\monitor\x64.bat
- Скачать и распаковать архив backup-zpaq.zip
- Заполнить список директорий (баз) для бэкапирования (обязательно использование абсолютных путей) в файле dbsList.txt, Пример:
d:\tmp\dbs\db01 d:\tmp\dbs\db02 d:\tmp\dbs\db03
- Изменить пути до директорий, файлов и утилит в секции paths файла backup-zpaq.cmd
- Запустить backup-zpaq.cmd
- На Zabbix сервере:
- Создать Хост с IP сервера, на котором будет использоваться система бэкапирования
- Импортировать шаблон Мониторинг_бэкапирования_баз_и_директорий_на_Windows_сервере.zip
- Подключить шаблон к созданному хосту
- При необходимости изменить пути к файлам, которые будет мониторить Zabbix сервер, во всех Item хоста
Алгоритм работы системы
- Скрипт backup-zpaq.cmd получает список директорий (баз) из файла dbsList.txt
- Для каждой директории выполняются действия
- В директорию записывается файл checkMarker.txt, содержащий текущую дату в формате ГГГГ-мм-дд
- Директория архивируется по пути dbs_backup\!dbName!\ с именем архива !dbName!_???.zpaq, где ??? - порядковый номер архива (001 - полный архив, следующие - инкрементальные)
- По завершении архивации в переменную dbArchStatus записывается статус операции (-ARCH_OK- | -ARCH_FAIL-)
- Файл checkMarker.txt удаляется из директории
- Архив извлекается по пути dbs_extracted_for_check\!dbName!
- По завершении извлечения в переменную dbExtrStatus записывается статус операции (-EXTRACT_OK- | -EXTRACT_FAIL-)
- Проверяется файл dbs_extracted_for_check\!dbName!\checkMarker.txt на содержание в нем текущей даты в формате ГГГГ-мм-дд. По результату переменной dbCheckMarkerStatus присваивается значение (-CHECKMARKER_OK- | -CHECKMARKER_FAIL-)
- В файл логирования резервного копирования dbs_log\dbsBackupLog.txt записывается строка вида: d:\tmp\dbs\!dbName! : -ARCH_OK- -EXTRACT_OK- -CHECKMARKER_OK-
- В итоге в файле dbs_log\dbsBackupLog.txt создается структура вида:
d:\tmp\dbs\db01 : -ARCH_OK- -EXTRACT_OK- -CHECKMARKER_OK- d:\tmp\dbs\db02 : -ARCH_OK- -EXTRACT_OK- -CHECKMARKER_OK- d:\tmp\dbs\db03 : -ARCH_OK- -EXTRACT_OK- -CHECKMARKER_OK-
- Проверяется наличие в файле dbs_log\dbsBackupLog.txt последовательности символов (_OK- | _FAIL-)
- В зависимости от результата в итоговый файл статуса резервного копирования dbs_log\dbsBackupStatus.txt записывается OK или FAIL
- Zabbix сервер, используя Zabbix-agent на машине с системой бэкапирования, проверяет:
- Наличие файла статуса резервного копирования данных dbs_log\dbsBackupStatus.txt
- Время создания файла статуса резервного копирования данных dbs_log\dbsBackupStatus.txt
- Статус резервного копирования данных (содержимое файла dbs_log\dbsBackupStatus.txt)
- В зависимости от значения переменных Zabbix сервер принимает решение по включению того или иного триггера