среда, 22 ноября 2017 г.

Medoc и система резервного копирования Bacula

Сразу оговорюсь, что настройка Bacula "от" и "до" не является темой данного сообщения.
Medос имеет встроенные средства создания резервных копий, более того: сетевой Medос имеет встроенное средство автоматизации этого процесса, Но есть одно "но", и даже не одно:
  1. созданная встроенными средствами резервная копия не содержит настроек пользователей.
  2. при достаточно большой базе, разворачивание длится совершенно непозволительное время(я понимаю, проверка ссылочной целостности и тд. и тп.), но я сталкивался с ситуациями когда база порядка 10 Гиг разворачивалась более 10 часов и это все под вопли бухгалтерии о срыве сроков отчетов и огромных штрафах (решение: развернуть локальную пустую базу по быстрому).
  3. Резервная копия, при включенной проверке базы, может просто не создаться(для абсолютно нормально работающего экземпляра программы).
Неоднократно пройдясь по перечисленным граблям, я пришел к выводу, что для резервного копирования медка нет ничего лучше банального создания архива.
Если Вы системный администратор, который вылез из пеленок и уже осознал, не только необходимость регулярного глобального резервного копирования, но и то что процесс должен быть максимально управляемым и легко масштабируемым, то наверняка используете какую нибудь корпоративную систему резервного копирования. Я в свое время остановил свой выбор на Bacula.

Исходные данные: 

  1. Имеем развернутую на предприятии систему резервного копирования Bacula.
  2. Хотим с помощью Bacula бэкапить Medoc.
Для локального Медка бэкап ничем не отличается от бэкапа любой папки: просто указываем путь в секции FileSet соответствующего сервера(компьютера).
Для сетевого нам необходимо перед резервным копированием остановить службу ZvitGrp№,
для чего: делаем на сервере 2 cmd файла :
  1. stopzvit.cmd
    Sc stop ZvitGrp2
  2. startzvit.cmd
    Sc start ZvitGrp2

Добавляем в секцию Job соответствующего сервера

ClientRunBeforeJob = "\"C:/Bacula/scripts/stopzvit.cmd\""
ClientRunAfterJob = "\"C:/Bacula/scripts/startzvit.cmd\""
ClientRunBeforeJob и ClientRunAfterJob задают сценарии, которые будут выполнены соответственно перед и после выполнения задания.

Собственно статья затевалась именно ради этих 2х строчек, если Вы уже настроили Bacula, то путь к папке в FileSet указать не проблема.

Для данного задания я указал в секции Schedule следующие параметры:

Run = Level=Full Pool=myserver-weekly 1st-5th sun at 00:05
Run = Level=Differential Pool=myserver-daily mon-sat at 00:05
В итоге мы имеем полный бэкап по воскресениям и диффкринциальный по будним дням

Возможен такой вариант:

Run = Level=Full Pool=myserver-monthly 1st sun at 00:05
Run = Level=Differential Pool=myserver-weekly 2nd-5th sun at 00:05
Run = Level=Incremental Pool=myserver-daily mon-sat at 00:05
Первое воскресение месяца полный, в остальные воскресения дифферинциальный и по будням инкрементный.

Вот вобщем то и все.

Комментариев нет:

Отправить комментарий