IT записки

Скрипт для инкрементного бэкапа Firebird

Posted in Firebird by borismor on 22 января, 2009

FirebirdПро инкрементный бэкап можно почитать здесь.
Очень удобно если надо быстро найти последнюю рабочую базу при сбое или быстро заиметь копию рабочей базы.
У меня в конторе он тоже используется и возможно мой опыт настройки кому-то пригодится.
Принцип работы следующий:

  1. В начале дня создается бэкап 0-уровня
  2. Каждый час создается бэкап 1-уровня
  3. Для каждого бэкапа создается .bat файл запустив который получим нормальную базу
  4. Бэкапы за предыдущие дни архивируются rar
  5. Архивы бэкапы больше 7 дней удаляются. Смысл хранить больше по времени не вижу — есть ежедневные бэкапы сделанные gbak

Результат работы по умолчанию помещает в каталог
.\dir_snapshot\<дата_бэкпапа>
Имя бэкапа состоит из «имени_базы»-«дата_время_создания_бэкапа».
Все это реализованно на JScript.
Сам скрипт можно скачать здесь.
Настраиваем скрипт под себя:

  1. Распаковали скрипт в каталог где будут хранится бэкапы.
  2. В этот же каталог помещаем консольную версию архиватор RAR
  3. Открыли в блокноте скрипт
  4. Сначала идет комментарий с описанием, а затем блок с переменными для настройки скрипта.
    Область с переменными

    Область с переменными

  5. Меняем переменные:
    • Base – путь до базы. Слеши обязательно должны быть двойными!
    • pas_sysdba – пароль для SYSDBA

Все остальное заполнять не обязательно. Читайте комментарии к переменным – все по русски 🙂

Теперь про то как настраивать скрипт для запуска в системе.

  1. Заходите в «панель задач» и выбираете «назначенные задания»
  2. Кликаем «Добавить задачу»
  3. Выбираем для выполнения скрипт SnapShot.js
  4. Ставим «Выполнять задание: ежедневно»
    Выполнять ежедневно
  5. Дата начала: 7:00 (некоторый запас времени до начала работы с базой)
  6. Задание создалось.
  7. Заходим в него. Закладка «Расписание» — кнопка «Дополнительно»
    Инкрементный бэкап - Дополнительные параметры
  8. Говорим что бы задание выполнялось каждый час в течение 16 часов. Т.е. у вас будет бэкап делаться с 7 утра до 23 вечера.
    Инкрементный бэкап - Указываем промежуток выполнения

Все действия с базой логируются и всегда можно понять почему скрипт не проработал правильно. Файл лога SnapShot.log

Tagged with: ,

комментариев 9

Subscribe to comments with RSS.

  1. TAV said, on 11 февраля, 2010 at 12:12 пп

    Тестирую ваш скрипт на двух БД
    Время задания поставил одно и тоже — выполняется только одно задание.

  2. kdv said, on 12 февраля, 2010 at 6:06 дп

    Уже есть первая жертва скрипта 🙂
    http://www.ibaseforum.ru/viewtopic.php?f=8&t=5159

  3. borismor said, on 12 февраля, 2010 at 6:34 дп

    2 tav
    Если в одно время запускаются:
    Скрипты для разных баз в разных каталогах?
    ———
    Вероятно, начинают одновременно писать в лог SnapShot.log
    В одном из скриптов можно задать другое имя лога.
    По коду сделать замену SnapShot.log на SnapShot_2.log

    Лог можете открыть блокнотом и посмотреть какие действия делает скрипт.

  4. borismor said, on 12 февраля, 2010 at 6:40 дп

    2 kdv
    Ну какая «жертва»?) пользователь.

  5. Аноним said, on 16 мая, 2012 at 4:28 дп

    А как настроить с помощью этого скрипта нормальные бэкапы? не инкрементные?

  6. borismor said, on 16 мая, 2012 at 6:48 дп

    С помощью этого скрпита, нельзя. Это выполняет другой инструмент: gbak
    http://www.ibase.ru/devinfo/gbak.htm

  7. Игорь said, on 6 июня, 2012 at 8:28 дп

    А у меня ругается на строку 231 и вылетает с ошибкой

  8. Аноним said, on 6 июня, 2012 at 2:53 пп

    to said
    Нечего точного сказать не могу т.к. не сказали текст ошибки.
    В этой строке скрипты пытается создать bat файл. Возможно у вас нет прав на запись.

  9. Павел said, on 17 ноября, 2014 at 2:41 пп

    «Сам скрипт можно скачать здесь.»
    нельзя взять оттуда скрипт, поправьте ссылку или перезалейте.


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