Бэкапирование баз и директорий архиватором Zpaq, проверка архивов после бэкапирования

Материал из Wiki
Перейти к навигации Перейти к поиску


Версия для 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 сервере:

Алгоритм работы системы

  • Скрипт 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 сервер принимает решение по включению того или иного триггера