gifts2017

Резервное копирование и обслуживание базы данных

Опубликовал Neman Entorin (ne_en) в раздел Администрирование - Архивирование (backup)

Скрипты для обслуживания базы данных и её архивирования.

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

Итак. Есть два файла параметров запуска 1С в пакетном режиме.

Файл Recalc.prm. Параметры запуска для пересчета итогов и переиндексации.

[GENERAL]
Output=m:\tradedb\wdb\recalc.log
Quit=1
CheckAndRepair=1

[CheckAndRepair]
Repair=1
PhysicalIntegrity=0
Reindex=1
LogicalIntegrity=0
RecalcSecondaries=1
RecalcTotals=1
Pack=0

Файл Reindex.prm. Параметры запуска для переиндексации.

[GENERAL]
Output=m:\tradedb\wdb\reindex.log
Quit=1
CheckAndRepair=1

[CheckAndRepair]
Repair=1
PhysicalIntegrity=0
Reindex=1
LogicalIntegrity=0
RecalcSecondaries=0
RecalcTotals=0
Pack=0

Такие файлы впринципе держу для каждой базы данных (количество баз у разных клиентов разное, например в аудиторской их около четырех десятков).

Для собственно архивирования баз использую bat-файл с именем ArchDB.bat

rar a -pkc9d9fs76cvk4 -k -ac -agYYYYMMDDHH -ep1 -ilog -m5 -md4096 -r -s -y -x*.cdx -x*.mxl %1 %2

rem пароль kc9d9fs76cvk4
rem -k Заблокировать архив
rem -ac Снять атрибут "Архивный" после архивации или извлечения
rem -agYYYYMMDDHH за имя архива берется текущие дата и час, дата записанна в обратном порядке, для правильной сортировки архивов по дате.
rem -ep1 Исключить базовый каталог из имен
rem -ilog Записывать протокол ошибок в файл (в зарегистрированной версии)
rem -m5 Метод сжатия - максимум
rem -md4096 Размер словаря 4 Мб
rem -r Рекурсивно с подкаталогами
rem -s Создать непрерывный архив
rem -y Отвечать 'Да' на все запросы
rem -x*.cdx -x*.mxl исключить из архива файлы cdx и mxl (это когда бухи для переноса данных используют каталог базы данных, фалы нужны 1 раз, а размерчики у них не слабые)

Для запуска архивирования базы данных - файл ArchTradeDB.bat

Call ArchDB D:\Archivs\TradeDB\T M:\TradeDB\WDB\*.*

rem Вызывается батник ArchDB с параметрами
rem D:\Archivs\TradeDB\T путь к каталогу хранения архива (первая буква в имени архива будет T).

Для хранения архивов используется носитель отличный от носителя базы данных, т.е. это физически разные устройства (сетевой диск, другой жесткий диск, Флешка...)

Для запуска пересчета и переиндексации, файл RecalcTradeDB.bat

c:\progra~1\1cv77\bin\1cv7.exe config /DM:\DBases\WDB\ /NРобот /Probot /@M:\Service\Recalc.prm

Для архивирования папки документов ArchDocs.bat

rar a -ac -agYYYYMMDDHH -ep1 -ilog -m5 -md4096 -r -s -y D:\Archivs\Documents\D G:\Documents\*.*

И имеется ещё несколько батников для архивирования разных баз и различных наборов сервиса
Например: Файл AllDBService.bat

call ArchAccDB.bat > ArchAcc.log
call RecalcAccDB.bat
call ArchTradeDB.bat > ArchTrade.log
call RecalcTradeDB.bat
call ArchDocs.bat > ArchDocs.log

Все эти файлы у меня лежат в одном месте (M:\Service) туда же закинут файл rar.exe

Но фактически я просто прописываю вызов нужного сервиса в один батник, а он в свою очередь запускается через "Назначенные задания" ежедневно в 22:00

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Архив с описанными файлами
.rar 1,50Kb
08.07.10
113
.rar 1,50Kb 113 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Jurii (jmw) 08.07.10 12:09
Всё хорошо!
НО!
При таком способе архивирования, прийдётся частенько входить в каталог с архивами и вручную удалять старые (особенно на больших базах)...
Вот у меня, например раровский архив базы занимает от больше 300 метров.
Нетрудно посчитать, что за месяц архивы будут занимать около 10 гигов! А за 2 месяца?
Ещё не очень красиво выглядят досовские окна... да и грохнуть их непосвящённый пользователь может очень легко - крестиком в правом верхнем углу.
Не в целях саморекламы, но в целях направления на путь, так сказать, истинный:
посмотри вот такой сриптик
2. Neman Entorin (ne_en) 08.07.10 16:58
(1) Про окна... Сначала нужно вспомнить, что делается это на серверах, соответственно чел их и не увидит никогда. (потому как это где-то там)
Даже если это не совсем серв, то все равно при запуске, когда все уже свалили с работы, это не имеет значения.
Ну и если на батничек создать ярлык для ручного запуска, то все равно чел запустит, и будет точно знать, что это копия делается... Если нет, то этога сотра нужно лечить по поводу головы...
Про размер...
ДБФные базы при указанных параметрах зжимаются до 4-6 процентов. Т.е. от базы с размером 10Гб останется 400-600Мб. При современных винтах (я под архивы ставлю минимум 250Гб) даже таких копий войдет больше 400 штук...
А по поводу удаления старых архивов... Раз в пятилетку и мне не проблема выделить сотню файлов и грохнуть, но вообще и бухи и местные ответственные и админы, ни у кого проблем с этим не было, достаточно раз показать и ярлык на стол положить...
3. Виктор Клименко (dicwork) 26.12.11 01:48
Как я понимаю это работает только для баз в формате DBF?
4. Neman Entorin (ne_en) 26.12.11 09:59
Ну конечно. В скуле свои функции для этого есть. Хотя в принципе если нужно содержимое папки (типа внешние отчеты/обработки, дллки всякие), то тоже можно заюзать. Ток там нет надобности каждый день архив делать, достаточно в один всё время сжимать с заменой.
Но пересчет итогов можно применять и в скуле (хотя я не пробовал :) )
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа