Бэкап для бд 1с

1. kramcd 22.08.12 20:45 Сейчас в теме
Здравствуйте.
Нужно организовать еженедельное создание бэкапов. Вариантов вижу 2, первый - написать батник, копирующий или еще лучше архивирующий бд на внешний жд и добавить его в планировщик заданий, второй - использовать стороннюю программу.
Минус первого варианта в том что, если кто-то из пользователей забыл закрыть 1с, то бд не скопируется полностью, т.к будет занята другим процессом.
Кто какие программы используется, посоветуйте ?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. DeeM 22.08.12 21:59 Сейчас в теме
(1) kramcd,

Программа Effector Saver 3 осуществляет резервное копирование баз данных 1С:Предприятия, Microsoft SQL, PostgreSQL и других файлов. Архиватор баз 1С:Предприятия 7.7/8.x выполняет свою работу по расписанию и при необходимости может корректно завершить работу пользователей. Effector saver 3 тестирует и исправляет базы, делает любые команды и скрипты.
stepan_shock; 6a3ujI; +2 Ответить
4. DeeM 22.08.12 22:01 Сейчас в теме
(3) DeeM,

Основные характеристики:
Удобный и понятный интерфейс программы.
Встроенный планировщик для выполнения заданий.
Выбор настроек из перечня баз 1С:Предприятия 7.7/8.х.
Возможность настроить для 8.2 автоматический выбор последнего установленного релиза 1С: Предприятия
Ведение журнала о работе поставленных задач, автоматическое удаление устаревших записей в нем.
Отправка по электронной почте пользователю сводных отчетов о том, как выполняются задачи. Возможен ручной запуск, а также остановка пользователем выполнения той или иной задачи.
5. DeeM 22.08.12 22:01 Сейчас в теме
(4) DeeM,

Автоматическое резервное копирование:
Архивов открытых файлов, которые доступны для чтения.
1С:Предприятия 7.7/8.х. при помощи штатных средств программы 1С:Предприятие.
1С:Предприятия 7.7/8.х. посредством метода архивирования баз данных PostgreSQL серверов и Microsoft SQL.
1С:Предприятия 7.7/8.х. посредством создания архивов файлов.
Баз данных PostgreSQL серверов, Microsoft SQL и других произвольных файлов.
6. DeeM 22.08.12 22:02 Сейчас в теме
(5) DeeM,

Другие возможности:
Резервное копирование баз 1С на FTP сервер в автоматическом режиме.
Копирование архивов в автоматическом режиме в дополнительные каталоги.
Возможность автоматического запуска программы как сервиса NT или в качестве приложения.
Удаление устаревших файлов архивов.
Возможность поддержки формата Zip64 для файлов, объем которых больше 4 Gb.
7. DeeM 22.08.12 22:03 Сейчас в теме
(6) DeeM,

Коммерческая версия программы Effector Saver 3:
Отключение пользователей в принудительном порядке перед тем, как включается архивирование.
Поддержка стойкого шифрования (AES) метода компрессии ZIP.
Запуск операций, которые выполняют обмен конфигураций 1С:Предприятия 8.х, и других произвольных процедур.
Возможность создания копий баз данных Microsoft SQL «лог транзакций» и «частично».
Выполнение команд системы, как перед началом выполнения задачи, так и после завершения.
Повтор выполнения задач на протяжении дня.
8. DeeM 22.08.12 22:04 Сейчас в теме
(7) DeeM,

Больше информации тут.
17. baldyman 29.08.12 06:14 Сейчас в теме
Под Win2008 использую скрипт на vbs, который запускается по шедулеру в нужное время (ночью) и льёт базу в архив (7z).
В случае неудачной попытки - шлёт письмо на почту.

P.S. В скрипте есть возможность удаления старых бэкапов. "Старость" бэкапов задается в скрипте, как и пути что архивировать и куда.


'Установка переменных
WhatToBackup = "D:\1CBases\Buhgalters_new\*"
BackupPath = "E:\BackUp\" ' символ "\" в конце обязателен.
ArchiveName = "1c_buh" ' наименование итогового файла с архивом
ArchiveParams = "-ssw -r -x!*.cdx -x!*.exe -x!*.zip -mx1" ' параметры для архиватора. Исключения, уровень сжатия и прочее
Threshold = 20 ' кол-во дней, после которых бэкапы будут удаляться.
mailGroup = "Ex.List.BackUpNotification" ' группа в AD, членам которой будут отсылаться сообщения этого скрипта.

'Создание необходимых объектов
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
Set ObjMessage = CreateObject("CDO.Message")
Set WshNetwork = CreateObject("WScript.Network")

' This section provides the configuration information for the remote SMTP server.
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "ваш почтовый сервер"
objMessage.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
objMessage.BodyPart.Charset = "windows-1251"

MonthArray = Array("January","February","March","April","May","June","July","August","September","October","November","December")
mailToString = ""
objMessage.Subject = "Backup Script Error"
objMessage.From = "Адрес@от_кого.отправлять"

' Пошла работа скрипта
sProgramFiles = WshShell.ExpandEnvironmentStrings("%programfiles%")

If FSO.FileExists (sProgramFiles & "\7-zip\7z.exe") = false then
	Call getMailAddresses(mailGroup)
	objMessage.To = mailToString
	objMessage.TextBody = "На сервере " & WshNetwork.ComputerName & _
	" не найден архиватор 7-Zip. Запуск бэкапа не возможен."
	objMessage.Configuration.Fields.Update
	objMessage.Send
	Wscript.Quit
End If
If FSO.FolderExists (backupPath) = false Then
	Call getMailAddresses(mailGroup)
	objMessage.To = mailToString
	objMessage.TextBody = "В скрипте для бэкапа " & Wscript.ScriptFullName & " на сервере " & _
	WshNetwork.ComputerName & " целевой путь указан не верно. Он не существует."
	objMessage.Configuration.Fields.Update
	objMessage.Send
	Wscript.Quit
End If
CurrentYear = Cint(Year(Date))
CurrentMonth = Cint(Month(Date))
CurrentDay = Cint(Day(Date))

Call IsYearFolderExists(CurrentYear) ' проверка на существование папки с годом.
Call IsMonthFolderExists(CurrentMonth) ' проверка на существование папки с месяцем
Call IsDayFolderExists(CurrentDay) ' проверка на существование папки с днем месяца

ResultFolder = Cstr(BackupPath & CurrentYear & "\" & MonthArray(CurrentMonth - 1) & "\" & CurrentDay & "\")
retCode = WshShell.Run ("""" & sProgramFiles & "\7-Zip\7z.exe" & """" & " a " & """" & ResultFolder & _
ArchiveName & """" & " " & ArchiveParams & " " & """" & WhatToBackup & """", 1, 1)

If retCode = "0" Then
	'backup was successful
	Call RemoveOldBackups(BackupPath) ' удаление старых бэкапов.	
Else
	Call getMailAddresses(mailGroup)
	objMessage.To = mailToString
	objMessage.TextBody = "На сервере " & WshNetwork.ComputerName & " процедура бэкапа " & _
	Wscript.ScriptFullName & " закончилась ошибкой. Код возврата архиватора: " & retCode
	objMessage.Configuration.Fields.Update
	objMessage.Send
	Wscript.Quit
End If

' Процедура проверки на наличие папки года.
Sub IsYearFolderExists(YearPrm)
	If FSO.FolderExists(BackupPath & YearPrm) = True Then
		' Folder Exists, do nothing
	Else
		FSO.CreateFolder Cstr(BackupPath & YearPrm)
	End If
End Sub

' Процедура проверки на наличие папки месяца
Sub IsMonthFolderExists(MonthPrm)
	If FSO.FolderExists(BackupPath & CurrentYear & "\" & MonthArray(MonthPrm - 1)) = True Then
		' Folder Exists, do nothing
	Else
		FSO.CreateFolder Cstr(BackupPath & CurrentYear & "\" & MonthArray(MonthPrm - 1))
	End If
End Sub

' Процедура проверки на наличие папки даты
Sub IsDayFolderExists(DayPrm)
	If FSO.FolderExists(BackupPath & CurrentYear & "\" & MonthArray(CurrentMonth - 1) & "\" & DayPrm) = True Then
		' Folder Exists, do nothing
	Else
		FSO.CreateFolder Cstr(BackupPath & CurrentYear & "\" & MonthArray(CurrentMonth - 1) & "\" & DayPrm)
	End If
End Sub

' Процедура удаления старых бэкапов.
Sub RemoveOldBackups(rootPath)
	Dim Folder, element, currDate, foldCrDate, dateDifference
	
	currDate = Date
	Set Folder = FSO.GetFolder(rootPath)
	If Folder.SubFolders.Count > 0 Then 'есть подпапки
		For Each element in Folder.SubFolders
			Call RemoveOldBackups(element.Path)
		Next
	Else
		foldCrDate = DateValue(Folder.DateCreated)
		dateDifference = DateDiff("d", foldCrDate, currDate) 'разница в днях между сегодня и созданием папки
		If dateDifference > Threshold Then
			Folder.Delete(1)
		End If
	End If
End Sub

Sub getMailAddresses (groupName2) ' procedure will get mail addresses from group members and add them to mailToString variable
	Dim objGroup

	Set objGroup = GetObject(getGroupDN(groupName2))
	For each objMember in objGroup.Members
		If objMember.class = "user" and objMember.Mail <> "" Then
			mailToString = mailToString & objMember.Mail & ";"
		ElseIf objMember.class = "group" Then
			Call getMailAddresses (objMember.CN)
		End If
	Next
End Sub

Function getGroupDN (groupName1) ' function will return DN of a given group
	Dim rootDSE, domainContainer, conn, rs1, ldapStrUsers, foundObject

	Set rootDSE=GetObject("LDAP://RootDSE")
	domainContainer = rootDSE.Get("defaultNamingContext")
	Set conn = CreateObject("ADODB.Connection")
	conn.Provider = "ADSDSOObject"
	conn.Open "ADs Provider"
	ldapStrUsers = "<GC://" & domainContainer & ">;(&(&(& (cn=" & groupName1 & _
	") (| (&(objectCategory=*)(objectClass=*)) ))));adspath;subtree"
	Set rs1 = conn.Execute(ldapStrUsers)
	
	While Not rs1.EOF
		Set foundObject = GetObject (rs1.Fields(0).Value)
		getGroupDN = "LDAP://" & foundObject.distinguishedName
		rs1.MoveNext
	Wend
End Function
Показать
35. mishkinet 1 26.09.12 22:20 Сейчас в теме
(1) kramcd, я написал батник, который запускается 1 раз в день при включении комп и выгружает базу. настроил так, чтобы хранились копии только за неделю. можно еще сделать так, чтобы батник сначала убивал все процессы 1с (на случай если кто то сидит в программе). Нужно подробнее - обращайся!))
2. SpartakM 73 22.08.12 21:51 Сейчас в теме
cobian backup.
на мой взгляд лучшая программа для создания архивов. Бесплатна, удобна, проста.
11. v3rter 27.08.12 01:40 Сейчас в теме
(2) SpartakM, На моих "подшефных" 2003 серверах cobian столько раз необъяснимо падал в application error, что пришлось удалить.
9. orehova123 23.08.12 00:31 Сейчас в теме
тоже предпочитаю effector saver. на файловых вариантах отрабатывает быстро и здорово. пользователи понимают настройку с пол-пинка. удобно и есть бесплатная лицензия. обычно на маленьких базах учу так: пришли, включили комп, пошли ставить чайник, а программа уже сделала архивную копию. можно работать спокойно
10. kramcd 23.08.12 08:35 Сейчас в теме
Спасибо, большое всем ответившим. Будут пробовать обе программы.
12. erdos 27.08.12 14:32 Сейчас в теме
я за батник и отрубание пользователей перед резервным копированием
13. sevenor 27.08.12 15:23 Сейчас в теме
Effector saver - дешево и сердито. В смысле удобно и можно всем клиентам ставить т.к. для коммерческого использования бесплатно, работает давно и без сбоев. Минус - при копировании базы на живую могут какие нибудь косяки вылезти. Поэтому надо комбинировать батник (выгнать всех пользователей) + бэкап файловой базы. Иначе целостность будет под вопросом.
14. sanal 27.08.12 17:34 Сейчас в теме
Архивация баз данных в 1С Предприятие 8.х файловый + sql вариант

Доброе время суток)! Архивация баз данных 1С 8.х файловый вариант), отличается от архивации sql баз 1с только одной строкой.
А предпочитаю сжимать файл архиватором 7z. Для этого создайте папку 1c_arhive_bat, скопируйте файлы из папки установленного
архиватора 7z: 7z.dll,7z.exe. Далее в папке 1c_arhive_bat создайте текстовый файл с кодом, пример ниже.

Скрипт файлового варианта
copy G:\1Cv8_database\kamin8\1Cv8.1CD G:\1Cv8_database\Arhive\KaminZP3\
7z a -t7z G:\1Cv8_database\Arhive\KaminZP3\Kamin8_%date%.7z G:\1Cv8_database\kamin8\1Cv8.1CD
del G:\1Cv8_database\Arhive\KaminZP3\1Cv8.1CD

Копирую, базу данных в папку с где лежат архивные копии бд. Далее запускаем архиватор сжимаем файл и получаем название архива
для дата. Далее удаляем файл 1Cv8.1CD.
15. v3rter 27.08.12 21:33 Сейчас в теме
Если копировать по локалке, то лучше командой xcopy /C/Y/Z.
16. kramcd 28.08.12 17:13 Сейчас в теме
поставил cobian backup, настроил, все работает, меня устраивает, спасибо еще раз :)
18. lamb123 04.09.12 16:19 Сейчас в теме
Жесткие или платные решения.
Я базу держу в MS SQL и резервирую штатным SQL Agentom по расписанию командой BACKUP DB
Бэкапится даже при открытых соединениях к базе
19. Be-I 04.09.12 19:23 Сейчас в теме
поддерживаю бесплатную программу cobian backup. бесплатно, быстро, стабильно.
20. lenskysergey 6 06.09.12 11:32 Сейчас в теме
Написали batник и копируем потихоньку, вот только проблема с затиранием старых.
21. Xarm 2 06.09.12 12:42 Сейчас в теме
Удалять файлы совсем не сложно, так что можете взять за привычку, скажем, по понедельникам, освобождать место для новых бэкапов. Хотя лично я переношу все на болванки и отношу в архив. Так спокойнее.
22. Arbalet 06.09.12 12:50 Сейчас в теме
Я вижу тут разделение задачи на 2 большие "ветки":
1. Получение выгрузки базы (dt файла) который можно относительно просто восстановить в любую другую базу при необходимости.
2. Получение слепка (бэкапа) не из 1с, а напрямую с БД. Основной минус в том, что восстанавливать такой бэкап нужно на сервере (не потерять настройки сервера).

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

По моему мнению пункт 2 (бэкап сервера БД) удобнее и надёжнее, особенно для больших баз. Во-первых делать его можно в любое время и не требуется "выбрасывать" пользователей (они этого даже не замечают). Также плюсом является то, что современные СУБД имеют в своём составе довольно удобную и надёжную систему создания резервных копий (разрабатываемую и тестируемую годами). Также плюсом является тот факт, что резервные копии баз делают не только те, кто связан с 1с, а значит на просторах интернета можно найти множество различных вариантов решения задачи, и выбрать наиболее подходящую.
К тому же эту задачу можно переложить на плечи Админов (если таковые предусмотрены в штате).
Единственный минус - это то, что восстанавливать базу из резервной копии нужно в аналогичную и на аналогичной СУБД (просто так перекинуть файлик на другой сервер не получится). С другой стороны при необходимости можно настроить связку автоматических операций: выгрузка бэкапа рабочей базы > загрузка этого бэкапа в специально созданную базу-копию (для тех. целей) > выгрузка базы 1с в виде dt файла и получать за немного большее время желаемый файл выгрузки без особых проблем.
23. psvlab 06.09.12 13:36 Сейчас в теме
Для тех кто не хочет заморачиваться с bat файлами есть вариант с программой The Copier (http://thecopier.narod.ru/). Это маленькая утилита от нашего соотечественника, которая выполняет резервное архивирование любых папок. Автор с удовольствием общается по электронке. Поддерживает архивы более 4Гб Работает достаточно быстро. Нет проблем с рускими именами файлов. Может выключить компьютер, отправить отчет на почту, либо выполнить внешнюю программу.
У меня эта утилита каждую пятницу архивирует базу с сетевого диска, высылает отчет на почту и выключает мой компьютер.
В понедельник я просматриваю почту с отчетом и сразу вспоминаю что надо бы бекапы переписать на диск))) Правда делаю это только в начале месяца. После записи на диск удаляю те архивы которые записывал на диск в последний раз. Фактически я имею еженедельные бекапы на дисках + архивы за истекший месяц на винте еще + еженедельные архивы текущего месяца у себя на винте только.
Правда к этому варианту есть еще ежедневное резервирование всей сетевой шары на втором сервере (Ubuntu+Samba+Rsync), но это отдельный разговор.
24. zargeraz 14.09.12 06:46 Сейчас в теме
кхм, я использую обычный батник и планировщик, и в таком духе уже 3 года без проблем
25. wkon 14 14.09.12 18:49 Сейчас в теме
В Win2008R2 и файловом варианте использую стандартную "систему архивации данных Windows Server", сбрасываю ночью целиком диск C на том, подключеный с внешнего хралища по iSCSI.

Вообще эта утилита в Win2008R2 приятно удивила:
- настраивается элементарно
- вcтроенный планировщик
- работает очень быстро
- никаких конфликтов
- экономичная - пишутся только изменения тома
- сама удаляет старые версии, когда заканчивается место в архиве

Этим же средством время от времени целевой архивный том копирую на подключаемый USB диск.
stepan_shock; +1 Ответить
26. _Skiff_ 17.09.12 14:01 Сейчас в теме
Я сам использую батник. Просто и удобно
27. AlexO 136 17.09.12 14:38 Сейчас в теме
(26) _Skiff_,
Я сам использую батник

а что уж не ватник? :)
(25) wkon,
В Win2008R2 и файловом варианте использую стандартную "систему архивации данных Windows Server"

а что уж только ночью-то? сделайте как-нибудь днем, при сессиях с клиентов.
И сразу один пункт пропадет, а второй захромает:
- работает очень быстро
- никаких конфликтов
28. wkon 14 17.09.12 17:04 Сейчас в теме
(27) AlexO,
Надоело плевать в потолок или все-таки что-то конструктивное сказать хотели?

По Вашему коменту: днем при сессиях клиентов работает очень быстро, никаких конфликтов, вот только целостность данных будет уже под вопросом.
29. firuzji 25.09.12 13:44 Сейчас в теме
(28) Конечно будет под вопросом. Если база занита, нет гарантии что все бекапируется в целости и сохраности.
30. red80 25.09.12 13:57 Сейчас в теме
7zip - лудшая праграмма для бакапа
31. z5515 5 25.09.12 15:26 Сейчас в теме
Cobian Backup - бесплатная утилита предназначенная для резервного копирования файлов и папок, которые часто изменяются. Программа может создавать копии заданных элементов в автоматическом режиме по заданному расписанию.

Cobian Backup может сохранять копии объектов не только на вашем компьютере, но и в локальной сети, на FTP-сервере. При создании резервных копий используется интегрированный zip-архиватор.
wkon; stepan_shock; +2 Ответить
32. stepan_shock 112 26.09.12 10:03 Сейчас в теме
Пользуюсь APBACKUP к сожалению платная, но недорогая
33. firuzji 26.09.12 10:43 Сейчас в теме
Проще батником пользоватся, и шедулер его записать. Бесплатно! )))
34. wkon 14 26.09.12 12:37 Сейчас в теме
Посмотрел Cobian Backup - по жалуй наиболее подходящий набор функций для файлововго бэкапа среди бесплатных и недорогих утилит, с которыми я сталкивался (APBACKUP, SyncBackPro):
1. Множественные источники в задании
2. Множественные получатели в задании (включая FTP)
3. Дифференциальный и инкрементативный режим в сочетании с периодическими полными копиями.
4. Режим теневого копирования.
5. Удаление старых файлов в архиве.
6. Встроенные планировшик и архиватор.
7. Запуск в режиме сервиса.

стоит присмотрется.
36. ibazh 27.09.12 12:21 Сейчас в теме
Effector Saver 3 использую на 3-х серверах в разных режимах, никаких проблем, очень рекомендую
37. rommilk 3 27.09.12 18:09 Сейчас в теме
Лучше всего делать бекап средствами SQL. Так как не нужен монопольный режим
39. win311 27.09.12 18:53 Сейчас в теме
(37) rommilk, но не факт что потом восстановишь и еще больший не факт, что в итоге то что восстановишь - заработает
38. win311 27.09.12 18:52 Сейчас в теме
В общем, делай батником или стандартными средствами M$ Windows - просто дешево сердито
40. rommilk 3 28.09.12 12:30 Сейчас в теме
База восстанавливается из бекапа SQL и других СУБД, проблем замечено не было
41. MegaPoster 30.09.12 10:18 Сейчас в теме
Делал батником, с помощью RAR. Но он стопорится, если в базе кто-то сидит. Как его заставить пропускать такие ошибки или как выкидывать всех из базы?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот