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

13.01.20

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Выгрузка файловой базы в DT через батник:
.bat 1,33Kb
7
7 Скачать (1 SM) Купить за 1 850 руб.
Резервное копирование БД 1С средствами батника:
.bat 0,71Kb
5
5 Скачать (1 SM) Купить за 1 850 руб.

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

Был выбран самый простой способ - это сжать файл *.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

См. также

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72787    625    45    

84

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

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

1200 руб.

03.09.2014    15705    21    6    

27

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

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

04.12.2023    9426    n_mezentsev    15    

27

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

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

07.10.2022    28597    sapervodichka    37    

147

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

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

1 стартмани

25.08.2022    5732    3    Gnom-Gluck    6    

7

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

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

1 стартмани

02.06.2022    4689    3    Giblarium    12    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. zeegin 117 13.01.20 11:26 Сейчас в теме
Нарушение документации по эксплуатации писать как статью-рекомендацию - это очень плохо.

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

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

написано что для ЛОКАЛЬНЫХ БАЗ и делается это вне рабочее время, почему и написано что настраивается через TaskManager в нужное время...
а для клиент-серверных вариантов баз конечно лучше использовать средства самого SQL черз этот метод.. хотя есть клиенты у которых база на SQL также выгружается в dt... клиенты при этом не работают в системе, потому что делается вне рабочее время...
а копировать базу весом 3-4 гига в файловой базе, каждый день, сами подумайте какой объём требуется да и времени чтобы стащить с магазина на ftp сервер базу раз в неделю???
9. capitan 2507 13.01.20 18:22 Сейчас в теме
(1) НЕ
Нарушение документации
, а нарушение рекомендации
На самом деле у 1С цель это сокращение нахождения базы в однопользовательском режиме, но есть еще одна цель - иметь рабочую копию, немаловажная.
При архивировании сторонними средствами она не выполняется, если база содержит ошибки, то с ними и сархивируется и возможно к тому моменту когда вы заметите кирдык, архивов живых уже не будет.
А выгрузка при наличии ошибок не произойдет и по вы будете иметь не актуальную но 100% рабочую копию.
Вот и решайте что вам важнее
Поэтому я убираю чей то минус своим плюсом, хотя конечно на плюс не тянет )
3. zeegin 117 13.01.20 11:59 Сейчас в теме
dt нужен для конвертации файловой в клиент-серверную или миграции между субд.
Резервную копию файловой надо делать архивированием 1CD файла и журнала регистрации, например так https://gist.github.com/zeegin/781e69927c214a6703073f99bd5f7265
user620512; +1 Ответить
4. dron-s 59 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 117 13.01.20 12:11 Сейчас в теме
(4) Ну может быть при каком-то частном случае конфигурации сервера это можно достичь)
Главное не говорите об этом на экзамене в 1С - сразу получите неуд и на пересдачу.
Просто уже столько раз написано - не делайте резервные копии выгрузкой dt - они для этого не предназначены. И все равно продолжают делать)
6. dron-s 59 13.01.20 13:10 Сейчас в теме
(5)
переделал под архивирование локальной базы средствами 7z архиватора
p.s. просьба минусы убрать )))
7. SerVer1C 815 13.01.20 13:16 Сейчас в теме
Ждём следующую статью "Восстановление БД 1С из резервной копии средствами батника".
cleaner_it; BigB; dron-s; +3 Ответить
8. dron-s 59 13.01.20 13:27 Сейчас в теме
(7)
Ждём следующую статью "Восстановление БД 1С из резервной копии средствами батника".

смешно ))
10. dron-s 59 13.01.20 18:46 Сейчас в теме
в общем добавил два скрипта:
- первый на выгрузку файловой базы в DT батником
- второй на архивирование локальной базы архиватором 7z также через батник
выбирайте сами что кому нужнее
всё подключается через Task Manager
11. provadyuga 99 14.01.20 07:15 Сейчас в теме
Все просто и по делу. Приятно смотреть. Плюс.
Можно было бы еще добавить рассылку копий созданного архива по разным дискам/папкам, задействовав для этого xcopy.
12. dron-s 59 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 59 15.01.20 07:56 Сейчас в теме
(13)
копируем файл 1cd в некоторую временную папку,

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

нет, не было такой потребности, но и так понятно для того этого нужно заключить в кавычки
15. KVIKS 425 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 20 07.08.21 12:13 Сейчас в теме
Какой taskkill ? не помогающий если пользователи работают с ФБ через appache, пакетные запуски конфигуратора жрущие лицензии, а если есть еще сервер 1С+SQL.
Для работы со всеми видами баз и способов подключений клиентов 1С есть штатная утилита ibcmd, которая не требует выгонять пользователей для создания .dt файла и не расходует лицензии 1С Утилита управления ibcmd

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

P.S. Имейте в виду, что правильные бэкапы должны делаться средствами SQL
20. ketr 128 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
Оставьте свое сообщение