Hare.ru @ Коллективный разум / Hare.ru @ Дикое место |
Архив hare.ru | |||
Мысли, конвертированные в текст | ||||
Полезные технологииАльтернативное резервирование баз V7Сергей Гридасов (сентябрь 2002) ПредисловиеПолнофункциональное резервирование бывает трех видов:
Дифференциальное резервирование является более экономным решением – сначала проводится полное резервирование, а затем в течение некоторого периода времени резервируются лишь модифицировавшиеся файлы. Новое полное резервирование нужно проводить тогда, когда в дифференциальный набор файлов попадает более 75% объёма полного набора файлов. Наиболее экономным является инкрементальное (т.е. "наращиваемое") резервирование, но процедуры отката могут занимать довольно много времени. Ведь при откате нужно последовательно, по шагам, вернуться к тому состоянию, при котором последний раз проводилось проное резервирование, и этих шагов будет ровно столько, сколько раз запускалась процедура инкрементального резервирования. Инкрементальное резервирование имеет смысл тогда, когда вам приходится часто создавать новые файлы и/или в разные периоды времени работать с большим количеством разных программ; если же Вы обычно имеете дело с одним и тем же набором файлов, то лучше воспользоваться дифференциальным резервированием. Дифференциальное резервирование, по сравнению с инкрементальным, имеет еще и то преимущество, что в случае нехватки дискового пространства для новых задач можно удалять не слишком важные промежуточные дифференциальные наборы; а при инкрементальномы резервировании надо хранить все промежуточные наборы файлов – иначе точное восстановление не произойдет, хотя, конечно, каждый новый инкрементальный набор будет занимать меньше места на диске, чем при дифференциальном резервировании. Моя идея состоит в том, чтобы заменить штатную процедуру резервирования V7 на свой собственный алгоритм, а в качестве инструментального средства привлечь последние наработки в области сжатия данных. Легко догадаться, что речь идёт о популярных в народе архиваторах. Посмотрим, можно ли с помощью стороннего архиватора реализовать полнофункциональное резервирование:
В описываемом решении я использовал RAR 3.0 – как наиболее подходящий и по плотности сжатия, и по функциональным возможностям. Как я это сделал Задача состоит в том, чтобы из-под V7 запустить RAR с нужными параметрами и передать ему имя файла архива. Желательно, чтобы это имя содержало дату и время момента начала резервирования. Также архиватору необходимо передать дату и время момента последнего полного резервирования (мы рассматриваем реализацию дифференциального резервирования). Это нужно для того, чтобы RAR поместил в архив только те файлы, которые были изменены с момента полного архивирования. Как это сделать? Очевидно, через BAT-файл. BAT-файл запускается с параметрами в виде: DiffRzrv.bat %1 %2 %3 После подстановки параметров должно получиться что-то вроде: Diff_rzv.bat YYMMDDhhmmss MMDD hhmm Первый параметр передается RAR'овскому ключу -ta для отбора файлов, измененных с момента YYMMDDhhmmss. Из двух других формируется имя архива. В итоге на вход командному интерпретатору подается строка BAT-файла примерно такого вида (это всё одна строка): rar a -m5 -md4096 -s -ta20%1 ..\Lokal_Proiz-vo\%2_%3_diff.rar Комментарии В каталоге Базы создан каталог REZERV, а в нем – каталог SYS. BAT-файл находится в каталоге SYS, а архивы хранятся в каталоге %DBDir%\REZERV\Lokal_Proiz-vo. Ключи RAR:
Как видно, в BAT-файле можно гибко настраивать скорость работы и плотность архива. Чтобы это работало, после установки WinRAR 3.00 консольный RAR (RAR.EXE) надо поместить в каталог, описанный в PATH – например, %SystemRoot%\COMMAND. Кстати, в BAT-файлах можно вызывать и WinRAR.exe с теми же параметрами, тогда резервирование запускается как приложение WINDOWS, с соответствующим интерфейсом. Таким образом, можно откатиться на некоторое время назад и обратно – в зависимости от наличия дискового пространства. На небольших базах вполне можно обеспечить откат на месяц или даже квартал, в зависимости от частоты резервирования. Кроме того, методика вполне применима для "степпинга" проекта – можно пошагово отслеживать изменения ключевых внешних обработок или всей конфигурации. Моя оболочка имеет вид обычной конфигурации 1С и работает под всеми версиями WINDOWS. См. приложненную к статье ссылку внизу страницы. Первоначально я хотел реализовать эту систему обработкой, а не отдельной конфигурацией. И предпосылки к этому есть: в WinRAR 3.00 имеется ключ -dh, который, согласно документации, позволяет помещать в архив файлы, открытые для записи. Тогда администратор мог бы в монопольном режиме запустить архивацию и при этом был бы уверен, что за время архивации ни один файл не будет модифицирован. Но, к сожалению, на незарегистрированной копии WinRAR эта опция не работает. Или, что вполне возможно, это "фича" Windows 2000. Дальнейшее развитие Доработка требуется только по одному пункту: автоматический запуск резервирования по расписанию. Это можно реализовать двумя способами:
|
Партнеры: Также может быть интересно: Канал Россия 1 на http://spbtvonline.ru/ |
|||
Сайт поддерживается за счет партнеров: | ||||
:::... Сайт содержит архив двух версий hare.ru | Карта сайта |