Резервирование базы - Rar-архивирование и создание вторичной копии

30.06.10

База данных - Архивирование (backup)

Скрипт создает rar-архив, закрытый паролем, а также - копирует базу на второй сервер.
Делается проверка и восстановление базы.
Есть возможность выключения и/или перезагрузки копьютеров.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Архив с скриптами
.rar 144,11Kb
133
133 Скачать (1 SM) Купить за 1 850 руб.

Резервирование базы - Rar-архивирование и создание вторичной копии

Скрипт создает rar-архив, закрытый паролем, а также - копирует базу на второй сервер.
Делается проверка и восстановление базы.
Есть (закоментирована) возможность заливки на FTP и выключения-перезагрузки копьютеров. 

Именно RAR и никакой другой: Поддрежка файлов больше 2Гб, большАя степень сжатия чем zip, мощнейшая защита паролем и т.п..


Второй сервер исспольльзуется теми, кому закрыт доступ в оперативную базу на основном сервере. Это, например, различные менеджеры и торговые представители.

Единственное ограничение, с которым им приходиться сталкиваться, но оно не столь критично именно для них - в базе нет документов за сегодняшний день (так как копия делается ночью).

Скрипты со всеми нужными файла лежат в архиве  

Созданный bat-файл запускается через "Назначенные задания". Для того что-бы у Вас н утро было что почитать, все пишется в log-файл. Для его создания просто перенаправляем вывод всех сообщений с экрана в нужный нам файл с помощью ператора >. Это показано на рисунке. 

Пояснения к главным моментам:

Вывод даты и времени
date
/t
time /t
Установка основных переменных (для удобства последющего их исспользования)
set base_name=NewConfig - Имя каталога, где база лежит... кхм.. хранится, лежать ей не нужно Wink
set base_path=d:\1C_Bases\ - каталог БД
set backup_path=d:\___APPSERVER\ -  каталог для хранения копий, можно и в сеть бросать
set second_path=\\Office-02\1c_Base\ -  каталог для вторичной базы
На всякий случай удаляем и снова создаем пустой каталог. 
Именно сюда база вначале копируется, а потом архивируется

rmdir %backup_path%tmp_backup_tnx  /s /q
mkdir %backup_path%tmp_backup_tnx\%base_name%

Этот блок добавлен недавно, он для 7.7. Для 8-ки наверное по-другому будет
del /q %base_path%%base_name\*.cdx -  убиваем все индексы. Добавлено пару дней тому назад. 
"C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /M /D%base_path%%base_name% /NAdmin /Pq7a4z1 /@"d:\___APPSERVER\packet\1c_nightwork.param"
А вот это запускается конфигуратор 1С под пользователем с админ. правами и делается "Восстановление базы".
Параметры восстановления лежат в файле "1c_nightwork.param" в той же папке где и сам батник.

echo Создаем копию для основного архива
База копируется в отдельную папку, а потом уже над ней производятся все действия. Файлы, указанные в файле NoCopy.lst не копируются.
xcopy %base_path%%base_name% %backup_path%tmp_backup_tnx\%base_name%  /s /e /h /EXCLUDE:NoCopy.lst
date /t
time /t

echo Создаем основной архив
Параметры: (кому лень читать "rar /?")
- удаление файлов после архивации
- rr5p - 5% на восстановление
- id[c,d,p,q] Disable messages
- ieml[addr] восспользовавшись этим параметром видимо можно архив закинуть на мыло. На проверял.
- m5 ставим максимальный уровень сжатия
- можете поиграть с параметрами ер1, ер2 и ер3 - как Вам будет удобнее
ep1 Exclude base directory from names
ep2 Expand paths to full
ep3 Expand paths to full including the drive letter
- ag[format] имя архива содержит дату, по формату ддммггччмм

rar a -df -rr5p -ibck -hpq7a4z1w8s5x2e9d6c3 -m5 -ep1 -ag_ddmmyyhhmm  %backup_path%tnx1c %backup_path%tmp_backup_tnx\%base_name%
date /t
time /t

echo заливаем на секондари, для отчетчиков
rmdir %second_path%%base_name% /s /q
xcopy %backup_path%tmp_backup_tnx\%base_name% %second_path%%base_name%\  /s /e /h /z /y

Можно выключить второй комп после заливки на него копии.
rem - если не знаете этой команды, тогда лучше делайте все вручную, пока не разберетесь с командами доса
rem shutdown /s /t 600 /m \\office-02 /c "Отмена выключения - Пуск-Выполнить-[cmd]-[shutdown -a]"
date /t
time /t

Когда-то пробовал заливать на ftp. Может кому-то пригодиться (как отправная точка)
rem ftp -v -i -s:ftp.txt ftpupload1.depositfiles.com

rem del /q %backup_path%tnx1c_ftp.rar

Можно и сервак потушить. просто убираем rem
rem shutdown /s /t 60 /c "Отключение для зарядки батарей"
 

См. также

Архивирование (backup) Системный администратор Платформа 1С v7.7 Абонемент ($m)

Эти далекие 2000е... мы архивировали как могли. Пример командного файла для windows -- архивациия базы SQL 1С:Предприятие 7.7 средствами платформы.

1 стартмани

30.08.2024    354    0    kot1c    0    

0

Архивирование (backup) Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Программа, написанная на Delphi7 для автоматизации сохранения БД.

1 стартмани

02.01.2017    15610    12    mt111    21    

0

Архивирование (backup) Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Всё началось с того, что я лентяй. Когда пришел на работу в первый раз, мне сообщили, что уже лет 10 делают сохранение  базы каждый день в конце рабочего дня. Из этого вытекает, что  если кто-то решит подтянуть свои хвосты, то мне приходится сидеть на работе тоже. Честно, мягко говоря, меня это не особо радовало... Порывшись на просторах инета, было принято решение сделать "автосохранялку". Как уже говорилось, "Я ЛЕНИВЫЙ", поэтому мне было попросту лень ставить всякие утилиты и программки, реализовал все штатными средствами.

1 стартмани

02.12.2016    16579    5    mt111    9    

3

Архивирование (backup) Программист Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Абонемент ($m)

Архив файловой базы 1С можно сделать за 30 секунд. Делаем предварительные настройки.

1 стартмани

09.12.2014    39875    12    denisk37    72    

27

Архивирование (backup) Системный администратор Программист Бухгалтер Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Абонемент ($m)

Бэкапер-1С: версия 1.5.0. Появилась гибкая система удаления старых копий! А также: автоматический поиск баз, архивация документов, встроенный архиватор 7-Zip, целостность создаваемых копий, шифрование, отправка отчетов на почту и каталогизация. Ещё никогда резервное копирование не делалось так просто.

1 стартмани

16.05.2013    75280    638    alexey.karmanov    181    

84

Архивирование (backup) Системный администратор Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Архивация баз данных 1С 7.7 (при небольшом редактировании и версий 1С 8.х) средствами командной строки и архиватора Izarc Архивация каталога базы данных при размещении на Linux (smb-сервере к примеру) средствами linux.

1 стартмани

11.05.2012    14154    16    slava81    5    

3

Архивирование (backup) Системный администратор OpenConf Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Россия Абонемент ($m)

Обработка при помощи WinRar архивирует каталог с БД.

1 стартмани

06.04.2012    13016    34    l2d808    20    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AlexO 135 30.06.10 23:13 Сейчас в теме
Так это 7.7 только.
Для 8-ки надо первую часть через функцию "выгрузка базы".
2. mikelangello 9 01.07.10 10:18 Сейчас в теме
В принципе, все что здесь может быть интересно, это копирование каталогов + архивирование. Просто немножко параметры коммандной строки почитал.
Можно такой вариант исспользовать для копирования каких-то либо других папок.
Сейчас у нас стоит именно 7.7 дбф-ка. Планирую с нового года перевести SQL - вот там точно другие скрипты будут :)
3. roskmv 611 14.07.10 23:08 Сейчас в теме
По мне так лучше средствами самой 1С.
Вот здесь ссылка на подобный материал применимо к 1С 7.7, 8.1 и 8.2
Архивация баз данных 1С 8.2, 8.1 и 7.7
4. Yasen 490 22.07.10 18:23 Сейчас в теме
Именно RAR и никакой другой: Поддрежка файлов больше 2Гб, большАя степень сжатия чем zip, мощнейшая защита паролем и т.п..


дело вкуса, конечно, но:

The main features of 7z format:
Open architecture
High compression ratio
Strong AES-256 encryption
Ability of using any compression, conversion or encryption method
Supporting files with sizes up to 16000000000 GB
Unicode file names
Solid compressing
Archive headers compressing
5. wing 28 08.11.10 09:04 Сейчас в теме
(4) У рара есть одно несомненное преимущество, которого я не встречал больше ни в каком другом - он умеет восстанавливать поврежденные архивы, что еще в досовое время много раз спасало. В остальном - он просто удобнее.
6. SotNick 22 07.02.11 19:49 Сейчас в теме
Уважаемые спецы! У меня другая проблема, везде пишут про пакетное архивирование баз данных. А вот как сделать пакетное восстановление ИБ - не могу найти. Именно восстановлени ИБ из архива, а не тестирование и исправление ИБ / реиндексация. Может кто сталкивался?
7. mikelangello 9 17.02.11 10:52 Сейчас в теме
Nadin_.ka пишет:
... как сделать пакетное восстановление ИБ - не могу найти. Именно восстановлени ИБ из архива, а не тестирование и исправление ИБ / реиндексация. Может кто сталкивался?

Тоесть, нужно файлики из архива вытащить?
Тогда просто поменять некоторые ключи в команде rar:
rem Удаляем папку, куда будет распакован архив (со всемя подпапками и файлами, в тихом режиме без вопросов)
rmdir d:\1c_Base\NewConfig\ /s /q
rem X - извлечь файлы с полными путями
rar x tnx1c.rar
rem удаляем исходный архив (если нужно. Мне - нужно. Потому что ночью на его место ляжет новый)
del tnx1c.rar /q


Вроде как в команде "rar x base.rar" просто нельзя подставить маску типа base*2010.rar, что-бы розархивировать все архивы 2011 года, но можно вместо имени архива указать имя текстового файла, в котором будут (в столбик) перечисленны архивы, которые нужно распаковать.

У меня была такая проблемка:
- Каждую ночь делается архив. Благодаря ключу rar "-ag_ddmmyyhhmm" я получаю в папке с архивами файлы вида: "base_010120112330;base_020120112330;base_030120112330;.." (03-число,01-месяц,2011-год, 2330- 23:30)
Удобно, сразу видно кто когда создан, файлы не перезатираются (если бы просто писать в base.rar - то будет только он 1, но обновленный) Кстати, есть ключи, позволяющие не пересоздавать весь архив, а только внести измененные файлы.
- Дальше нужно взять самый свежий архив и скопировать его на другую машину. Там эту базу восстановить - для работы тех, кому не нужны оперативные данные, а только отчеты по "вчера", а также - для обучения стажеров, тестирования.
Из 20-30 файлов выбрать последний по времени еще можно (где-то в сети накопал как это сделать). Но вот потом на той машине ну совсем никак не получалось заставить Rar розархивировать этот архив, так как нужно было указать точное имя архива, а оно у меня каждую ночь другое.
Поэтому, после основной архивации, я делаю еще один такой-же архив (но в имени не использую отметку дата-время, просто "base.rar") и копирую его на тот комп.
Потом уже не на сервере, а на той машине запускаю батник:


rem Перетягиваем с сервера архив на диск Д...
rem Y - без вопросов перезаписать, если такой файл уже есть (не удалился вдруг после прошлого востановления)
rem Z - копирование по сети с восстановлением в случае обрыва
xcopy \\Server\Exchange\tnx1c.rar d:\1c_Base\ /z /y

rem Этот блок нашел в сети и чуток под свою задачу настроил
rem Проверяет, если архива в нашей папке нет (не выполнился батник на сервере или из-за чего-то он не скопировался к нам) - СТОП

if not exist d:\1c_Base\tnx1c.rar (
echo Can't copyes any files... Something wrong with network or AppServer!
exit
) ELSE (
echo Archive copied. Executing...
)

rem Если дошли сюда - значит архив скопирован с сервера успешно
rem Без этого блока rar попытается розархивировать несуществующий архив - это не страшно, выдст ошибку и батник перейдет к следующим файлам...
rem Хотя, батник мог-бы просто приостановиться или повиснуть...
rem Хуже то, что дальше запускается восстановление базы. НО ведь каталог базы мы сами перед
rem распаковкой очищаем - результат: 1С запустит конфигуратор и надежно повиснет с ошибкой "Каталог ИБ не обнаружен"
rem В результате - зависший монопольно конфигуратор и пустой каталог с базой

rem Ощищаем папку от прошлодневной базы, распаковываем туда свежую, удаляем архив
rmdir d:\1c_Base\NewConfig\ /s /q
rar x tnx1c.rar
del tnx1c.rar /q

rem Запускаем конфигуратор и восстанавливаем (при архивировании в архив я не включаю файлы CDX)
rem Или хотя бы для того, что-бы утром юзера не прибегали с просьбами зайти в безе монопольно а то их не пускает
"C:\Program Files\1Cv77\BIN\1cv7.exe" CONFIG /M /Dd:\1c_Base\NewConfig\ /NAdmin2 /PAdmin2Pass /@"d:\1c_Base\1c_reindex.param"
Показать


Фалй "1c_reindex.param" указывает какие именно операции по восстановлению делать (это именно те "галочки" в диалоге "Администрирование->Тестирование и исправление ИБ")

[General]
Output="c:\___APPSERVER\packet\1c_reindex.log"
Quit=Y - выйти из конфигуратора по завершению
CheckAndRepair=Y - тестирование и исправление, N - только тестирование
[CheckAndRepair]
Repair=Y - исправление
PhysicalIntegrity=N - проверка физической целостности
Reindex=Y - реиндексация
LogicalIntegrity=N - проверка логической целостности
RecalcSecondaries=N - проверка
RecalcTotals=N - проверка
Pack=N - упаковывать таблицы, сжимать DBF
SkipUnresolved=Y
CreateForUnresolved=N
Reconstruct=N
Показать
8. seakuban 11 17.02.11 11:06 Сейчас в теме
Автор а зачем эти шаманские действия с копированием базы в другой каталог? Задай ключ архиватору чтобы он открывал файлы только на чтение и он сможет архивировать базу "на лету", т.е. даже когда в ней работают пользователи и некоторые файлы открыты на запись.
---
Не знаю есть ли такой ключ в винраре, я его не использую, ибо платный. В 7zip есть
9. mikelangello 9 17.02.11 11:24 Сейчас в теме
10. mikelangello 9 17.02.11 11:33 Сейчас в теме
Зачем копирую в другой каталог? - при копировании сразу отсекаю "лишние" файлы.
Хотя, Вы seakuban правы - можно и не копировать перед архивированием все базу в отдельную папку, а сразу делать архив основной папки.
При создании архива, rar может также архивировать файлы используя список фильтров из масок. Например, архивировать все файлы, кроме cdx. Вначале не знал про эту возможность, поэтому и фильтровал файлы не раром и при копировании.

Привык простоя к rar...
А насчет платности - у меня старенький консольный архиватор ище какого-то там года...

Ага, вот:
RAR 3.50 beta 4   Copyright © 1993-2005 Alexander Roshal   10 May 2005
Shareware version         Type RAR -? for help


Ну, когда задачу поставили - делал на том, что под рукой было :)
А сейчас - работает стабильно, вот я и не лезу менять...

Это ведь только как вариант...
Есть на ИТС какая-то утилитка (когда-то точно была и сам пользовался), которая 1С 7 в zip по расписанию сжимала, и так-же востанавливать могла.. или вручную... в трее висела..
11. pdimas 2 25.01.12 13:19 Сейчас в теме
Спасибо, всё отлично работает
12. mikelangello 9 07.03.12 11:40 Сейчас в теме
А эти батники до сих пор у меня так и работают...
Видимо срабатывает принцип: "чем проще - тем надежнее"
Оставьте свое сообщение