| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Способы Архивации БД |
| Автор: MarinaK 19.2.2006, 19:57 |
| Хочется сохранять базу в архиве, желательно ежедневно. Думаю при закрытии БД или по нажатию кнопки создавать директорию, названную по дате, и копировать туда файл - часть базы (с данными). А как вы, опытные, поступаете? |
| Автор: NikolayBY 20.2.2006, 17:16 |
| Если отталкиваться от самого простого, то, так бы и делал, но все зависит от исходного размера. Если очень большой размер, то надо продумывать алгоритм сравнения и сохранять только произведенные изменения в некую базу, служащую для хранения данных |
| Автор: Akina 20.2.2006, 18:22 | ||
| Во-первых, отдели код от данных. Тогда данные бэкапятся по расписанию или событию, а код (запросы, формы, отчеты, модули и макросы) - по завершении очередного этапа раз(до)работки. Код сохраняется вручную. И тут в общем ничего не сделать - SourceSafe не обслуживает Access. Что до сохранения данных - мой личный опыт привел меня к следующей методике: 1) Структура таблиц сохраняется автоматически генерируемым запросом на создание этой таблицы. Тут ничего сложного нет - пишешь один раз удобную тебе процедуру парсинга и сохранения TablEDef и напускаешь его на коллекцию (ForEach). 2) Сами данные сохраняются в текстовый файл. Формат разрабатывается самостоятельно в зависимости от собсно данных - он не должен допускать пересечения разделителей и контента. По сравнению с самой базой такой бэкап меньше в разы, даже без архивирования. 3) Для восстановления данных пишется еще одна универсальная процедура. Что же до восстановления структуры таблиц - запрос есть, только выполни. 4) Связи и протчая аналогичная ерунда - это просто бэкап данных из системных таблиц. Всего-то... Это - для БД, с которой не работают монопольно... если же с база на момент резервирования заведомо свободна - можно просто написАть VBS-скриптик, копирующий ее куда надо. Что-нить типа
|
| Автор: vADIKg 21.2.2006, 09:45 |
| 1. Скрипт в шедулер 2. Есть специальные проги для бакапа - там все уже реализовано: создание отдельных каталогов, бакап измененных файлов, архивация |
| Автор: MarinaK 21.2.2006, 17:16 | ||
Мне это и надо, я думаю. В шедулере - автоматический бэкап. А конкретно, какой программой пользуетесь? И еще вопрос. Если в момент автозапуска такого бэкапа база будет открыта... Не скопируется, боюсь... |
| Автор: MarinaK 21.2.2006, 19:59 | ||
Мудро! |
| Автор: Akina 22.2.2006, 10:11 |
| MarinaK Учти - даже в момент отпущенной БД файл может существовать. Тогда проверяй что он 1) не занят 2) имеет нулевой размер. |
| Автор: vADIKg 22.2.2006, 12:30 | ||
Шедулер - LaunchPad v.3.03, работает безотказно А вот прога для бакапа простой копировщик, заменяющий файлы на более новые в папке, соответствующей дню недели. Не пакую по двум причинам: 1. база весит около 2 гигов (распаковывать потом долго,а нужна мегаоперативность) 2. места для бакапа полно Раньше, когда с местом был напряг паковал WinRar |
| Автор: Akina 22.2.2006, 14:29 |
| Если база MS Access перевалит за 2 гига - умрет... |
| Автор: vADIKg 22.2.2006, 15:12 | ||
Спасибо за предупреждение. Вообще, большие базы на Аксессе стараюсь не рисовать. Двухгиговая база написана на первасиве и сами данные занимают много меньше места, нежели побочная бяка. Просто разговор шел о бакапе. До этого я обслуживал продукт (АБС), который весил более 5 гигов и основную массу занимала БД, которая являлась архивом данных и использовалась гораздо чаще, нежели текущие данные. Сервак был старенький и места было ну очень мало. Бакапилась системка в течение 5-6 часов ночью и рассовывалась по двум писюкам в сети. А вот однажды пришлось восстанавливать. Весь банк стоял, только после обеда начали работу. Нервов было утрачено немеряно. ЗЫ: руководство так и не поверило в целесообразность усовершенствования оборудования. но это уже лирика. |
| Автор: SerJo 27.2.2006, 22:57 |
| Виндовый шедулер, WinRar "C:\Program Files\WinRAR\WinRAR.exe" a -o+ -dh -r -ibck -inul -ep1 -agyyyy.mm.dd C:\root\Disk\All\arc\mdb\ C:\root\Disk\DataBase\db\office\off.mdb В результате создается архив даже открытой базы вида 2006.02.27.rar Задание запускается ежечасно (база небольшая) с утра до 21.00. В итоге всегда имеею последний архивчик. |
| Автор: vADIKg 28.2.2006, 08:23 | ||
Таким образом архив перезаписывается 10-13 раз. А смысл? Если данные "поползут" и попадут в архив, то по-любому придется восстанавливать бакап за прошлый день. Создавай тогда уж файлы YYYYMMDDHH.rar. |
| Автор: Akina 28.2.2006, 08:44 |
| Есть определенный шанс заархивировать голову от одного состояния, а хвост - от другого. И в результате поиметь нерабочую резервную копию. |