Скрипт для инкрементного бэкапа Firebird
Про инкрементный бэкап можно почитать здесь.
Очень удобно если надо быстро найти последнюю рабочую базу при сбое или быстро заиметь копию рабочей базы.
У меня в конторе он тоже используется и возможно мой опыт настройки кому-то пригодится.
Принцип работы следующий:
- В начале дня создается бэкап 0-уровня
- Каждый час создается бэкап 1-уровня
- Для каждого бэкапа создается .bat файл запустив который получим нормальную базу
- Бэкапы за предыдущие дни архивируются rar
- Архивы бэкапы больше 7 дней удаляются. Смысл хранить больше по времени не вижу — есть ежедневные бэкапы сделанные gbak
Результат работы по умолчанию помещает в каталог
.\dir_snapshot\<дата_бэкпапа>
Имя бэкапа состоит из «имени_базы»-«дата_время_создания_бэкапа».
Все это реализованно на JScript.
Сам скрипт можно скачать здесь.
Настраиваем скрипт под себя:
- Распаковали скрипт в каталог где будут хранится бэкапы.
- В этот же каталог помещаем консольную версию архиватор RAR
- Открыли в блокноте скрипт
- Сначала идет комментарий с описанием, а затем блок с переменными для настройки скрипта.
- Меняем переменные:
- Base – путь до базы. Слеши обязательно должны быть двойными!
- pas_sysdba – пароль для SYSDBA
Все остальное заполнять не обязательно. Читайте комментарии к переменным – все по русски 🙂
Теперь про то как настраивать скрипт для запуска в системе.
- Заходите в «панель задач» и выбираете «назначенные задания»
- Кликаем «Добавить задачу»
- Выбираем для выполнения скрипт SnapShot.js
- Ставим «Выполнять задание: ежедневно»
- Дата начала: 7:00 (некоторый запас времени до начала работы с базой)
- Задание создалось.
- Заходим в него. Закладка «Расписание» — кнопка «Дополнительно»
- Говорим что бы задание выполнялось каждый час в течение 16 часов. Т.е. у вас будет бэкап делаться с 7 утра до 23 вечера.
Все действия с базой логируются и всегда можно понять почему скрипт не проработал правильно. Файл лога SnapShot.log
Тестирую ваш скрипт на двух БД
Время задания поставил одно и тоже — выполняется только одно задание.
Уже есть первая жертва скрипта 🙂
http://www.ibaseforum.ru/viewtopic.php?f=8&t=5159
2 tav
Если в одно время запускаются:
Скрипты для разных баз в разных каталогах?
———
Вероятно, начинают одновременно писать в лог SnapShot.log
В одном из скриптов можно задать другое имя лога.
По коду сделать замену SnapShot.log на SnapShot_2.log
Лог можете открыть блокнотом и посмотреть какие действия делает скрипт.
2 kdv
Ну какая «жертва»?) пользователь.
А как настроить с помощью этого скрипта нормальные бэкапы? не инкрементные?
С помощью этого скрпита, нельзя. Это выполняет другой инструмент: gbak
http://www.ibase.ru/devinfo/gbak.htm
А у меня ругается на строку 231 и вылетает с ошибкой
to said
Нечего точного сказать не могу т.к. не сказали текст ошибки.
В этой строке скрипты пытается создать bat файл. Возможно у вас нет прав на запись.
«Сам скрипт можно скачать здесь.»
нельзя взять оттуда скрипт, поправьте ссылку или перезалейте.