Уважаемые коллеги, одной из актуальных для многих проблем является архивирование баз данных. На форуме Ирбиса не однократно обсуждались различные способы решения этой проблемы. Однако, как показало общение со многими библиотеками, далеко не все внедрили эту технологию себе. Хотелось бы отметить, что Ирбис, как и любая другая база данных, структару постоянно изменяющаяся, а потому не является на 100% стабильной - возможны разные случаи и сбои, которые могут привести к повреждению базы данных. Особенно это касается ВУЗовских библиотек, работающих на Ирбисе 32 - проблема многоэкземплярности и внедрения рассчета ККО часто приводят к сбоям в работе базы данных. По этому, архивирование не рекомендательная задача, а первостепенно необходимая для надежной работы библиотеки.
Архивирование в Ирбис может проходить двумя способами: в ручном режиме и в автоматическом.
Ручной режим предполагает выгрузку баз или создание архива файла БД оператором с помощью АРМа Администратор. В случае, если в библиотеке ведется много баз данных, эта процедура безумно утомительная, особенно, если вести архивирование ежедневно.
Автоматическое архивирование основано на так называемых batch-файлах. Это набор комманд, записанных в файл, которые подаются для автоматического выполнения в АРМе Администратор. Подробное описание этих файлов можно найти в общем описании Ирбиса. Вобщем случае для архивирования задаются комманды OpenDB DB-1 - Указание на то, какую именно БД надо открыть для обработки
UnLockDB - Снятие блокировок, которые могли остаться. Снимает как локальные блокировки, когда клиент закончил работу АРМа аварийно и с записи не был снят флаг редактирования, так и монопольные блокировки БД, которые могут появляться в результате сбоев пакетных корректировок.
Actualif - актуализация неактуализированных записей
CopyMf c:\irbiswrk\BACKUP\DB-1.bkp - копирование файла БД.
ExportDB 0,,1,1,c:\irbiswrk\BACKUP\DB-1.txt - экспорт базы данных. Этот режим может сыкономить вам множество метса, так как при экспорте выгружаются только актуальные версии записей, а архив редактирования записей не сохраняется. В некоторых случаях при таком экспорта архив получается до 10 раз меньше, чем сама БД.
следует использовать или CopyMf, или ExportDB.
CloseDB - закрытие текущей БД
Выполнение данного задание осуществляется путем создания копии ини фалйа АРМа Администртор, в парамере batchfile которого прописывается нужный пакетный файл. Далее просто осуществляется вызов АРМа Администртор с указанным ини файлом. Вызов можно осуществлять как из коммандной строки(написанием, к примеру, соответствующего bat-файла), так и просто как назначенные задания из соответствующего сервиса операционной системы.
Очень интересные варианты по создание архивов делались и обсуждались на форуме Ирбиса, построенные на использование VBS. Это позволяет ввести в процесс архивирование множество дополнительных функций.
Я бы рекомендовал архивировать БД не перезаписывая старые, а создавать архивы с приписыванием к ним текущей даты создания. Иногда бывает ситуация, когда какая-то запись была так или иначе повреждена некоторое время назад. Тогда появляется необходимость отыграть ее к старому варианту. Для этого желательно иметь несколько копий. Ниже я привожу пример bat-файла, который выполняет запуск АРМа Администратор с указанием нужного ини файла, потом в переменную CURDATE сохраняет текущую дату(потом она приписывается к названию файла архива), потом выгруженные АРМом Администратор файлы переименовываются, дополняясь текущей датой.
call c:\irbis\irbisa.exe irbisa_backup.ini
@echo off
set CURDATE=%DATE%
RENAME c:\irbiswrk\BACKUP\DB-1.bkp %CURDATE:~0,2%%CURDATE:~3,2%%CURDATE:~8,2%_DB-1.bkp
RENAME c:\irbiswrk\BACKUP\DB-2.bkp %CURDATE:~0,2%%CURDATE:~3,2%%CURDATE:~8,2%_DB-2.bkp
RENAME c:\irbiswrk\BACKUP\BACKUP.LOG %CURDATE:~0,2%%CURDATE:~3,2%%CURDATE:~8,2%_BACKUP.LOG
set CURDATE=
Поместив этот батник в Назначенные задания вы сможете архивировать систему автоматически, получая ежедневнуюю копию всех указанных баз. Такой метод архивирования используется в библиотеке, которую обслуживаю я, а какими методами решаются эти задачи в ваших библиотеках, уважаемые коллеги?