Просто и сердито. Архивирование (backup) типовых конфигураций 1С 8.2, 8.3

18.06.15

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

После эксплуатации различных "бесплатных" обработок и скриптов решил написать свой cmd-файл для ежедневного архивирования баз 1С.
Работает на конфигурациях, где есть процедуры "ЗавершитьРаботуПользователей" и "РазрешитьРаботуПользователей" (т.е. во всех типовых, в нетиповые данные модули можно скопировать из типовых).
Сохраняет файлы как локально так и на удаленном файловом сервере. Автоматически удаляет старые архивы и копирует на удалённый сервер отсутствующие.
Расписание задается установкой соответствующего задания (запуска cmd-файла по времени) в планировщике задач Windows.
Для борьбы с зависшими сеансами, рекомендуется настроить в режиме конфигуратора параметры информационной базы: "Время засыпания пассивного сеанса" и "Время завершения спящего сеанса".

 

Тескт CMD-файла в кодировке WIN:

@echo off
SET SRV=localhost
SET BASE=UT82
SET User1C=Automat
SET PWDUser1C=Automat
SET BackUpPath=F:\BackUpDataBase\“’_10.3
SET BackUpPath2=\\SRV_BackUp\Backup_1C\“’_10.3
SET Days_Archive=365
SET Days_Archive2=30
SET DriveNet=U:
SET UserNet=Domen\User_SRV_BackUp
SET PWDUserNet=PWD_User_SRV_BackUp

SET FileTime=%TIME:~0,-3%
SET FileTime=%FileTime::=%
SET FileTime=%FileTime: =0%
SET BackUpFileName=%BASE%-%date:~-4%%date:~3,2%%date:~0,2%-%FileTime%.dt
SET BackUpPathString=%BackUpPath%\%BackUpFileName%

call "%odinCdir%\1cv8.exe" ENTERPRISE  /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©" /UC"Љ®¤ђ §аҐиҐ­Ёп"
call "%odinCdir%\1cv8.exe" DESIGNER /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /UC"Љ®¤ђ §аҐиҐ­Ёп" /DumpIB "%BackUpPathString%"
call "%odinCdir%\1cv8.exe" ENTERPRISE  /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"ђ §аҐиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©" /UC"Љ®¤ђ §аҐиҐ­Ёп"
forfiles /P "%BackUpPath%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive%
NET USE %DriveNet% %BackUpPath2% /USER:%UserNet% %PWDUserNet%
robocopy "%BackUpPath%" "%DriveNet%" "*.dt" /MAXAGE:%Days_Archive2% /Z /R:5
ping -5 127.0.0.1
forfiles /P "%DriveNet%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive2%
ping -5 127.0.0.1
NET USE %DriveNet% /DEL /Y

Описание строк файла:

SET SRV=localhost - путь к серверу 1С
SET BASE=UT82 - имя базы на сервере 1С
SET User1C=Automat - имя пользователя с правами администратора
SET PWDUser1C=Automat - пароль пользователя с правами администратора
SET BackUpPath=F:\BackUpDataBase\“’_10.3 - путь к папке для архивирования на локальном компьютере
SET BackUpPath2=\\SRV_BackUp\Backup_1C\“’_10.3 - путь к папке для архивирования на удаленном компьютере
SET Days_Archive=365 - число дней хранения архивов на локальном компьютере
SET Days_Archive2=30 - число дней хранения архивов на удаленном компьютере
SET DriveNet=U: - имя подключаемого диска для пути BackUpPath2
SET UserNet=Domen\User_SRV_BackUp - пользователь для доступа к удаленному серверу архивирования
SET PWDUserNet=PWD_User_SRV_BackUp - пароль пользователя для доступа к удаленному серверу архивирования
Блок получения пути и имени файла архива по имени базы 1С, даты и времени архивирования:

SET FileTime=%TIME:~0,-3%

SET FileTime=%FileTime::=%
SET FileTime=%FileTime: =0%
SET BackUpFileName=%BASE%-%date:~-4%%date:~3,2%%date:~0,2%-%FileTime%.dt
SET BackUpPathString=%BackUpPath%\%BackUpFileName%
Вызов 1С для завершения работы пользователей (odinCdir - глобальная переменная - путь к папке 1С\bin):
call "%odinCdir%\1cv8.exe" ENTERPRISE  /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©" /UC"Љ®¤ђ §аҐиҐ­Ёп"
Вызов 1С для архивирования:
call "%odinCdir%\1cv8.exe" DESIGNER /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /UC"Љ®¤ђ §аҐиҐ­Ёп" /DumpIB "%BackUpPathString%"
Вызов 1С для разрешения работы пользователей:
call "%odinCdir%\1cv8.exe" ENTERPRISE  /S"%SRV%\%BASE%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"ђ §аҐиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©" /UC"Љ®¤ђ §аҐиҐ­Ёп"
Удаление файлов из папки "BackUpPath" с датой больше "Days_Archive" дней:
forfiles /P "%BackUpPath%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive%
Подключение сетевого диска (необходимо т.к. forfiles - не работает с UNC-путями):
NET USE %DriveNet% %BackUpPath2% /USER:%UserNet% %PWDUserNet%
Копирование *.dt-файлов на удаленный сервер из локального каталога архивирования с датой не старше дней "Days_Archive2" (вдруг их там кто-то случайно подтёр :) ):
robocopy "%BackUpPath%" "%DriveNet%" "*.dt" /MAXAGE:%Days_Archive2% /Z /R:5
ping -5 127.0.0.1 - пауза
Удаление файлов из папки "BackUpPath2" с датой больше "Days_Archive2" дней:
forfiles /P "%DriveNet%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive2%
ping -5 127.0.0.1 -пауза
NET USE %DriveNet% /DEL /Y - отключение сетевого диска

______________________________________________________________________________

Пример архивирования для файловой базы 1С:

SET BASE_PATH=F:\BASE82\BP82_Extern
SET BASE=BUH_Extern
SET User1C=Automat
SET PWDUser1C=Automat
SET BackUpPath=F:\BackUpDataBase\ЃгеЈ «вҐаЁп_2.0_(ў­Ґи­ЁҐ)
SET BackUpPath2=\\SRV_BackUp\Backup_1C\ЃгеЈ «вҐаЁп_2.0_(ў­Ґи­ЁҐ)
SET Days_Archive=365
SET Days_Archive2=30
SET DriveNet=U:
SET UserNet=Domen\User_SRV_BackUp
SET PWDUserNet=PWD_User_SRV_BackUp

SET FileTime=%TIME:~0,-3%
SET FileTime=%FileTime::=%
SET FileTime=%FileTime: =0%
SET BackUpFileName=%BASE%-%date:~-4%%date:~3,2%%date:~0,2%-%FileTime%.dt
SET BackUpPathString=%BackUpPath%\%BackUpFileName%

call "%odinCdir%\1cv8.exe" ENTERPRISE  /F"%BASE_PATH%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"‡ ўҐаиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©" /UC"Љ®¤ђ §аҐиҐ­Ёп"
call "%odinCdir%\1cv8.exe" DESIGNER /F"%BASE_PATH%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /UC"Љ®¤ђ §аҐиҐ­Ёп" /DumpIB "%BackUpPathString%"
call "%odinCdir%\1cv8.exe" ENTERPRISE  /F"%BASE_PATH%" /WA- /N"%User1C%" /P"%PWDUser1C%" /DisableStartupMessages /C"ђ §аҐиЁвмђ Ў®вгЏ®«м§®ў вҐ«Ґ©" /UC"Љ®¤ђ §аҐиҐ­Ёп"
forfiles /P "%BackUpPath%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive%
NET USE %DriveNet% %BackUpPath2% /USER:%UserNet% %PWDUserNet%
robocopy "%BackUpPath%" "%DriveNet%" "*.dt" /MAXAGE:%Days_Archive2% /Z /R:5
ping -5 127.0.0.1
forfiles /P "%DriveNet%" /M *.dt /c "cmd /c del @path /F /Q" /D -%Days_Archive2%
ping -5 127.0.0.1
NET USE %DriveNet% /DEL /Y

* - Вопросы с кодировкой (русскими именами папок) решаются с помощью Far (клавиша F8 - смена кодировки) или Word (файл открывается с кодировкой MS-DOS)

backup архивирование циклическое архивирование архивирование по расписанию

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42521    10    24    

38

BackUPv8 - система резервного копирования баз 1С

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

Автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    14732    13    6    

18

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5868    n_mezentsev    15    

24

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    19820    sapervodichka    36    

142

Архивирование базы в dt и дамп postgres

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

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4716    2    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4236    3    Giblarium    12    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Cujoko 5 19.06.15 15:41 Сейчас в теме
Это получается, нужно изгонять пользователей из базы, а также база выгружается в dt. Ладно, пусть dt, но разве удобно каждый раз выгонять людей?
3. Prelude 29 19.06.15 22:28 Сейчас в теме
(1) Cujoko,
1. Чем Вам не нравится dt?
2. А у Вас типовые конфигурации выгружаются механизмами 1С, когда там находятся пользователи?
6. dj_serega 390 21.06.15 19:58 Сейчас в теме
(3)
1. Чем Вам не нравится dt?

Тем что это не архив базы. А копия, которая может не развернуться.
Я использую данную процедуру выгрузки и настроил на сервере 1С (перезапуск сервисов каждые 2 часа). Платформа 8.3.5.1570. После этого проблем с зависшими сеансами не возникает.

А сколько максимум пользователей активных?
Может лучше настроить параметры "спящих" сеансов?
7. Prelude 29 22.06.15 08:20 Сейчас в теме
(6) dj_serega,
1. Чем архив отличается от копии в вашем понимании? Чем стандартный механизм разработчика хуже всяких поделок? Если Вы совсем обезопаситься хотите, то архивируйте средствами SQL-баз.
Я за 6 лет эксплуатации 1С 8.х ни разу не столкнулся, чтобы dt-файл не загрузился.
2. В рабочее время от 20-40 человек.
А смысл настраивать спящие сеансы? Их в принципе надо убирать, на мой взгляд.

P.S. Коллеги, я Вас не призываю пользоваться тем, что я написал. И не сказал, что мой механизм лучший. Я показал, как бэкап базы делается механизмами Windows, и при необходимости (стандартными механизмами 1С, которым обучают на начальных курсах), восстанавливается пользователями, при этом без покупки и скачивания поделок.
8. dj_serega 390 22.06.15 12:19 Сейчас в теме
(7)
1. Чем архив отличается от копии в вашем понимании? Чем стандартный механизм разработчика хуже всяких поделок? Если Вы совсем обезопаситься хотите, то архивируйте средствами SQL-баз.
Я за 6 лет эксплуатации 1С 8.х ни разу не столкнулся, чтобы dt-файл не загрузился.

У меня было такое. А было еще и такое что в бд ошибка, выгрузили загрузили - нет ошибки. Было что выгрузили как архив, БД "слетела", загрузили и еще больше ошибок.
Вот ссылка по рекомендациям 1С.
Итого:
1. Если файловая тогда нужно копировать файл бд и паковать архиватором.
2. Если клиент-серверная тогда средствами SQL.
2. В рабочее время от 20-40 человек.
А смысл настраивать спящие сеансы? Их в принципе надо убирать, на мой взгляд.

У нас были проблемы со "спящими" но настроив их параметры проблемы не было. Получается они "тушаться" средствами 1С (без перезагрузки серверов и агентов)
P.S. Коллеги, я Вас не призываю пользоваться тем, что я написал. И не сказал, что мой механизм лучший.

Я не против. Механизм хороший. Спасибо за идею и публикацию :) Но, имхо, лучше доработать под рекомендации 1С ;)
9. Prelude 29 22.06.15 14:12 Сейчас в теме
(8) dj_serega,
По Вашей ссылке: "..., однако такой вариант его использования обладает рядом недостатков. Основным недостатком такого способа создания резервной копии является необходимость использования однопользовательского режима для осуществления этой операции. При большом объеме информационной базы перерыв в работе пользователей может быть достаточно велик, что не всегда приемлемо."
У меня ночью в базе никого нет.
Про SQL я Вам тоже самое говорил.
12. dj_serega 390 23.06.15 12:08 Сейчас в теме
(9)
Основным недостатком

Основным да. А второстепенными это и крах БД и невосстановимые ошибки. Вроде на мисте обсуждалось когда-то. Там и ссылки видел.
13. Prelude 29 23.06.15 15:17 Сейчас в теме
(12) dj_serega,
Ежедневный бэкап средствами SQL и dt, плюс хранение на разных серверах, подобную паранойю должен сводить на нет.
PS: "Это к контрадмиралу, он Атлантиду видел." (ДМБ)
10. Prelude 29 22.06.15 15:56 Сейчас в теме
(8) dj_serega,
У нас были проблемы со "спящими" но настроив их параметры проблемы не было. Получается они "тушаться" средствами 1С (без перезагрузки серверов и агентов)

Подскажите где Вы их настраивали?
11. Prelude 29 23.06.15 10:08 Сейчас в теме
(10)
dj_serega,
У нас были проблемы со "спящими" но настроив их параметры проблемы не было. Получается они "тушаться" средствами 1С (без перезагрузки серверов и агентов)

Подскажите где Вы их настраивали?

Все нашел, в Конфигураторе в "Параметрах информационной базы". Я их пару лет назад выставил :)
2. Anchoret 60 19.06.15 15:58 Сейчас в теме
Думаю, что в большинстве случаев по ночам никто не работает, выполняется по расписанию, так что и выгонять некого.
4. alyaev.a.v 20.06.15 23:11 Сейчас в теме
Как обстоят дела с невыгоняемыми пользователями,которых нет в активных но висят в консоли кластера,висящие фоновые?
5. Prelude 29 21.06.15 13:09 Сейчас в теме
(4) alyaev.a.v,
Я использую данную процедуру выгрузки и настроил на сервере 1С (перезапуск сервисов каждые 2 часа). Платформа 8.3.5.1570. После этого проблем с зависшими сеансами не возникает.

P.S. Мотивом к написанию этого cmd-файла и были проблемы с зависшими сеансами.
Кстати, попробуйте, когда в базе висят зависшие сеансы, вручную сделать бэкап (через Конфигуратор), после выгрузки сеансы зависшие исчезнут.
Оставьте свое сообщение