Массовое восстановление информационных баз из бэкапов

Публикация № 262857

Администрирование - Администрирование данных 1С - Сервисные утилиты

cmd cmd-file cmd-файл dt

CMD-файл для создания файловых информационных баз из файлов выгрузки (.dt)

Время от времени в своей работе я встречаюсь с необходимостью восстановить сразу несколько файловых информационных баз из выгрузок. Как правило, необходимость эта возникает, когда у пользователя произошли непонятные изменения и требуется выяснить когда это изменение произошло. Или найти копию базы в которой "все правильно".

Вручную восстанавливать dtшники долго и муторно, поэтому возникла мысль автоматизировать данный процесс.

Собственно, в один каталог складываются dt-файлы и CMD-файл. После выполнения файла в каталоге формируются каталоги с восстановленными информационными базами, log файлы процесса и v8i файл описания списка информационных баз.

 

:: Восстанавливает несколько бекапов информационных баз в текущем каталоге
:: ver. 1.01 - 
:: ver. 1.02 Добавлена возможность запуска восстановленных ИБ, если переданы параметры
:: ver. 1.03 Не задваиваются описания ИБ в файле описания 
:: 2014(c)VSCraft 
@Echo off
setlocal enabledelayedexpansion
::::::::::::::: settings :::::::::::::::
:: имя файла списка информационных баз (должен быть в UTF-8 кодировке)
Set ibfl=ib.v8i
:: имя папки в списке информационных баз для вновь создаваемых (одно слово по-английски)
Set fld=Recovered_Backups
:: если dt файл удалять не нужно оставить параметр пустым
Set deleteDt=
:: путь до исполняемого файла 1С 
Set exe1c="%ProgramFiles%\1cv82\common\1cestart.exe"
IF defined ProgramFiles(x86) Set exe1c="%ProgramFiles(x86)%\1cv82\common\1cestart.exe"
Set fld_exists=
::::::::::::::::::::::::::::::::::::::::

if NOT exist %ibfl% @echo.>%ibfl%
for /F %%I in (%ibfl%) DO (
	IF .%%I.==.[%fld%]. Set fld_exists=1
	)


if defined fld (
	if NOT defined fld_exists (
		@echo [%fld%]>>%ibfl%
		@echo ID=fce6b3f9-ac31-4642-8461-dc60b1deeb0a>>%ibfl%
		@echo OrderInList=-1>>%ibfl%
		@echo Folder=/>>%ibfl%
		@echo OrderInTree=360704>>%ibfl%
		@echo External=0 >>%ibfl%
		)
	)

@FOR %%I in (*.dt) do (
	@SET nIb=%%~nI
	IF NOT Exist !nIb! Md !nIb!
	@echo !TIME! Loading !nIb!
	IF NOT exist "!nIb!\1Cv8.1CD" (
	  start "%TIME% New IB creation !nIb!" /WAIT %exe1c% CreateInfoBase File="!nIb!";
	)
	start "%TIME% Loading !nIb!" /WAIT %exe1c% Config /F "!nIb!"  /RestoreIb "!nIb!.dt" /Out "!nIb!.log" 
	IF defined deleteDt @del "%%I"
	Set ibFound=
	for /F %%I in (%ibfl%) DO (
		IF .%%I.==.[!nIb!]. Set ibFound=1
	)
	IF NOT defined ibFound (
		 @echo [!nIb!]>>%ibfl%
		 @echo Connect=File="%cd%\!nIb!";>>%ibfl%
		 @echo Folder=/%fld%>>%ibfl%
		 @echo ID=772411e8-6051-4b88-bd5a-f27ccc527500>>%ibfl%
		 @echo External=0 >>%ibfl%
		 @echo App=Auto>>%ibfl%
		 @echo WA=1>>%ibfl%
		 @echo Version=8.2>>%ibfl%
	)	
	
)

@IF [%1]==[] exit
@FOR /D %%U in (*) DO start "" %exe1c% EnterPrise /F %%U /N %1 /P %2

Нужно заметить, что батник предназначен для работы в свежеприготовленом каталоге или, чтобы добавить дополнительные базы. Если запустить его второй раз с теми же dt-шниками, будет запрашиваться имя пользователя-пароль для загрузки конфигуратора в уже существующей базе.

 

ver 1.02 Добавлена возможность сразу запускать восстановленные информационные базы, если батнику передан один или два параметра (имя и пароль пользователя информационной базы)

Специальные предложения

Оставьте свое сообщение

См. также

Централизованное управление кластером 1С Предприятия, состоящим из нескольких рабочих серверов, работающих на платформе GNU/Linux

Сервисные утилиты v8 Абонемент ($m)

При эксплуатации крупных информационных систем, в состав которых могут входить десятки серверов 1С Предприятия, зачастую возникают ситуации, требующие однотипных действий на всех серверах кластера 1С Предприятия или на всех серверах контура. В настоящей статье представлен способ централизованного управления серверами 1С Предприятия, работающими на платформе GNU/Linux. Подобный подход может быть использован и для других задач, возникающих в процессе эксплуатации крупных систем, с целью сокращения как временных затрат специалистов, так и времени простоя системы.

1 стартмани

26.08.2019    3952    Sloth    0    

Упражнения на Перфоленте. Парсим технологический журнал 1С

Сервисные утилиты Инструментарий разработчика Практика программирования Разработка Абонемент ($m)

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

1 стартмани

31.07.2019    7527    Perfolenta    62    

Go. Разбор лога технологического журнала. Достойная альтернатива perl'у

Сервисные утилиты Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Началось все с того, что я познакомился с перловыми скриптами для парса ТЖ которые размещены на kb.1c.ru (например в этой статье https://kb.1c.ru/articleView.jsp?id=113). По началу мне дико понравилось то, что перл разбирал гигабайты логов за считанные минуты, но позитив мой угасал обратно пропорционально с тем, насколько глубже я погружался в "кроличью нору" ....

1 стартмани

24.10.2018    20675    lazarenko    39    

Мониторинг журнала регистрации при помощи Powershell

Сервисные утилиты Журнал регистрации v8 Абонемент ($m)

Работа с журналом регистрации в формате SQLite внешними средствами на примере мониторинга изменений в конфигурации базы данных.

1 стартмани

12.07.2018    13106    user768334    7    

Tool1CD: отрежем донорскую почку

Сервисные утилиты Разработка внешних компонент v8 Розница Абонемент ($m)

Ваша база мертва? Что ж, кое-что в ней ещё теплится.

1 стартмани

15.05.2018    19022    baton_pk    13    

Использование регулярных выражений (RegExp) в Linux

Сервисные утилиты Администрирование данных 1С Внешние источники данных v8 Абонемент ($m)

Описывается способ использования регулярных выражений (RegExp) в Linux с использованием тех же компонентов, что и в Windows (COM-объекты VBScript.RegExp).

1 стартмани

20.04.2018    8840    vsbronnikov    12    

Мониторинг изменений рабочих конфигураций. Часть 1. Сохранение конфигураций из базы SQL без конфигуратора

Сервисные утилиты v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.02.2018    19623    user768334    25    

Практика доступа в базу 1С через протокол oData. Чтение данных

Сервисные утилиты Практика программирования Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

Для чего нужен доступ в базу 1С через REST-интерфейс по протокол oData? Как его организовать? Как не будучи гуру в JavaScript и .NET получить быстрый визуальный доступ к данным базы 1С? Попробую дать ответ на эти вопросы и прокомментирую некоторые нюансы, с которыми я столкнулся.

1 стартмани

11.12.2017    106932    Dementor    57    

1С:Предприятие 8.2. Управляемая Форма. Меняем иконку рабочего стола.

Сервисные утилиты Производительность и оптимизация (HighLoad) Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: "Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях - это ускорит и освоение конфигураций и повседневную работу пользователей с ними." Но все же можно попытаться ее сменить.

1 стартмани

28.09.2012    29547    ghostaz    39