gifts2017

К вопросу об архивации баз 1С (и снова, и снова...)

Опубликовал Вадим Иванцов (grum01) в раздел Администрирование - Архивирование (backup)

Из своего опыта хочу напомнить о самом простом способе архивации баз типовыми средствами 1С и планировщика Windows.

 

Постоянно вижу обсуждения о способах архивации баз 1С. Люди и обработки какие-то придумывают, и исходный код изменяют. В свое время тоже был крайне озадачен этим вопросом. Решение лежало на поверхности. Не претендую на оригинальность, но хотелось бы напомнить о самом простом способе архивации баз средствами командной строки 1С и планировщика Windows. Данный метод успешно работает в нашей организации уже более года с 8-ю отдельными базами 1С на системе Windows Server 2003.

При всей кажущейся сложности настройка не занимает больше 10 минут.

Итак, настройка в три шага:

1. Создадим два исполняемых файла *.bat. Первый файл назовем, например, "finish1C.bat", второй "share1C.bat". Соответственно первый файл будет содержать команды для запрета доступа к базам на время архивации, а во втором файле будут команды на открытие доступа после выполнения архивации.

Текст первого файла: START /D"C:\Program Files\1cv81\bin\" 1cv8.exe ENTERPRISE /F"<X:\Trade>" /N"<ИМЯ_ПОЛЬЗОВАТЕЛЯ>" /P"<ПАРОЛЬ>" /CЗавершитьРаботуПользователей

где <X:\Trade> - полный путь к каталогу базы 1С (без кавычек <>)

<ИМЯ_ПОЛЬЗОВАТЕЛЯ> - имя пользователя с административными правами (без кавычек <>)

<ПАРОЛЬ> - пароль этого пользователя (без кавычек <>)

Если система у вас находится не на диске С, или оболочка 1С установлена не в папку по умолчанию, замените путь "C:\Program Files\1cv81\bin\" на соответствующий.

Текст второго файла: идентичен первому. Только вместо /CЗавершитьРаботуПользователей  нужно написать /UCПакетноеОбновлениеКонфигурацииИБ /CРазрешитьРаботуПользователей

Естественно, если у вас несколько рабочих баз 1С, то для каждой базы нужно прописать отдельную строку в первом и втором файлах. У меня в каждом файле по 8 строк.

2. Настраиваем WinRAR. Собственно сам процесс архивации. Я пользуюсь WinRAR (лицензия) поскольку ценю его за простоту, надежность и функциональность. Поэтому текст командного файла "arhiv1C.bat" содержит следующую строку:

rar a -sfx -agYY-MM-DD X:\Arhiv\Trade_ X:\Trade

думаю, разобраться с параметрами WinRAR не составит труда. Тут все дело, в результате, который вы хотите получить. В данном случае архивируется вся папка с базой и создается архив вида "Trade_10-01-05.exe", т.е самораспаковывающийся архив с указанием даты архива. Мне этого достаточно, вы можете настроить по своим потребностям, вплоть до задания пароля на архив.

3. Настраиваем планировщик Windows: создаем три задачи планировщика – первую на исполнение файла "finish1C.bat". Настроим ее на запуск в час ночи. Незакрытые сеансы 1С отключатся максимум через 5 минут. Поэтому вторую задачу на выполнение файла "arhiv1С.bat" ставим на время 1:10 (дадим 10 минут на всякий случай). Третью задачу на запуск файла "share1C.bat" ставим с отставанием по времени, достаточным для выполнения архивации. Я рассчитываю время запуска третей задачи раз в полгода по принципу <время на архивацию> * 2.

Вот и все. Не забудьте установить запуск задач от имени администратора. Повторяю, что данный способ безотказно работает уже более года, легко настраивается, легко переносится на любой компьютер и легко применяется к разным базам.

Один нюанс: для баз "1С:Управление торговлей" используются вышеописанные ключи в файле "share1C.bat". Для баз "1С:Бухгалтерия Предприятия" и "1С:Зарплата и Управление персоналом" вместо /UCПакетноеОбновлениеКонфигурацииИБ /CРазрешитьРаботуПользователей нужно использовать /CРазрешитьРаботуПользователей /UCКодРазрешения

Для баз, работающих круглосуточно, можно объединить состав файлов "arhiv.bat" и "share1C.bat". Например, ввести поочередно команды создания архива и открытия доступа к базе. Тогда и не нужно будет заморачиваться на на измерение времени архивации. Базы станут доступны сразу после создания архива.

 

Надеюсь данный материал поможет кому-то.

 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Алексей Константинов (alexk-is) 08.01.10 11:16
Здесь есть список ссылок на публикации аналогичной направленности
http://infostart.ru/public/19363/
2. Сергей (strange2007) 13.01.10 15:33
Всегда использую только CMD+архиватор
Народ изобретает супер-пупер-мупер обработки потому что не читали хелп от cmd
3. Антон Волков (noknown) 14.01.10 17:29
У меня уже много лет работает связка CMD+rar для 7.7
Не вижу причин городить обработки и вообще усложнять.
4. Вадим Иванцов (grum01) 14.01.10 18:19
Так я по этому поводу и говорю. Простота - залог отсутствия головных болей и успешной работы.
5. Rabajaba Caspersky (Rabajaba) 15.01.10 10:42
2 файла излишне на мой взгляд. У меня в один ещё и с шифрованием работает.
Есть ключ /w для команды "Start" и есть "&" для одновременного запуска команд. Пример:
net stop "1C:Enterprise 8.1 Server Agent" & net start "1C:Enterprise 8.1 Server Agent" & "start /W путьОдноЭс CONFIG СтрокаПодключения /N юзверь /P пароль /DumpIB файлАрхива /Out файлЛога.
dred2001; +1 Ответить
6. Роман (roskmv) 15.07.10 08:20
По мне так лучше средствами самой 1С.
Вот здесь ссылка на скриптик применимо к 1С 7.7, 8.1 и 8.2
http://infostart.ru/public/72057/
Работает на ура + дополнительные функции !
7. Вадим Иванцов (grum01) 15.07.10 08:38
(6) Ну тут трудно сказать. Все зависит от предпочтений. Кроме того, большие базы быстрее обрабатываются архиватором, чем самой 1С (так, по крайней мере, у меня).
8. anna62 (Anna_A) 15.07.11 19:09
Пользователей ночью, конечно, нет, а вот фоновых заданий все больше или они теперь работают дольше (нашим базам всего полтора года).
Вопрос первый: остановит ли команда ЗавершитьРаботуПользователей фоновые задания.
Вопрос второй: я уже воспользовалась Вашим советом и попробовала эту команду, но пользователь, завершив свою работу пытается войти снова (такое окошко с секундомером), но база уже заблокирована и эта история продолжается пока ее не остановишь личным вмешательством. А после этого не закрывается пользователь-администратор, от имени которого блокируется база.
А вот команда РазрешитьРаботуПользователей выполняется нормально.
Публикация на эту тему была давно, но может кто-то откликнется?
9. Вадим Иванцов (grum01) 11.08.11 12:00
"Сеанс администратора, тоже не закрывался (хотя, вроде бы должен?)."

Сеанс администратора в данном случае закроется только когда выгонятся все пользователи.
10. anna62 (Anna_A) 12.08.11 16:58
Возможно, я что-то делаю некорректно:
- на своем компьютере открыла сеанс произвольного пользователя.
- запустила команду под администратором для завершения работы пользователей (в данном случае одного)
На экране у меня - сеанс администратора и завершенный сеанс пользователя, который ежеминутно пытается войти в систему и команда, которая не заканчивается (три окна). Все это висит до тех пор, пока я не закрываю принудительно оба сеанса (только после этого команда из командного файла считается завершенной), тогда управление передается следующей команде, т.е. копированию. Следовательно, из двух выходов, предложенных Вами, подойдет, пожалуй, только первый.

Во всей этой ситуации меня смущает сеанс администратора.
11. Максим Анпилов (Mx00) 17.12.11 13:29
Выскажусь ещё раз
главное в архивировании не создание архива, а уверенность, что у вас ЕСТЬ архивные копии
все мнения о том, что "достаточно использовать стандартные средства windows" или простенький bat-файл отпадают по одной причине - вы не знаете создался у вас архив или нет, а проверять даже раз в неделю быстро надоедает и что там с архивированием ни кто не в курсе (и не надо думать, что вы не такой :-) )
поэтому система архивирования должна сообщать ответственному о том что произошел сбой при архивации.
после такой постановки здачи думаем и выбираем (или создаем) нормальную систему архивирования
Удачи всем.
12. Андрей Жигулин (Properman) 31.10.12 11:40
Изобретать колёса нет смысла! В наше время нужны такие средства, которые бы не упирались в длину пути к файлу и невозможность создания большего количества архивов, хотя бы на всякий случай! Ниже приведу ссылку на программу автоматической архивации неограниченного количества баз и символов в пути к файлу, оцените сами что лучше приятный интерфейс или строчки скриптов, где любая ошибка и уже не работает! :) , вот ссылка: http://infostart.ru/public/157922/
13. Сергей Старых (tormozit) 15.11.12 14:39
2iS Интеграция http://infostart.ru/public/145983/ может автоматизировать регулярную выгрузку для всех ваших баз 1с за несколько кликов. Базы поддерживаются любые, файловые и серверные, обычные и управляемые, 8.1, 8.2, 8.3.