Резервное копирование баз 1С. Скрипт

Итак, коллеги, большинство из нас так или иначе сталкивались с таким продуктом автоматизации предприятия как 1С:Предприятие и с различными конфигурациями на его базе. Сегодня, я хочу поделиться простым и в то же время удобным рецептом резервного копирования баз 1С. Мы все помним, что бекап это наше все!

Если у Вас на предприятии используется т.н. «файловый режим» работы с базами, Вы можете использовать резервное копирование самого файла базы или каталога с ней любыми удобными средствами. Главное, чтобы в этот момент базу никто не использовал. Более того, начиная с версии платформы 8.3, а конфигураций (типа БП или ЗУП) — 3.х, появился встроенный механизм резервного копирования. В таком случае, эта статья не очень вам и нужна, за исключением одного НО, о котором я упомяну чуть поздней.

В случае, если у Вас используется т.н. SQL версия базы (т.е. серверный вариант) — зачастую удобней производить резервное копирование средствами самой СУБД. Более того, это позволит делать резервные копии в т.ч. в течении дня.

Используемый мною способ достаточно популярен в контексте 1С — использование т.н. механизма выгрузки. Он не очень хорошо подходит для больших баз (несколько десятков ГБ), но в общей массе такое встречается редко. Лично я тестировал резервное копирование выгрузкой на базах до 8гб — работает. При этом быстро, удобно, проблем не замечено.

Что же такого нового я хочу тут описать? По сути ничего, просто делюсь готовым скриптом, автоматизирующим этот процесс и прекрасно подходящим как для серверных, так и для файловых баз. Если у Вас на производстве встречаются оба типа, а серверные базы используют еще и разные виды СУБД (например MS SQL и PostgreSQL — ну мало ли, исторически сложилось), этот способ будет для Вас очень удобным.

Суть работы в чем — скрипт делает выгрузку базы, после чего упаковывает ее в архив и перемещает на файловую шару. После чего подчищает за собой на исходном сервере. Плюс ведет лог своих действий. Запускаются скрипты при помощи планировщика.

Я сам пользуюсь этим скриптом, лог файл мониторится при помощи zabbix, и в случае чего я получаю информацию о неудачном бекапе. Причин обычно две — либо кто-то не вышел из базы (выгрузка должна идти в монопольном режиме, тут сама 1С это отслеживает за Вас), либо работает фоновое задание (например обновление классификатора банков и тп).