Маленькие хитрости администрирования баз данных программ семейства 1С Предприятие


Подальше положишь - поближе возьмешь


Регулярно выполнять резервное архивирование нужно обязательно, чтобы не было потом обидно за безвозвратно утерянные данные. Чем это делать - это вопрос скорее вкуса. Существует, например, специально "заточенная" под 1С программа "Хранитель" от ростовской фирмы "Гендальф" http://www.gendalf.ru/, которая умеет делать массу полезных вещей, но мне она кажется слишком перегруженной для таких простых целей, я пользуюсь старым добрым RAR'ом. Архивировать следует только файлы базы *.dbf и сами метаданные (1cv7.dd/md), ну еще LOG-файл и ваши оригинальные файлы (если они есть). Сначала приведу содержимое нескольких командных файлов (расширение *.cmd работает только под Win NT, если используется Win'9X, то расширение должно быть *.bat):

ARCH.CMD

REM используемые каталоги (должны существовать)

REM D:\1C\DB - рабочая база

REM C:\Temp\DB - временная копия базы

REM C:\BACKUP - архив базы

REM \\Adm\Storage - резервный архив базы (на другом компьютере сети)

@echo off

; чистим временный каталог



Del С:\Temp\DB\*.*

; копируем в него архивируемые файлы рабочей базы (*.md,*.dd,*.log,*dbf)

Copy D:\1С\DB\1cv7* С:\Temp\DB

Copy D:\1C\DB\*.dbf C:\Temp\DB

; сохраняем предыдущую версию архива под новым именем

copy C:\BACKUP\db.rar C:\BACKUP\db0.rar

; создаем новый архив

rar.exe u -r -m1 -dh -std C:\BACKUP\db.rar С:\Temp\DB\*.*

if errorlevel 0 goto rpl

echo P_A_C_K_I_N_G___E_R_R_O_R__!

goto end

:rpl

; сохраняем копию архива в надежном месте

net use Z: \\Adm\Storage

copy C:\BACKUP\*.rar Z:

net use Z: /delete

:end

Выполнять сию процедуру можно не прерывая производственный процесс (никого из базы выгонять не надо), именно для этого мы архивируем не саму базу, а ее временную копию.

На этом все, осталось всего навсего запустить системную службу Sсhedule: Explorer-ControlPanel-Services-Schedule-Startup-Automatic (поддерживается только под Win NT, для Win'9X нужны специальные внешние утилиты) и набрать из командной строки что-нибудь аналогичное :




At 13:00 /Every:M,T,W,Th,F C:\COMMAND\arch.cmd

At 18:00 /Every:M,T,W,Th,F C:\COMMAND\arch.cmd

At 07:00 /Every:M,T,W,Th,F C:\COMMAND\shutdown /l /r /y /c



и все - мы имеем два раза в день автоматическое архивирование нашей базы, ежедневно - с понедельника по пятницу. По-моему просто и самодостаточно. Как часто нужно делать архивы - это зависит от интенсивности документооборота в вашей организации, я делаю два раза в день, т.ч. если что, то придется восстанавливать документы максимум за пол-дня (тьфу-тьфу):

Теперь о третьей строке в команде AT - в плане автоматизиции рутинных действий я пошел еще дальше, как я уже упоминал у меня каждую ночь производится реиндексация базы, для этого используется такой командный файл :



REINDEX.CMD

@echo off



; каталог базы



set db=D:\1С\DB



; каталог программы



set pr="C:\Program Files\1cv75\bin\1cv7"



; принудительно сносим индексы



del %db%\*.cdx /Q



; запускаем программу монопольно под "фиктивным" пользователем



%pr% enterprise /D%db% /M /NЧистяков /Pstart



Этот командный файл вставляется в папку автозагрузки на сервере, утилита SHUTDOWN.EXE (из Windows NT Resource Kit - это набор дополнительных сервисных утилит) производит перезагрузку сервера, для того чтобы по загрузке не нажимать магическую комбинацию из трех пальцев (Ctrl-Alt-Del) и не вводить пароль, а загрузить сервер автоматически, нужно подправить системный реестр NT (запустить из командной строки regedit.exe) :



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]

"DefaultUserName"="YourProfileName"

"DefaultDomainName"="Comp"

"AutoAdminLogon"="1"

"DefaultPassword"="YourPass"



где YourProfileName - имя профиля администратора на сервере (по умолчанию Administrator), Comp - сетевое имя сервера, YourPass - пароль аминистратора на сервере (обязательно должен быть не пустым).

Итак подъитожим - в заданное нами время происходит автоматическая перезагрузка сервера с переиндексацией базы, для того чтобы программа по окончании переиндексации сама завершилась необходимо в глобальном модуле конфигурации предусмотреть некие нестандартные действия по обработке входа в программу исскуственного "фиктивного" пользователя (Чистяков - без пароля) - они приведены в демонстрационной конфигурации (архив Adm.rar).

В принципе никто не запрещает пойти еще дальше - и наряду с переиндексацией базы по ночам выполнять любые желаемые действия, например групповое перепроведение документов для восстановления границы последовательности или формирование "тяжеловесных" отчетов, с последующим сохранением их результатов в *.mxl файлах, рассылки прайсов по факсу или e-mail'у и т.д. Все ограничивается только вашей фантазией.


Содержание раздела