Резервное копирование БД 1С средствами батника и выгрузка файловой базы в dt

13.01.20

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

Резервное копирование БД с помощью батника. Код батника совсем небольшой.

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

Наименование Файл Версия Размер
Выгрузка файловой базы в DT через батник:
.bat 1,33Kb
7
.bat 1,33Kb 7 Скачать
Резервное копирование БД 1С средствами батника:
.bat 0,71Kb
5
.bat 0,71Kb 5 Скачать

Была необходимость сделать резервного копирования БД.

Был выбран самый простой способ - это сжать файл *.1cd средствами батника.

Код батника совсем небольшой

echo off
cls

rem -- Убивам процесс 1С если он такой есть
taskkill /f /im 1cv8c.exe 

rem --путь до архиватора
set path_7z="%programfiles%\7-Zip\7z.exe"

rem -- удаляем файлы больше 14 шт
dir *.7z /a:-D/b/o:-D > del_list_files.txt
for /F "skip=13" %%i in (del_list_files.txt) do (del /Q "%%i")
del del_list_files.txt
rem -----------------------------------------------

rem -- Данные пользователя
set user_1C="ПОЛЬЗОВАТЕЛЬ"
set pswd_1C="ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ"
rem -- Название базы
set name_base=НАЗВАНИЕ_БАЗЫ_БЭКАПА.7z
rem -- путь базы бэкапа
set name_base_backup="ПУТЬ_ЛОКАЛЬНОЙ_БАЗЫ"

setlocal

rem -- выгрузка базы данных
%path_7z% a -t7z -m0=LZMA2:x=9:fb=273:d=96m:mt=2 %name_base% %name_base_backup%

Батник можно подключить через TaskManager, стандартными средствами Windows и настроить расписание его выполнения. У своих клиентов используется везде, плюсом сделано копирование на ftp сервер баз со статическим ip

и отдельно скрипт выгрузки файловой базы в dt (кому чем пользоваться выбирает сам из религиозных побуждений)

echo off
cls

rem -- Убивам процесс 1С если он такой есть
taskkill /f /im 1cv8c.exe 

rem -- удаляем файлы старше 14 шт
dir *.dt /a:-D/b/o:-D > del_list_files.txt
for /F "skip=13" %%i in (del_list_files.txt) do (del /Q "%%i")
del del_list_files.txt
rem -----------------------------------------------

rem -- определяем какая платформа 1С стоит х86 или х64,
rem -- пути у них разные
IF EXIST "%programfiles%\1cv8\common\1cestart.exe" (
set path_1C="%programfiles%\1cv8\common\1cestart.exe"
) ELSE (
set path_1C="%programfiles(x86)%\1cv8\common\1cestart.exe"
)
rem -----------------------------------------------

rem -- Данные пользователя
set user_1C="ПОЛЬЗОВАТЕЛЬ"
set pswd_1C="ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ"
rem -- Название базы
set name_base=НАЗВАНИЕ_БАЗЫ_БЭКАПА.dt
rem -- путь базы бэкапа
set name_base_backup="ПУТЬ_ЛОКАЛЬНОЙ_БАЗЫ"

setlocal

rem -- выгрузка базы данных
%path_1C% CONFIG /F%name_base_backup% /N%user_1C% /P%pswd_1C% /DumpIB %name_base%

добавлено:

копирование файла созданного бакуп-файла

rem -- Путь локальный где лежит созданный бэкап
set path_bac_local="ПУТЬ_ДО_БАКУП_ФАЙЛА"

rem -- Название базы
set name_base=НАЗВАНИЕ_БЭКАПА_КОТОРЫЙ_КОПИРОВАТЬ.(7z/dt)

rem --Директория копирования файла
set copy_dir=ПУТЬ_КУДА_БУДЕМ_КОПИРОВАТЬ

rem Копируем файл 
xcopy %path_bac_local%%name_base% %copy_dir% /C /H /Y /R /I

 

Кому пригодился данный вариант, ставим звёздочку ))

Готовый файл прикреплён

бэкап копирование БД резервное выгрузка DT

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по 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    5870    n_mezentsev    15    

25

Резервное копирование и восстановление 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. zeegin 114 13.01.20 11:26 Сейчас в теме
Нарушение документации по эксплуатации писать как статью-рекомендацию - это очень плохо.

Рекомендации по организации резервного копирования информационной базы
https://its.1c.ru/db/metod8dev#content:2922:hdoc
dron-s; BigB; Reaper_1C; kuzyara; +4 Ответить
2. dron-s 58 13.01.20 11:48 Сейчас в теме
(1)
Нарушение документации по эксплуатации писать как статью-рекомендацию - это очень плохо.

и что там нарушено?
Иногда этот режим используют, также, для создания резервной копии информационной базы, однако такой вариант его использования обладает рядом недостатков. Основным недостатком такого способа создания резервной копии является необходимость использования однопользовательского режима для осуществления этой операции. При большом объеме информационной базы перерыв в работе пользователей может быть достаточно велик, что не всегда приемлемо.

написано что для ЛОКАЛЬНЫХ БАЗ и делается это вне рабочее время, почему и написано что настраивается через TaskManager в нужное время...
а для клиент-серверных вариантов баз конечно лучше использовать средства самого SQL черз этот метод.. хотя есть клиенты у которых база на SQL также выгружается в dt... клиенты при этом не работают в системе, потому что делается вне рабочее время...
а копировать базу весом 3-4 гига в файловой базе, каждый день, сами подумайте какой объём требуется да и времени чтобы стащить с магазина на ftp сервер базу раз в неделю???
9. capitan 2466 13.01.20 18:22 Сейчас в теме
(1) НЕ
Нарушение документации
, а нарушение рекомендации
На самом деле у 1С цель это сокращение нахождения базы в однопользовательском режиме, но есть еще одна цель - иметь рабочую копию, немаловажная.
При архивировании сторонними средствами она не выполняется, если база содержит ошибки, то с ними и сархивируется и возможно к тому моменту когда вы заметите кирдык, архивов живых уже не будет.
А выгрузка при наличии ошибок не произойдет и по вы будете иметь не актуальную но 100% рабочую копию.
Вот и решайте что вам важнее
Поэтому я убираю чей то минус своим плюсом, хотя конечно на плюс не тянет )
3. zeegin 114 13.01.20 11:59 Сейчас в теме
dt нужен для конвертации файловой в клиент-серверную или миграции между субд.
Резервную копию файловой надо делать архивированием 1CD файла и журнала регистрации, например так https://gist.github.com/zeegin/781e69927c214a6703073f99bd5f7265
user620512; +1 Ответить
4. dron-s 58 13.01.20 12:07 Сейчас в теме
(3)
dt нужен для конвертации файловой в клиент-серверную или миграции между субд.

не обязательно
Резервную копию файловой надо делать архивированием 1CD файла и журнала регистрации, например так https://gist.github.com/zeegin/781e69927c214a6703073f99bd5f7265

было до этого вот так
%path_7z% a -t7z -m0=LZMA2:x=9:fb=273:d=96m:mt=2 %name_base% %name_base_backup%

во первых, очень грузит комп, во вторых время на архив занимало до 1,5 часов, в третьих просто не рациональное использование ресурсов компа на котором делается архив
самым основным фактом было чтобы выгружать dt - это время создания и размер выгружаемого dt файла.. на базе 3,7 гига выгрузка в dt занимает 1,5-2 минуты, при этом как архивирование базы *.1cd более часа
5. zeegin 114 13.01.20 12:11 Сейчас в теме
(4) Ну может быть при каком-то частном случае конфигурации сервера это можно достичь)
Главное не говорите об этом на экзамене в 1С - сразу получите неуд и на пересдачу.
Просто уже столько раз написано - не делайте резервные копии выгрузкой dt - они для этого не предназначены. И все равно продолжают делать)
6. dron-s 58 13.01.20 13:10 Сейчас в теме
(5)
переделал под архивирование локальной базы средствами 7z архиватора
p.s. просьба минусы убрать )))
7. SerVer1C 748 13.01.20 13:16 Сейчас в теме
Ждём следующую статью "Восстановление БД 1С из резервной копии средствами батника".
cleaner_it; BigB; dron-s; +3 Ответить
8. dron-s 58 13.01.20 13:27 Сейчас в теме
(7)
Ждём следующую статью "Восстановление БД 1С из резервной копии средствами батника".

смешно ))
10. dron-s 58 13.01.20 18:46 Сейчас в теме
в общем добавил два скрипта:
- первый на выгрузку файловой базы в DT батником
- второй на архивирование локальной базы архиватором 7z также через батник
выбирайте сами что кому нужнее
всё подключается через Task Manager
11. provadyuga 99 14.01.20 07:15 Сейчас в теме
Все просто и по делу. Приятно смотреть. Плюс.
Можно было бы еще добавить рассылку копий созданного архива по разным дискам/папкам, задействовав для этого xcopy.
12. dron-s 58 14.01.20 07:28 Сейчас в теме
(11)
сделал, добавил в описание ))
rem -- Путь локальный где лежит созданный бэкап
set path_bac_local="ПУТЬ_ДО_БАКУП_ФАЙЛА"

rem -- Название базы
set name_base=НАЗВАНИЕ_БЭКАПА_КОТОРЫЙ_КОПИРОВАТЬ.(7z/dt)

rem --Директория копирования файла
set copy_dir=ПУТЬ_КУДА_БУДЕМ_КОПИРОВАТЬ

rem Копируем файл 
xcopy %path_bac_local%%name_base% %copy_dir% /C /H /Y /R /I
Показать
13. v3rter 14.01.20 23:48 Сейчас в теме
Есть другая стратегия - копируем файл 1cd в некоторую временную папку, затем уже в ней жмём архиватором и/или выгружаем в dt.
Глядя на отсутствие кавычек вокруг полных путей к файлам и папкам, задам закономерный вопрос - на папках с пробелам и русскими буквами в именах проверяли?
14. dron-s 58 15.01.20 07:56 Сейчас в теме
(13)
копируем файл 1cd в некоторую временную папку,

для чего это лишнее телодвижение?
(13)
на папках с пробелам и русскими буквами в именах проверяли?

нет, не было такой потребности, но и так понятно для того этого нужно заключить в кавычки
15. KVIKS 396 15.01.20 23:46 Сейчас в теме
(14)
для чего это лишнее телодвижение?

В данном режиме не надо выгонять пользователе из базы, файловая база прекрасно копируется "нагорячую"
16. tsbelaton 02.06.20 13:13 Сейчас в теме
Пара вопросов:
1) зачем при копировании 1cd файла светить в батнике имя и пароль пользователя 1С?
2) судя по содержимому батника в описании уместно указать "разместить файл в каталоге, предназначенном для хранения архивов, он же copy_dir=ПУТЬ_КУДА_БУДЕМ_КОПИРОВАТЬ, запускать оттуда же", иначе выполнение подобного bat файла пох..ит в первом случае архивы в папке запуска - во втором dt файлы.
cleaner_it; +1 Ответить
17. Prolaint 23.05.21 15:02 Сейчас в теме
Я так сделал дамп в другое место. Можно хоть на другой диск, хоть в сетевую папку кидать.

echo выгрузка базы данных
c:
cd C:\1c\dumps\
%path_1C% CONFIG /F%name_base_backup% /N%user_1C% /P%pswd_1C% /DumpIB %name_base%
18. Prolaint 23.05.21 17:21 Сейчас в теме
Так же желательно убивать все процессы 1с:

rem -- Убиваем процесс 1С если он такой есть
taskkill /f /im 1cv8c.exe
taskkill /f /im 1cv8s.exe
taskkill /f /im 1cv8.exe
19. fatman78 17 07.08.21 12:13 Сейчас в теме
Какой taskkill ? не помогающий если пользователи работают с ФБ через appache, пакетные запуски конфигуратора жрущие лицензии, а если есть еще сервер 1С+SQL.
Для работы со всеми видами баз и способов подключений клиентов 1С есть штатная утилита ibcmd, которая не требует выгонять пользователей для создания .dt файла и не расходует лицензии 1С Утилита управления ibcmd

Читайте почаще оф. документацию, чтобы не строить свою работу на старых костылях.

P.S. Имейте в виду, что правильные бэкапы должны делаться средствами SQL
20. ketr 125 26.09.23 09:44 Сейчас в теме
добавил дату в имя файла и копирование в другую директорию:

rem --Копируем файл
ren %path_bac_local%%name_base% %CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%_%name_base%
xcopy %path_bac_local%%CURDATE:~8,2%%CURDATE:~3,2%%CURDATE:~0,2%_%name_base% %copy_dir% /C /H /Y /R /I
Оставьте свое сообщение