Архивирование БД. v7. v8. DBF. SQL

22.12.15

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

Простые примеры архивирования БД. Простой вариант для решения резервного копирования DBF и SQL баз данных. Для автоматического резервного копирования достаточно добавить задание «планировщик заданий», которое будет выполняться раз в сутки, и установить WinRar.

Решение дает возможность создавать резервные копии «на лету» без выхода пользователей из БД. В выбранном каталоге создается семь копий рекурсивно, одна копия за каждый день недели. Также при наличии большого количества каталогов с БД, чтобы не писать для каждого пути свою команду, достаточно указать имя выше уровнем каталога.

Для SQl версии так же в выбранном каталоге создается семь копий рекурсивно, одна копия за каждый день недели, как самой БД, так и журнала транзакции, а после сжимается БД и журнал транзакции, что решает проблему растущего журнала транзакции для 8-ых версий.

Предварительно надо создать структуру каталогов для хранения архивов и логов на примере:

"E:\Backup\" - корневой каталог архива

"E:\Backup\log\" - каталог для логов

"E:\Backup\Sklad\" -  каталог для файлов *.rar архивов

"E:\Backup\Dump\" - каталог SQL архива

"E:\Backup\BUH\"   - каталог для файлов *.rar архивов из примера для нескольких подкаталогов

 

Пояснения по командной строке WinRAR:

u                             - Обновить файлы в архиве

-m5                       - Установить метод сжатия

-r                            - Обрабатывать вложенные папки

-ed                        - Не добавлять пустые папки 

-dh                        - Открывать совместно используемые файлы

-y                           - Подразумевать ответ "Да" на все запросы

-ibck                      - Запустить WinRAR как фоновый процесс в системном лотке

-as                         - Синхронизировать содержимое архива

-ep2                      - Сохранять полные пути файлов

-agA                      - Добавить к имени архива текущую дату и время (А  - день недели)                           

-inul                      - Не выводить сообщения об ошибках

-ilogE:\Backup\log\error.log      - Записывать протокол ошибок в файл  

E:\Backup\Sklad\db_.rar             - создать файл архива

-x*\Log\*                                          - Не обрабатывать указанный файл

D:\1C_DB\DB\*.*                           - путь к каталогу источнику

 


Первый пример. Создание rar архивов для каталог БД 1С DBF. Хранится 7 последних архивов.


::BackupDBF.bat
@ECHO OFF
cd E:\Backup\
ECHO Begin Backup: %DATE% %TIME% > E:\Backup\log\db.log
:: создание rar архива для каталога D:\1C_DB\DB\
"E:\BackUp\WinRAR\WINRAR.EXE" u -m5 -r -ed -dh -y -ibck -as -ep2 -agA -inul -ilogE:\Backup\log\error.log E:\Backup\Sklad\db_.rar -x*\Log\* D:\1C_DB\DB\*.*
ECHO End Backup: %DATE% %TIME% >> E:\Backup\log\db.log
ECHO. >> E:\Backup\log\DB.log

:: обход подкаталогов "DB_1 DB_2 DB_3 DB_4 DB_5" в каталоге "D:\1C_DB\" и создание rar архива для каждого найденого подкаталога в "DB_1 DB_2 DB_3 DB_4 DB_5"

ECHO Begin BackupBUH: %DATE% %TIME% >> E:\Backup\log\db.log
for %%n in (DB_1 DB_2 DB_3 DB_4 DB_5) do (
For /F "delims=" %%A In ('Dir "D:\1C_DB\%%n" /AD /B') Do ( 
"E:\BackUp\WinRAR\WINRAR.EXE" u -m5 -r -ed -dh -y -ibck -as -ep2 -agA -inul -ilogE:\Backup\log\error.log E:\Backup\Buh\%%n_%%A_.rar -x*\Log\* D:\1C_DB\%%n\%%A\*.*
))
ECHO End BackupBUH: %DATE% %TIME% >> E:\Backup\log\db.log

Второй пример. Создание архивов для БД 1С SQL и сжатие. Хранится 7 последних архивов.


::BackupSQL.bat
@ECHO OFF
cd E:\Backup\
ECHO Begin Backup: %DATE% %TIME% > E:\Backup\log\db.log
:: создание архива для БД 1C SQL. Хранится 7 последних архивов.
set /a y=%date:~6,4%
set /a m=1%date:~3,2%-100
set /a d=1%date:~0,2%-100
set /a i=(%y%-1901)*365 + (%y%-1901)/4 + %d% + (!(%y% %% 4))*(!((%m%-3)^&16))
set /a i=(%i%+(%m%-1)*30+2*(!((%m%-7)^&16))-1+((65611044^>^>(2*%m%))^&3))%%7+1
for %%n in (DB_1 DB_2 DB_3 DB_4 DB_5) do (
OSQL -Usa2 -Psqlsaktm -n -Q "BACKUP DATABASE [%%n] TO DISK = N'E:\Backup\Dump\%i%_%%n.dat_bak' WITH FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10" -o E:\Backup\log\dumps_%i%_%%n.log
OSQL -Usa2 -Psqlsaktm -n -Q "BACKUP LOG [%%n] TO DISK = N'E:\Backup\Dump\%i%_%%n.log_bak' WITH FORMAT, INIT, NAME = N'%%n-Журнал транзакций Резервное копирование', SKIP, NOREWIND, NOUNLOAD, STATS = 10" -o E:\Backup\log\log_%i%_%%n.log
OSQL -Usa2 -Psqlsaktm -n -Q "DBCC SHRINKDATABASE(N'%%n', 10 )" -o E:\Backup\log\shrinkd_%i%_%%n.log
OSQL -Usa2 -Psqlsaktm -n -Q "DBCC SHRINKFILE (N'%%n_log' , 0, TRUNCATEONLY)" E:\Backup\log\shrinkt_%i%_%%n.log
)
ECHO End Backup: %DATE% %TIME% >> E:\Backup\log\db.log

Архивирование БД. v7. v8. DBF. SQL. Архивирование базы данных. Резервное копирование.Резервное копирование базы данных.

См. также

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

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

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

21600 руб.

15.05.2017    42637    10    24    

38

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

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

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

1200 руб.

03.09.2014    14830    15    6    

18

Автоматическое резервное копирование любой клиент-серверной базы 1С в формате DT с удалением сеансов, архивацией, изменением расширения (8.3.14+, расширение)

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

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

6000 руб.

06.11.2012    70223    622    44    

80

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

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

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

04.12.2023    6254    n_mezentsev    15    

26

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

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

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

07.10.2022    20498    sapervodichka    36    

143

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

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

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

1 стартмани

25.08.2022    4808    2    Gnom-Gluck    6    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AlexeyPapanov 459 22.12.15 12:00 Сейчас в теме
я в батниках не силен, объясните.
для теста переписал батник, чтобы папка "D:\1C_DB\" архивировалась в "D:\1C_backup\".
после запуска бат-файл создает архив с именем "db_2.rar" в папке "D:\1C_backup\".
и еще создается файл D:\1C_backup\log\error2.log размером как и сам созданный архив.
для чего он нужен? ведь это получается копия архива. мы же его и так получили...
как можно в имя создаваемого архива добавить дату и время создания?

вот мой файлик:
cd d:\1C_backup\
ECHO Begin Backup: %DATE% %TIME% > D:\1C_backup\log\db.log
"D:\1C_backup\WinRAR\WINRAR.EXE" u -m5 -r -ed -dh -y -ibck -as -ep2 -agA -inul -ilogD:\1C_backup\log\error.log D:\1C_backup\db_.rar -x*\Log\* D:\1C_DB\*.*
ECHO End Backup: %DATE% %TIME% >> D:\1C_backup\log\db.log
ECHO. >> D:\1C_backup\log\DB.log
+
2. LavinVladik 214 22.12.15 13:42 Сейчас в теме
(1) El_Loco,

D:\1C_backup\log\error2.log - в этот файл должны ошибки сваливаться если таковы будут при архивирование.
возможно нет каталога D:\1C_backup\log\
"db_2.rar" - здесь "2" означает вторник


Ключ -AG[формат] — добавить к имени архива текущие дату и время


--------------------------------------------------------------------------------


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

По умолчанию принимается формат "YYYYMMDDHHMMSS", но его можно переопределить с помощью параметра формат этого ключа. Допускается использовать следующие символы:


Y
Год
M
Месяц
MMM
Месяц в виде строки (Jan, Feb и т.д.)
W
Номер недели (неделя начинается с понедельника)
A
День недели (1 - понедельник, 7 - воскресенье)
D
Порядковый день месяца
E
Порядковый номер дня в году
H
Часы
M
Минуты (обрабатывается как минуты, если стоит после часов)
S
Секунды
N
Номер архива (WinRAR ищет уже существующий архив со сгенерированным именем, и если таковой обнаруживается, то увеличивает номер архива, чтобы сгенерировать уникальное имя)


Каждый из указанных выше символов форматирующих строк соответствует только одному символу, добавляемому к имени архива. Например, для двухсимвольного номера недели используйте WW, а для обозначения года из четырёх цифр — YYYY.

Если строка формата начинается с символа '+', то положения строки даты и базового имени архива меняются местами, т.е. дата будет предшествовать имени архива.

Строка формата может содержать необязательный текст, заключённый в фигурные скобки '{' и '}'. Этот текст будет вставлен в имя архива.

Будьте осторожны с ключом -ag при обновлении уже существующих архивов. В зависимости от строки формата и времени, прошедшего с момента предыдущего использования ключа -ag, имена сгенерированного и имеющегося архивов могут оказаться разными. В этом случае WinRAR вместо обновления уже существующего архива создаст новый.

Все остальные символы добавляются к имени архива без изменений.


Примеры:

а) Использовать формат по умолчанию YYYYMMDDHHMMSS:

WinRAR a -ag backup

б) Использовать формат DD-MMM-YY:

WinRAR a -agDD-MMM-YY backup

в) Использовать формат YYYYMMDDHHMM, поместив дату до 'backup':

WinRAR a -ag+YYYYMMDDHHMM backup

г) Использовать формат YYYY-WW-A с полями описания:

WinRAR a -agYYYY{год}-WW{неделя}-A{день_недели} backup

д) Использовать формат YYYYMMDD и нумерацию архива. Это позволяет генерировать уникальные имена даже в том случае, если маска формата YYYYMMDD используется несколько раз в один и тот же день:

WinRAR a -agYYYYMMDD-NN backup


NSHMU6; AlexeyPapanov; +2
3. AlexeyPapanov 459 22.12.15 15:56 Сейчас в теме
спасибо вам за простой и понятный пример!
а вы написали, что хранится последние 7 копий.
а в коде я не нашел соответствующего параметра.
как дописать еще удаление старых копий?
+
4. LavinVladik 214 22.12.15 16:29 Сейчас в теме
(3) El_Loco,

вот ключ отвечает за номер копии -agA, то есть от 1 до 7
если архив уже существует то он его обновляет, то есть архивирует только те файлы которые изменились.
+
5. PVG_73 17 23.12.15 16:53 Сейчас в теме
Чтобы решить "решает проблему растущего журнала транзакции для 8-ых версий" - нужно у БД SQL поставить модель восстановления Simple(Простая) в случае, если не используется дифференциальный бакап....
А вообще для MS SQL удобно использовать планы обслуживания. Вот только хранение последних 7 архивов что-то не смог настроить через план - пришлось админу копирование отдельно настроить...
+
6. gunner_Hans 07.01.17 02:03 Сейчас в теме
Оставьте свое сообщение