[PS] Создание резервной копии базы 1С

После небольшого упсика на работе (когда я сидел и восстанавливал 1,5 суток базу) родился скрипт который создавал резервную копию базы 1С v7.7 SQL

На момент написания от скрипта требовалось:

1. Уметь создавать полный бекап SQL базы.
2. Уметь создавать инкрементный бекап SQL базы.
3. Уметь архивировать файлы резервных копий.
4. Делать так же архивную копию каталога базы.
5. Информация должна передаваться скрипту через параметры.

После некоторых терзаний получилось следующее:

где:

$mod – если бекап полный тогда full, если только инкрементный то trans;

$server – адрес SQL Server;

$base – имя SQL базы;

$target – путь к каталогу куда будут писаться резервные копии относительно SQL Server, должны быть права на запись для машины на котором крутится SQL;

$catalog – путь к каталогу базы 1С

При этом, в каталоге назначения должны быть созданы директории “full” и “trans”, для полного и инкрементного режима соответственно. А у пользователя под которым запускается скрипт должны быть права на создание резервной копии на SQL сервере. Так же стоит обратить внимание на 10 строку и проверить правильность пути до 7zip’а.

Режим полной резервной копии:

Если выбран полный режим резервного копирования, тогда в каталог “путь к каталогу базы 1С\full\” пишется полный бекап SQL базы, после чего он 7zip’ом архивируется в ZIP, оригинальный файл резервной копии удаляется. Так же в этот каталог пишется архивная копии каталога базы.

Пример:

Нам необходимо сделать полную резервную копию базы 1С c именем SQL базы “base1C”, адресом SQL сервера “srv_1C” и с каталогом базы “\\srv_1C\base\”. Резервная копия должна записаться в каталог: “\\srv_files\backup\base\”

Строка запуска скрипта в PowerShell будет выглядеть так:

В итоге получаем после выполнения скрипта мы имеем (предположим скрип был запущен в 2009 году 1го января):

\\srv_files\backup\base\full\2009.01.01.base1C.full.bak.zip
Архив резервной копии SQL базы

\\srv_files\backup\base\full\2009.01.01.base1C.catalog.zip
Архив каталога базы

\\srv_files\backup\base\full\2009.01.01.base1C.full.bak.log
\\srv_files\backup\base\full\2009.01.01.base1C.catalog.log
Лог файлы работы архиватора

Режим инкрементной резервной копии:

Если выбран инкрементный режим, тогда в каталог “путь к каталогу базы 1С\trans\” пишется бекап транзакций (Transaction Log), после чего он 7zip’ом архивируется в ZIP, оригинальный файл резервной копии удаляется.

Пример:

Нам необходимо сделать инкрементную резервную копию базы 1С c именем SQL базы “base1C” и адресом SQL сервера “srv_1C”. Резервная копия должна записаться в каталог: “\\srv_files\backup\base\”

Строка запуска скрипта в PowerShell будет выглядеть так:

В итоге получаем после выполнения скрипта мы имеем:

\\srv_files\backup\base\trans\2009.01.01.base1C.trans.bak.zip
Архив резервной копии SQL базы

\\srv_files\backup\base\trans\2009.01.01.base1C.trans.bak.log
Лог файл работы архиватора

Скачать

[download id=”35″]

Комментарии

  • rootah 2009.11.4 13:44

    Спасибо, чувак.

  • OlegKrikun 2009.12.9 22:48

    да не за что…

  • Сергей 2011.05.17 08:53

    Олег, помоги!
    Хочу сделать резервную копию в 1С страхование (версия 7.7), но являюсь полным нубом в 1С-ке.
    Напиши пожалуста мне на почту.

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

PowerShell Logo

Monday, 20 July 2009

13:21

OlegKrikun

, ,

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