Просмотр полной версии : Средства и способы бэкапа (вопросы и ответы)
Вопрос создания архивных копий системы и данных весьма важен в работе сисадмина.
На моей памяти есть как провальные ситуации, когда грохались базы 1С клиентов (не мной :) ), так и случаи дарения коньяка и прочих плюшек за восстановление случайно или умышленно утраченной пользователями информации.
В этой теме предлагаю обсуждать всевозможные способы создания архивных копий и точек восстановления пользовательских данных, состояния ОС, служб и серверов.
Это значит, что посты на темы "я использую то-то или то-то для создания архивных копий" здесь не уместны.
Помогите написать батник, для резервного копирования папок. ...или может у кого готовые есть?
xcopy /? в командной строке
увидишь все доступные параметры ... и вперед
...
хотя ,чем стандартные средства винды не устраивают("Архивация данных" в разделе Служебные ) ?
я использую это только для автоматизации некоторых процессов
Оба примера скриптов - файлы *.vbs
Класть можно куда угодно, шедулить на ежедневное исполнение.
Dim iMonth, iYear
If DatePart("d", Date()) = 1 Then
iMonth = DatePart("m", Date()) - 1
iYear = DatePart("yyyy", Date())
If iMonth = 0 Then
iMonth = 12
iYear = iYear - 1
End If
strMonth = CStr(iMonth)
strYear = CStr(iYear)
If iMonth < 10 Then
strMonth = "0" & strMonth
End If
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\Firewall\" & strYear & strMonth & ".rar C:\Logs\Firewall\ISALOG_" & strYear & strMonth & "*.iis")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\WebProxy\" & strYear & strMonth & ".rar C:\Logs\WebProxy\ISALOG_" & strYear & strMonth & "*.iis")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\IIS\W3SVC1\" & strYear & strMonth & ".rar C:\Logs\IIS\W3SVC1\ex" & Right(strYear, 2) & strMonth & "??.log")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\MDaemon\" & strYear & strMonth & ".rar C:\Logs\MDaemon\[Только зарегистрированные пользователи могут видеть ссылки]" & strYear & strMonth & "*.log")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\MDaemon\" & strYear & strMonth & ".rar C:\Logs\MDaemon\InstantMessaging-" & strYear & strMonth & "*.log")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\MDaemon\" & strYear & strMonth & ".rar C:\Logs\MDaemon\?Daemon-" & strYear & strMonth & "*.log")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("""c:\program files\winrar\winrar.exe"" a -m5 -df -ep C:\Logs\MDaemon\" & strYear & strMonth & ".rar C:\Logs\MDaemon\WorldClient-" & strYear & strMonth & "*.log")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
End If
Если скрипт запускается первого числа, он архивирует логи предыдущего месяца с последующим удалением их из исходной папки.
Добавлено через 4 минуты
Set WshShell = CreateObject("WScript.Shell")
Dim strCommon
strCommon = """c:\program files\winrar\winrar.exe"" a -m5 -rr -dh -x*.cdx -x\ExtDb\*.* -x*.rar -x*.zip -pPASS -x*.LCK -oc -agYYYYMMDD -ep1 "
Set oExec = WshShell.Exec(strCommon & "E:\1C_Bases\Архивы\DB2009.rar E:\1C_Bases\DB2009\*.*")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec(strCommon & "E:\1C_Bases\Архивы\DB2008.rar C:\1cbases\2008 (Торговля)\*.*")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Обращаю внимание, в строке параметров архивирования задан пароль на создаваемые архивы - PASS
Архивы создаются по маске NNNNNyyyymmdd, где
NNNNN - название архива
yyyymmdd - формат даты в виде год, месяц, день. При такой форме даты архивы упорядочены в хронологическом порядке.
С помощь RAR в батник строки
"C:\Program Files\WinRaR\rar" a -ag -r -dh E:\Arhiv\2009.rar D:\
архивируем с датой где архив что архивируем
Спасибо, разберусь.
Еще вопрос: Как сделать, чтоб в названии архива присутствовала дата его создания?
Еще вопрос: Как сделать, чтоб в названии архива присутствовала дата его созданияВнимательно изучить две вещи:
документацию по Winrar
ключи приведённой выше командной строки
Гм.. (достает старую, еще прошлого века папочку)
Лучше всего вот так:
if exist %date%.dat goto :end //проверяем создана ли сегодня копия. Если уже есть, батник прерывается.
copy *.dat date\*.dat //копируем в папку отчет о запуске батника
del *.dat //удаляем предыдущую дату
copy *.bat %date%.dat //создаем сегодняшнюю дату копирования
If exist e:\rezerv\01*.dat mesec.bat //если первое число, то запускается батник, копирующий в другое место
//переходим в папку назначения
d:
cd d:\target
//проверяем куда будем копировать
if exist e:\rezerv\rez10.rez goto :rez1
if exist e:\rezerv\rez1.rez goto :rez2
if exist e:\rezerv\rez2.rez goto :rez3
if exist e:\rezerv\rez3.rez goto :rez4
if exist e:\rezerv\rez4.rez goto :rez5
if exist e:\rezerv\rez5.rez goto :rez6
if exist e:\rezerv\rez6.rez goto :rez7
if exist e:\rezerv\rez7.rez goto :rez8
if exist e:\rezerv\rez8.rez goto :rez9
if exist e:\rezerv\rez9.rez goto :rez10
//если файла с номером архива нет, его создаем и прерываем батник
copy e:\rezerv\12.bat e:\rezerv\rez1.rez
goto :end
//типовой модуль копирования
:rez1 //метка с номером копии
move e:\rezerv\rez10.rez e:\rezerv\rez1.rez //перемещаем номер копии на наш
xcopy *.* e:\rezerv\rezerv1\db\*.* /s /f /r /y //копируем все файлы с подкаталогами в резервное место
goto :end //закрываем батник
:rez2
move e:\rezerv\rez1.rez e:\rezerv\rez2.rez
xcopy *.* e:\rezerv\rezerv2\db\*.* /s /f /r /y
goto :end
:rez3
move e:\rezerv\rez2.rez e:\rezerv\rez3.rez
xcopy *.* e:\rezerv\rezerv3\db\*.* /s /f /r /y
goto :end
:rez4
move e:\rezerv\rez3.rez e:\rezerv\rez4.rez
xcopy *.* e:\rezerv\rezerv4\db\*.* /s /f /r /y
:rez5
move e:\rezerv\rez4.rez e:\rezerv\rez5.rez
xcopy *.* e:\rezerv\rezerv5\db\*.* /s /f /r /y
goto :end
:rez6
move e:\rezerv\rez5.rez e:\rezerv\rez6.rez
xcopy *.* e:\rezerv\rezerv6\db\*.* /s /f /r /y
goto :end
:rez7
move e:\rezerv\rez6.rez e:\rezerv\rez7.rez
xcopy *.* e:\rezerv\rezerv7\db\*.* /s /f /r /y
goto :end
:rez8
move e:\rezerv\rez7.rez e:\rezerv\rez8.rez
xcopy *.* e:\rezerv\rezerv8\db\*.* /s /f /r /y
goto :end
:rez9
move e:\rezerv\rez8.rez e:\rezerv\rez9.rez
xcopy *.* e:\rezerv\rezerv9\db\*.* /s /f /r /y
goto :end
:rez10
move e:\rezerv\rez9.rez e:\rezerv\rez10.rez
xcopy *.* e:\rezerv\rezerv10\db\*.* /s /f /r /y
goto :end
:end
//создает 10 отдельных копий. Хоть ежедневно :-) И раз в месяц - вызывает батник для создания копии в другом месте :-)
Но лучше всего скрипты осваивать.
П.с. текст дальше // - убрать обязательно! батник лежит в папке, куда копируется.
П.п.с %date% - вставляет текущую дату в ту строку, где используется.
sergeysnl
05.06.2009, 12:35
Ckpyt а еще чтото есть?
Ckpyt а еще чтото есть?
Есть ваша фантазия, и google.com
+Start->Run->[hh ntcmds.chm]
Ckpyt а еще чтото естьЕсли это реальный интерес, а не набор постов, то скажу мнение стороннего наблюдателя.
Создаётся только 10 копий.
Нет проверки на целостность полученных копий. В отличие от архивирования.
Не ясно, за какое число лежит копия в какой папке. Как следствие, не ясно, в какой папке самая древняя или самая свежая копия.
Файлы лежат в открытом виде. В отличие от зашифрованного архива.
Merlin Cori
05.06.2009, 13:40
sergeysnl,
а чем, собственно, не устраивает стандартный ntbackup?
шедулер есть, параметры коммандной строки есть, проверка целостности есть...
а чтоб файл был с сегодняшней датой - простейший perl скрипт и в нем формировать имя файла и запускать ntbackup
Если это реальный интерес, а не набор постов, то скажу мнение стороннего наблюдателя.
Создаётся только 10 копий.
Нет проверки на целостность полученных копий. В отличие от архивирования.
Не ясно, за какое число лежит копия в какой папке. Как следствие, не ясно, в какой папке самая древняя или самая свежая копия.
Файлы лежат в открытом виде. В отличие от зашифрованного архива.
а)количество копий можно наделать вручную сколько хочешь. Простым копированием блоков до нужного числа.
б)да, нет. Файл древний, программировать тогда не умел.
в)а вот и нет. Специально для этого в папке с копиями лежит файл с номером последней версии(rez*.rez)
г)доделать архивирование достаточно легко.
Но вообще, файл сделан для одной, не сетевой машины. Т.е. к машине имеют доступ только те, кто за нее садится.
П.с. вариант с ntbackupom лично меня не устраивал и не устраивает потому что нет возможности залезть в архив и вытащить оттуда только нужный файл.
П.п.с на текущий момент использую собственноручно написанную программу для резервного копирования. но, естественно, выкладывать в открытый доступ программу, весом в полторы тысячи строк, я просто не буду :-)
Merlin Cori
15.06.2009, 10:25
Ckpyt,
ну не знаю, чего ты там наваял на полторы тысячи строк, но почти все подобные задачи решаются перловым скриптом на полторы сотни строк, 2/3 которых печать в лог-файл :)
Вот конкретный рабочий скрипт, который выполняет все нужные действия. Стопит оракловую базу, стопит сервисы, архивирует RAR все нужное содержимое, а потом все обратно стартут. Вешаешь все или на шедулер по команде at или ставишь nncron. Все что надо, изредка посматривать в логи. Те папки которые нужно архивировать указываютсяв файле backup.lst
#!/Perl/bin/perl
#
# Скрипт создания offline архивной копии базы Oracle Informatica
#
# Author: Merlin Cori
#
[Только зарегистрированные пользователи могут видеть ссылки]
#
# Ключи запуска:
# - отсутствуют
#
use Mail::Sender;
use Cwd;
use Time::localtime;
use Win32API::File 0.08 qw( :ALL );
#
#--------------------------------Переменные --------------------
$archdir = "d:\\backup\\"; # Рабочий каталог
$arch_file = "archive_"; # Файл backupa
$ext=".rar";
$logfile = "oracle_backup.log"; # Лог файл
$command = "c:\\arc\\rar a -rr10p -k -m1 -mt4 -r -v3900m"; # командная строка запуска программы архивации
$startbat="startdb.bat";
$stopbat="stopdb.bat";
[Только зарегистрированные пользователи могут видеть ссылки]
[Только зарегистрированные пользователи могут видеть ссылки]
$test_run=0;
#---------------------------------------------------------------------
print("\t- = - Informatica Oracle base backup script - = -\n\t\tVersion 0.3a build 15.06.2009\n\n");
$workdir = "c:\\oracle"; # Рабочий каталог
($day, $month, $year, $hour, $min, $sec)=now();
$file_name=$arch_file.$day."_".$month."_".$year;
open (LOGFILE_HANDLE,">>$logfile") or die ("Cannot open log file $logfile");
print LOGFILE_HANDLE "Started ";
print LOGFILE_HANDLE "$day.$month.$year $hour:$min:$sec";
print LOGFILE_HANDLE "\n";
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "$day.$month.$year - $hour:$min:$sec Stopping services\n";
print LOGFILE_HANDLE "Stopping Informatica PCISBW\n";
system("net stop \"Informatica PCISBW\"");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping Informatica Server\n";
system("net stop Informatica");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping Informatica Repository Server\n";
system("net stop \"Informatica Repository Server\"");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping Gene6 FTP Server\n";
system("net stop \"Gene6 FTP Server\"");
open(BATFILE_HANDLE,">$stopbat") or die ("Cannot create temp bat file");
print BATFILE_HANDLE "set nls_lang=russian_cis.ru8pc866\n";
print BATFILE_HANDLE "set ORACLE_SID=XXXX\n";
print BATFILE_HANDLE "echo set echo on > %0.tmp\n";
[Только зарегистрированные пользователи могут видеть ссылки]
print BATFILE_HANDLE "echo shutdown immediate; >> %0.tmp\n";
print BATFILE_HANDLE "echo exit; >> %0.tmp\n";
[Только зарегистрированные пользователи могут видеть ссылки]
print BATFILE_HANDLE "del %0.tmp\n";
print BATFILE_HANDLE "exit\n";
close BATFILE_HANDLE;
system("stopdb.bat");
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping OracleXXXXTNSListener\n";
system("net stop OracleXXXXTNSListener");
unlink $stopbat;
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Stopping OracleServiceXXXX\n";
system("net stop OracleServiceXXXX");
# Архивируем содержимое папки Oracle
$archive=$archdir.$file_name.$dir_list;
system "$command $archive.$dir_list";
$source=$archdir.$file_name.$ext;
$dest=$destdir.$file_name.$ext;
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "$day.$month.$year - $hour:$min:$sec Starting services\n";
print LOGFILE_HANDLE "Starting OracleServiceXXXX\n";
system("net start OracleServiceXXXX");
print LOGFILE_HANDLE "Starting OracleXXXXTNSListener\n";
system("net start OracleXXXXTNSListener");
print LOGFILE_HANDLE "Run start.bat\n";
open(BATFILE_HANDLE,">$startbat") or die ("Cannot create temp bat file");
print BATFILE_HANDLE "echo set echo on > %0.tmp\n";
[Только зарегистрированные пользователи могут видеть ссылки]
print BATFILE_HANDLE "echo startup force; >> %0.tmp\n";
print BATFILE_HANDLE "echo exit; >> %0.tmp\n";
[Только зарегистрированные пользователи могут видеть ссылки]
print BATFILE_HANDLE "del %0.tmp\n";
close BATFILE_HANDLE;
system("startdb.bat");
unlink $startbat;
print LOGFILE_HANDLE "Starting Informatica Repository Server\n";
system("net start \"Informatica Repository Server\"");
print LOGFILE_HANDLE "Starting Informatica Server\n";
system("net start Informatica");
sleep 40;
print LOGFILE_HANDLE "Starting Informatica PCISBW\n";
system("net start \"Informatica PCISBW\"");
print LOGFILE_HANDLE "Starting Gene6 FTP Server\n";
system("net start \"Gene6 FTP Server\"");
}
($day, $month, $year, $hour, $min, $sec)=now();
print LOGFILE_HANDLE "Backup successful\n";
print LOGFILE_HANDLE "Stopped $day.$month.$year - $hour:$min:$sec \n\n";
print LOGFILE_HANDLE "-" x 40;
print LOGFILE_HANDLE "\n\n";
close LOGFILE_HANDLE;
send_message("Completed","Success XXXX",$mail_to);
#------------------------------- Begin send message -------------------------------------
sub send_message
{
[Только зарегистрированные пользователи могут видеть ссылки]
[Только зарегистрированные пользователи могут видеть ссылки]
[Только зарегистрированные пользователи могут видеть ссылки]
$sender = new Mail::Sender {
smtp => 'smtp.xxxxxx.ru',
[Только зарегистрированные пользователи могут видеть ссылки]
on_errors => undef,
} or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";
$sender->OpenMultipart({to => $adress, subject => $subj});
$sender->Body({encoding => 'Base64', charset => 'windows-1251'});
$sender->SendEnc($message);
$sender->Close;
}
#------------------------------- End send message ---------------------------------------
#------------------------------- Begin current date and time ----------------------------------
sub now()
{
$day = localtime->mday();
$month = localtime->mon()+1;
$year=localtime->year() + 1900;
#final_archiving ($day, $month, $year, $archdir);
$hour=localtime->hour();
$min=localtime->min();
$sec=localtime->sec();
return $day, $month, $year, $hour, $min, $sec;
#------------------------------- End current date and time ------------------------------------
}
простенький бекап для копирования базы 1С
@echo.
@echo Backup 1C_Base
@echo off
rar u -s -mdd -dh -ilog -x*.cdx -x*.bmp -x*.jpg -x*.ert -x*.exe -x*.zip -x*.rar -r -agDD_MMM_YY-HH-MM-SS backup "D:\1CBase\Mk"
move /Y backup*.* D:\1CBackup\
Пользовался им раньше, а теперь пользуюсь программой КобианБекап - бесплатная, ресурсов почти не потребляет, работает в фоновом режиме, проверяет сделаный архив, удаляет архивные файлы, когда их количество превышает заданное. Очень рекомендую.
Добавлено через 20 минут
Качал эту прожку давненько, года два ей уже пользуюсь, но в гугле только-что дал запрос - [Только зарегистрированные пользователи могут видеть ссылки] по первой ссылке выдало.
Кстати, версия поновее моей оказалась. Надо бы обновиться :)
vovchik45
01.07.2009, 14:30
П.с. вариант с ntbackupom лично меня не устраивал и не устраивает потому что нет возможности залезть в архив и вытащить оттуда только нужный файл.
Очень даже можно вытаскивать нужный файл!
В закладке "восстанвление и управление носителем", выбираешь нужный архив, в нем идешь по дереву и ищешь нужный файл, ставишь галку выбираешь размещение и жмешь восстановить...
lama4ever
02.07.2009, 09:24
использую батники с помощью рар архивируется, всё ништяк
Alan2006
02.07.2009, 14:56
Я юзал такой простеньбкий скринпт:
"C:\Program Files\WinRAR\rar.exe" a полное_имя_архива.rar -ag[YYYYMMDD] путь_к_папке_или_файлу_который_будет_архивироватьс я >> полное_имя_файла_отчёта
Где
C:\Program Files\WinRAR\rar.exe - путь к rar-архиватору. Может меняться в зависимости от установки.
полное_имя_архива.rar - полное имя создаваемого архива вместе с путём и расширением. Расширение не обязательно должно быть .rar, его может и вовсе не быть. Но зачем мудрить?
путь_к_папке_или_файлу_который_будет_архивироватьс я - аналогично. полное имя с путём (в случае файла и расширением) того, что архивируем. Тут такие нюансы:
1) Для файла должно быть указанно расширение. Иначе не найдёт.
2) В случае папки... Если указанно к примеру C:\windows\ то будет архивировать только файлы в папке, вложенные папки и их содержимое проигнорирует. Если указать C:\windows то заархивирует ещё и вложенные папки с их содержимым.
Параметр a, использованные при вызове архиватора указывает на то, собствыенно говоря, что будет производиться архивирование. Оон обязателен.
Ключ -ag[YYYYMMDD] указывает на то, что к имени архива будет приписана дата в формате ГГГГММДД. этот ключ не обязателен. При желании можно его не использовать вообще или поставить другой формат даты.
Использовал я файл не типа .Bat а типа .CMD т.к. батник почему-то не совсем корректно отрабатывал у меня при русских именах файлов и папок.
Создаёшь такой вот батник а потом, при необходимости, настраиваешь шедулинг для него. Или сам кликаешь когда создать архив нужно.
Доброго времени суток, после перехода на 2008 сервер столкнулся с такой проблемой. Акронис бекап сервер на устанавливаеться, точнее он есть, и даже в процессах висит, но админить его нет возможности, консоль не работает.
Может кто подскажет как оргазинизовать архивацию даных (база 1-с) по расписанию (инкременентные архивы!), либо средствами самой ОС, либо сторонним софтом
apache_xak
21.10.2009, 21:17
ПО моему в 2008 сервере присутствует специальный сервис для бекапа как системы так и отдельных каталогов
Нужен именно инкременентный архив (простите если не правильно написал), это значит что сначала создаётся полный бекап, а позже по расписанию добавляются только архивы с изменёнными данными. В настрояках виндового архиватора я не нашел таких настроек.
[Только зарегистрированные пользователи могут видеть ссылки]
Ключик про инкрементальные архивы ищи в справке по WinRAR'у.
Приветы всем!
Хотелось бы немного продолжить обсуждения в этой теме...
Если по Бэкапу папок (к примеру-баз 1С) вариантов множество - от bat-файла+RAR, до отдельных,
заточенных под Архивирование программ - например ApBackUp, то по Бэкапу СИСТЕМЫ - выбор наверное не такой уж большой!?
Хотелось бы обсудить именно Системный Бэкап, инструменты, Плюсы и Минусы...
Пожалуй начну...
Имеем - Система (W2k8seR2) установлена на зеркале САТА
(100мб в скрытом разделе + примерно 49 Гиг на диске С),
на серваке - пока чистая ОС, без Доп.Софта, АД и прочего.
(Кому интересна инфа про СКрытый раздел - [Только зарегистрированные пользователи могут видеть ссылки])
1. Использование загрузочного CD с Acronis-ом (сейчас как-раз запустил тестово)
Акронис показал расчетное время - в 2 часа...:( (при стандартном сжатии) - в реальности столько примерно времени и вышло!
Плюсы:
- Система Бэкапится полностью и ей ничего не мешает (например запущенная сама Винда);
- По времени - возможно 2 часа это и не много - сколько бы времени потребовал бэкап средствами Винды - ??? (узнаем позже);
- Возможность создания как Полных, так и Разностных Бэкапов Системы
(на самом деле-я не пробовал никогда восстанавливаться с Разностных - пользовался всегда Полными);
...
Минусы:
- Бэкап (с запуском с CD) нужно запускать ручками;
- Необходим сам рестарт Сервера для запуска Бэкапа;
2. Использование проинсталлированного Acronis-а
По этому варианту опыта мало, и он отрицательный...:(
Акронис был установлен на др.сервере с W2k3se ...
В его шедулере прописана задача...
!!! Очень часто во время бэкапа сервер зависал-даже монитор был потухшим !!!
В результате я отказался от услуг ИНсаллированного Акрониса..
Ни разу не пришлось попробовать восстановиться с таких архивов..
Плюсы:
- Наличие Админа не обязательно-можно всё настроить в Шедулере;
Минусы:
- см. выше о моих зависаниях...
3. Использование загрузочного CD c GHOST-том
(..буду тестировать чуть позже CD-Акрониса...)
Успешно запустился, позволив выбрать для бэкапа оба раздела (скрытый и диск С)
Расчетного времени не показал, при FAST-методе сжатия справился за 32 минуты (!!!)
Плюсы и Минусы - примерно аналогичные с CD-Акронисом
3. Бэкап Системы средствами Windows
Честно сказать - данный вид Бэкапа мной практически не тестировался (Ну не доверяю я это дело Винде..:cool:)
Надеюсь на то что Вы меня просветите и возможно - переубедите...:)
...
...
...
ЗЫ: Может стоит создать всёж новую тему, а это сообщение в Шапке потом дополнять Вашими данными - получится отличный FAQ по системному бэкапу!?:cool::super:
wbadmin.msc, а дальше всё даже кухарка поймёт как настраивать, чтобы иметь гарантированный полный\частичный резерв системы.
sanyacoder
06.11.2009, 18:11
Касательно 1с - использую зашедуленый в nncron'е такой скриптик:
Set b = CreateObject("V7Backup.InfBase")
'b.TestMode = True ' После пробного запуска скрипта в тестовом режиме для начала работы удалите или закомментируйте эту строку
b.DebugLogPath = "D:\shares\backups\V7Backup.log"
' sklad
b.V7Path = "C:\Program Files\1Cv77\BIN\1cv7s.exe"
b.UserName = "user"
b.Password = "password"
b.BackupDir = "D:\shares\backups"
b.AddBackupDir = "\\host\backup1c"
b.DBDir = "D:\shares\bases\Sklad"
b.ArcNamePrefix = "Sklad"
b.ArcNamePostfix = ""
b.ZIPPassword = "zippass"
b.Params = _
"[General]" & vbCrLf & _
" UnloadData = 1"
b.DoBackup
Set b = Nothing
Блок между "set b" можно повторять по количеству баз. Имена и пароли умышленно изменены. Работает и глаз радует. И логи ведет.
Добавлено PLAstic:
Объект V7Backup.InfBase не является стандартным 1Совским или виндовым и требует установки разработки V7Backup - решение для автоматизации резервного копирования баз 1С:Предприятия 7.7 ([Только зарегистрированные пользователи могут видеть ссылки]).
Кстати, а как из командной строки (перл не предлагать) можно удалять каталоги по определенному критерию в названии?
Например, бекапы недельной давности с именами вида arc_ddmmyyhhmmss?
бекапы недельной давности с именами вида arc_ddmmyyhhmmssdel arc_??1109*.*
Только не недельной давности, а за прошлый месяц, например. Только всё равно я бы не рекомендовал удалять такие архивы. На моей памяти был случай, когда бухи спохватились, что кто-то из них когда-то залез в документ и накосячил там. Поднимали архивы даже полугодичной давности, нашли оригинальный вариант и исправили ошибку.
del arc_??1109*.*
Нет, ну это понятно. Я имел в виду батник, который бы при запуске удалял каталоги с датой создания >определенной. Вроде даже нашел.
А постоянно держать бекапы трех дисков (системного, с БД и с документами) - никаких винтов не хватит же.
allarkoms
19.11.2009, 18:37
сталкивался и с проблемой когда copy... не все копирует, и винраровский архив потом не открывается (речь идет об ОЧЕНЬ объемных архивах) .По своему опыту пришел что лучше связки Акронис тру имедж и отдельный винт на сервере под архивы нет!!! Выручал уже не раз, отдельно и систему архивирую и файлы пользователей , инкрементно раз в неделю+ отдельно ежедневные архивы.
Пробую на виртуальном серваке Symantec Backup Exec System Recovery.
Производитель утверждает что: "Оно позволяет минимизировать простои и избежать последствий аварий благодаря возможности быстро и легко восстанавливать как отдельные файлы или папки, так и полностью системы Windows за считанные минуты - даже на разнородном оборудовании, в виртуальных средах или в удаленных расположениях."
На данный момент стоит "1С Гендальф Хранитель".
Просмотрел бегло форум, но ничего по этой теме не нашел...:(
Посему - предлагаю обсудить способы и варианты решения этой задачи.
Модераторам! - Я думаю вы не будете возражать, поместив эту тему в разделе ВАЖНО, закрепив это первое сообщение в шапке темы?!:beer:
А я буду по мере сил дополнять шапку на основе своего опыта, материалов в сети и мнений пользователей форума.. - Получится думаю не плохой FAQ по этому вопросу!! :super:
Может ТЕМУ назвать как-то по другому? (предложите)
================================================== ================================================== ==========================
Вступления пока не будет - не хочется лить зря воду..:cool:
Параметры системы и Софта.
Имеем к примеру пару мощных Серверов с MS Windows 2008 Server EE R2 (..иль 2003 - это я думаю тут не важно..)
На 1-м установлена база MS SQL (под управлением MS SQL Server 2008) - в моём случае это пара баз 1С8 УСО (Реальная и Демо)
2-й будем использовать как Файл-Сервер для хранения Бэкапов SQL-баз.
Постановка задачи (общие намётки).
1. В назначенное время создать Бэкап SQL-базы;
2. Сжать (на примере WinRARa) полученный Бэкап;
3. Перекинуть Сжатый архив по сетке на Файл-Сервер
4. Подчистить за собой "следы"...:oops:
Маленькое отступление по поводу 1С-баз и способов их бэкапа:
Несомненно бэкап SQL 1С-баз можно выполнить несколькими способами, каждый из которых имеет свои ПЛЮСЫ и МИНУСЫ.
Попробую их озвучить (Если что - помидорами не кидать - а лучше вежливо подсказать...):
Вариант I - условно назову его БЭКАП ФАЙЛОВЫЙ...
Его суть - остановка SQL-сервера(?!) (иль может просто отсоединение базы? - уточню позже), затем обычное копирование файлов, и опять подключение Базы...
Данный вариант был подсказан по ссылке: [Только зарегистрированные пользователи могут видеть ссылки]
Минусы:
- необходимость "отсоединение" базы от SQL-Сервера (Самый пожалуй ЖИРНЫЙ минус);
- необходимо запускать, когда никто не работает с базой, а для пущей надежности - проверить и "кикнуть" зависших юзеров.(Минус чут по меньше верхнего)
- при написании скрипта (для автоматического выполнения бекапа) нужно мудрить с командами sql-сервера (хотя я думаю там ничего сложного нету)
- получаемый "простой"(бездействие) системы, вытекающий из двух первых "минусов"
...
Плюсы:
...
Вариант II - условно назову его БЭКАП СРЕДСТВАМИ 1С
Суть - на языке 1С пишется специальная процедура, которая запускается из под 1С, и выполняет необходимые действия...
Как правило данная процедура пишется самими админами или кодерами и готовых решений пожалуй нету..
Минусы (чисто моё мнение):
- необходимость проверки и "вышвыривания" зазевавшихся пользователей из базы...
- возможно трудности с написанием кода (если вы не кодер 1С)
- Нет Юзеров - нет Работы - значит система простаивает..
- ...
Плюсы:
- Небольшим плюсом является экономия места(по ВАШЕМУ мнению)
- писать код не обязательно. Есть так-называемые пакетные задания, на которые можно просто повесить выгрузку (на правах цитаты)
...
Вариант III - условно назову его БЭКАП СРЕДСТВАМИ SQL
Суть - выполнение спец.команд по Бэкапу, которые заложены уже в сам SQL-сервер...
Минусы:
- нет достаточной гибкости в языке управления (но это решаемо другими путями)
- ...
Плюсы (Имхо):
- Не надо никого выгонять из Базы... (бэкап можно выполнить "на лету" - не прерывая работу Основной системы и Юзеров)
- Бэкап выполняется достаточно быстро (Видно Заточены Инструменты хорошо под это..))))
- акромя самого Бэкапа можно выполнить дополнительные задания по обслуживанию базы (тут речь про те самые "встроенные бэкаперы" в MSSQL, о котором поведал "умный человек")
- ...
Если кто знает другие варианты - просьба подсказать
....
Предлагаю подробно рассмотреть Вариант III - БЭКАП СРЕДСТВАМИ SQL - по моему Имхо самый удачный...
Будут применяться:
- команда sqlcmd.exe (кому надо - смотрим по ней хелп)
- архиватор WinRar из консольного вызова
На данный момент архивация на моём SQL-сервере выполняется следующим образом:
- по Виндовому Шедуллеру запускается bat-скрипт примерной конфигурации:
rem ======== Создаем Бэкап SQL-базы средствами sqlcmd =============
sqlcmd -E -S "localhost" -Q "BACKUP DATABASE [sql_base] TO DISK = N'D:\BackUp\BackUpSQL\sql_base_backup.bak' WITH NOFORMAT, NOINIT, NAME = N'sql_base_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10">D:\BackUp\BackUpSQL\backup_sqlbase.log
rem ========== Сжимаем полученный Бэкап RAR-ом с присваиванием текущей Даты, кидаем на Файл-Сервер ============
C:\Bat_Scripts\Rar.exe a -m3 Z:\BACKUP_SQL_BASE\%date%_sql_base.rar D:\BackUp\BackUpSQL
rem ========== Т.к. Архив с Бэкапом перенесён на Файл-Сервер, чистим папку =============
del /S /Q D:\BackUp\BackUpSQL\*.*
Пояснения:
1. Скрипт лежит в директории C:\Bat_Scripts\, туда же помещён Rar.exe
2. sql_base - имя SQL-базы
3. D:\BackUp\BackUpSQL\ - директория куда временно помещается ПОЛНЫЙ Бэкап с именем sql_base_backup.bak
4. Лог выполнения бэкапа помещается в эту же директорию с именем backup_sqlbase.log
5. Диском Z: на SQL-Сервере подключена Шара Файл-Сервера, для размещения "ужатого" Бэкапа
6. RAR-овскому архиву можно присвоить имя с учетом текущей системной даты
Предвижу ВОЗМУТИТЕЛЬНЫЕ возгласы по поводу запуска архивирования по сети!!!
Извиняйте братцы! - Конечно же очень желательно запустить Архивирование на самом SQL-Сервере, а уже потом перекинуть полученный архив на Файл-Сервер!!!
Будем исправлять это конечно!!!
Не сразу Москва строилась!
P.S. (она же ЗЫ):
Пометки на полях:
- по возможности не использовать Платные продукты;
- речь для начало вести о каждо-ночных Полных Бэкапах;
- глянуть что есть тут Фриварного: [Только зарегистрированные пользователи могут видеть ссылки] и тут - и тут: [Только зарегистрированные пользователи могут видеть ссылки]
Продолжение следует...:hehe:
PS2: Убедительная просьба тем кто будет обсуждать и дополнять данную тему:
- слишком много не цитируйте из шапки темы (дабы не захломлять тему) - кратко и ясно, как это сделал уважаемый Alan2006:beer:
- на основе ваших обсуждений буду корректировать саму шапку.
Alan2006
17.12.2009, 09:40
Полностью цитировать не буду для удобства просмотра... Своё мнение по этому поводу выскажу...
Вариант I:
Так же необходимо вышвыривать пользователей из базы т.к. сервер скорее всего либо откажется отключаться от базы(что, кстати, маловероятно) либо вышвырнет пользователя. Второе чревато тем что какие-то данные могут быть просто потеряны из-за выполняемых в момент отключения действий.
Ещё один мелкий минус(чисто моё ИМХО) - при написании скрипта (для автоматического выполнения бекапа) нужно мудрить с командами sql-сервера.
Вариант II:
В принципе правильно НО писать код не обязательно. Есть так-называемые пакетные задания, на которые можно просто повесить выгрузку. В 7 это .rpm - файлы. В 8 не пробовал такое... но думаю это есть) Остаётся только запустить конфигуратор с пакетным заданием выгрузки и он сам всё сделает.
Небольшим плюсом является экономия места. При такой выгрузке выходящий файл получается сжатым - он уже без индексов и без избыточных данных но содержит данные и метаданные. Минус такой выгрузки - ненадёжность получаемого архива. Это следует именно из того, что избыточная информация не выгружается. При малейшем повреждении полученного на выходе файла его использовать для восстановления уже не получится...
Вариант III:
Имхо, самый надёжный способ... Что-то добавить не могу...
А вообще, все указанные выше способы лучше запускать когда пользователей нет в базе. Т.е. ночью...
З.Ы.: Полезная тема. Спасибо.
В чём минус всех этих вариантов, включая и третий? В том, что базы могут быть огромными и тогда полная упаковка базы в первом варианте вызовет банальный простой существенное время (если говорить о производстве 24/7, то и полчаса - это много), а в третьем варианте (который, в общем то от второго отличается только внешним запуском винрара) каждый запуск вычислительные мощности будут уходить на полный перенос базы во временную папку и архивацию, но при этом пользователи смогут работать, возможно, ощущая некоторые тормоза.
Вот на случай, если эти тормоза напрягают, можно использовать красивый метод. База во временной папке не удаляется после архивации, а остаётся для дополнения. То есть туда копиряем не всю базу, а только, по сути, изменённые файлы. У меня на почти 30 гигабайтной месячной базе такой подход экономит очень много времени. То есть, буквально, полное копирование без индексов - минут 45-60, а дополнение временной базы - минут 10 от силы. Дальше уже работаем архиватором по сети с другой машины и сколько это времени и ресурсов займёт - в принципе плевать.
про sql щас умный человек сказал, что в MSSQL давно есть встроенные бэкаперы, которые умеют без геморроя делать инкрементальные архивы, так что, наверное, стоит почитать мануалы по ним (я не кодирую на sql совсем, поэтому сам читать не буду))) и уже этот архив прям сразу сжимая архиватором тянуть по окончании дополнения архива на файл-сервер.
Alan2006
17.12.2009, 14:25
если говорить о производстве 24/7, то и полчаса - это много
Хм.. для систем, работающих в реальном времени, пусть даже и мягком, вообще не рекомендуется использовать "обычные" операционки и базы данных.
Существуют специальные оси и БД-сервера с повышенной надёжностью и оптимизированной производительностью.. В том числе и бекапы там предусмотренны "без простоев".
а в третьем варианте (который, в общем то от второго отличается только внешним запуском винрара)
Ммм... не скажи... во втором случае информация не архивируется а выгружается только нужная...
делать инкрементальные архивы
Полсностью согласен, инкрементальные архивы, в общем случае, будут быстрее в разы делаться (в частном - может быть сравнимо).
Кстати, натолкнул ты меня на мысль... Хотел написать что в некоторых случаях нужно иметь архив "вчерашнего, позавчерашнего... и тд дня" но понял что можно делать инкрементный архив а потом бекапить его. Получится и по времени для производства экономия и будет многомерный архив...
Братцы, мы пытаемся объять необъятное..:)
НЕсомненно:
1. В самом SQL есть многие вкусности и сервисы - мы думаю до них дойдём..
2. Про разностные архивы - ... давайте для простоты поставим себе задачу попроще - "Полные Каждодневные Бэкапы по Ночам"?
3. Общих схем бэкапа включающих Полные и Разностные тоже не будем предлагать - многое зависит от нагрузки на Систему..- правильно сказал Alan2006 - есть и ОСи и Сервера под это - ORACLE к примеру..
4. При том в этих вариантах разностных и Полных при работе юзеров не нужно забывать про Файлы Логов Транзакций - без них часть данных будет потеряна.
5. Давайте возьмём для примера Не-Нагруженную систему, которая позволит НОчью производить манипуляции с Бэкапами? Ну и не будем говорить пока про ОГРОМНЕЙШИЕ базы.. - для них Аналогично нужны свои Сервера, Свои ОСи.. и индивидуальный подход.
6. Думаю никто не будет возражать - если мы из ТРЁХ вариантов (БЭКАП ФАЙЛОВЫЙ, БЭКАП СРЕДСТВАМИ 1С, БЭКАП СРЕДСТВАМИ SQL, ) выберем III-й, как наиболее наверное распространенный (Имхо, по крайней мере по количеству публикаций о нем в Сети)???
Добавлено через 1 час 1 минуту
Я думаю Вы согласитесь обсуждать только Вариант III - БЭКАП СРЕДСТВАМИ SQL, как наиболее универсальный и достаточно гибкий?
Я Думаю встроенные в MSSQL вкусности, типа Планов Обслуживания, - они же "встроенные бэкаперы" - позволяющие делать как Полные, так и разностные Бэкапы -
Это хорошие инструменты (зря чтоль дядя Билл своим кодерам бабки платит?)
ЗЫ: ПО скорости создания файла Бэкапа (без ужимания Раром) могу сказать - что средствами SQL-сервера он выполняется достаточно быстро, а вот средствами 1С - не уверен.. - впрочем не могу сравнить, потому как сам не пробовал и не сравнивал.
НО что-то мне подсказывает, что 1С будет это дольше делать (Ну ясно ведь что 1С в этом случае - как дополнительное звено в цепочке к SQL-базе), хотя возможно и займет меньше места.
ЗЫ-2: Ща вот поразмыслил - 1-й вариант (Файловый) тоже пожалуй интересный - там ведь в базе всего два файлика (mybase_data.mdf и mybase_log.ldf к примеру) - бери и ужимай их чем хочешь! (правда вот не знаю - разностные архивы с них получится ли делать?)
Но конечно необходимость ОТключения базы, а перед этим - анализ на "спящих" юзеров и их тактичное "выкидывание" - очень уж портит этот способ (Имхо).
ЗЫ-3: По поводу Постоянно нагруженных систем...
В ОБЩЕМ думаю неплохим будет для них решением:
Полный Ночной бэкап (желательно в специально Отведённом на это времянном Окне - типа "выйти всем из баз 1С на 30 минут для профилактики")
(Хотя "выгон" в общем-то не обязателен - достаточно выбрать наиболее "нерабочее" время у Системы - например ОБЕД...)
+ РАЗНОСТНЫЕ Бэкапы "На лету" (без выгона юзеров) с необходимой переодичностью (тут уж сами решите - за какой отрезок времени допустима потеря информации)
И так - до следующего Полного Бэкапа в "Окне".
Кстати:
- Для моей молодой Базы (чуть более 1,2 Гига) ужатый RAR-ом Бэкап (Средствами SQL) составляет около 240 Мбайт...
- Время самого Бэкапа - точно не скажу, но счет в несколько СЕКУНД (!!!) - Глянул: 4,1 сек...)))
- Ужатие RAR-ом + некрасиво ужимать на сетевой диск - тут конечно подольше времени (но это уже ведь не критично - Бэкап то создан!)
...
...ВО на-ЗЫКАЛ...:)
Можно ещё добавить в команду:
C:\Bat_Scripts\Rar.exe a -m3 Z:\BACKUP_SQL_BASE\%date%_sql_base.rar D:\BackUp\BackUpSQL
Опции для:
1. Добавления "ИНформации для восстановления" в получаемый архив, при этом возрастет Размер архива и время "Сжатия"
2. Добавить опцию, удаляющую "оригинальные" файлы после Сжатия
Вообще-то в скрипт не мешало бы добавить интеллекта - на предмет отслеживания Ошибок!?
Можно вообще его написать наверное на VBS + отправлять сообщения в Системный журнал Windows!?
PS: Надоть глянуть - нет ли у WinRAR-а ограничения на обрабатываемый файл и архив?
А то может сразу перенацелиться на бесплатный 7-zip ? :)
Ток вот в VBS я не шибко шарю...:quest: - ну чтож - придётся осваивать и его!:cool:
Забыл - не очень пожалуй нравиться что в получаемый архив попадают Каталоги из всего пути к Бэкапу...:(
Подскажите - как можно избавиться от этого? - иль наплевать?
Подскажите - как можно избавиться от этого? - иль наплевать?У винрара есть ключик соответствующий: -ep1
У винрара есть ключик соответствующий: -ep1
Добавил указанный ключик, получилась команда:
C:\Bat_Scripts\Rar.exe a -m3 -ep1 Z:\BACKUP_SQL_BASE\%date%_sql_base.rar D:\BackUp\BackUpSQL
Однако в Архиве остался каталог BackUpSQL - ну это уже не так смертельно...:) - буду экспериментировать...
1. Как вариант - можно указать имя Ужимаемого Бэкапа - оно то известно... - тогда точно не будет никаких Каталогов, но там в каталоге с Бэкапом ещё лежит лог бэкапа,
можно конечно создать Список файлов для архивации(сжатия), надоть глянуть - какие ключики ещё можно попользовать!?
2. А лог бэкапа можно вообще не создавать..
3. Или выполнить команду сжатия для Лога в следующей строке (дабы не плодить добавочных файлов-списков) - и добавить его к уже Сжатому Бэкапу...
(хотя при этом возрастет наверное ЗНАЧИТЕЛЬНО общее время создания результирующего RAR-архива)-тогда уж лучше первые два варианта - со Списком включаемых файлов или Вообще без Лога!?
Можно попробовать ещё увеличить метод (степень) сжатия, заменив -m3 на -m4 (хорошее) или на -m5 (максимальное)
Кстати - ключик -m3 можно и не указывать - Обычный метод сжатия (используется по умолчанию)
НЕплохоб было ЗАБЛОКИРОВАТЬ Архив после всего этого?!
Однако в Архиве остался каталог BackUpSQL - ну это уже не так смертельно...Всё делается немного проще:
"c:\program files\winrar\winrar.exe" a -m5 -rr -dh -x*.cdx -x*\ExtDb\*.* -x*.rar -x*.zip -x*.LCK -r -inul -oc -ppassword -agYYYYMMDD -ep1 E:\Архивы\DB.rar C:\DB2009\*.*
Где:
C:\DB2009 - каталог базы 1С
E:\Архивы\ - папка, куда будет положен архив
DB.rar - используя маску ключа -ag будет сформировано название с датой создания архива
password - пароль создаваемого архива
Почувствуй разницу между D:\BackUp\BackUpSQL и D:\BackUp\BackUpSQL\*.*
В этом посте ([Только зарегистрированные пользователи могут видеть ссылки]) обмусолены средства бэкапа файловой базы. Для твоего случая с использованием винрара тоже подходит.
Доброго дня суток.
Не помню на каком сайте нашол, но лучшего по простоте пока, по моему, нет. Создается два батника, первый получает параметрв архива и собственно выполняет архивацию:
@ECHO OFF
SET PREFIX=%1
SET BAZA=%2
SET FOLDER=%DATE%
cd C:\BACKUP
mkdir "%FOLDER%"
cd "%FOLDER%"
ECHO Begin: %DATE% %TIME% > %PREFIX%.LOG
"C:\Program Files\WinRar\WINRAR.EXE" a -dh -m5 -ilog%PREFIX%.LOG %PREFIX%.RAR %BAZA%
ECHO. >> %PREFIX%.LOG
ECHO. >> %PREFIX%.LOG
ECHO End: %DATE% %TIME% >> %PREFIX%.LOG
cd C:\BACKUP
Второй, Здесь мы вызываем первый батник и указываем имя архива и путь к папке которую надо архивировать
cd C:\BACKUP
arhiv.cmd BZ1 c:\NVIDIA
Прелесть такого решения:
1. Первый батник правится только один раз
2. Во втором можно быстро добавлять команды для архивации нужных папок
Удачи.
Подскажите пожалуйста.
Настроен бэкап в SQL 2005,
1) ночью делается один раз полный
BACKUP DATABASE [ACC]
TO DISK =
N'D:\BACKUP\ACC.bak'
WITH NOFORMAT, INIT, NAME = N'ACC-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
2) Чуть позже бекап лога с перезаписью
BACKUP LOG [ACC]
TO DISK =
N'D:\BACKUP\ACC.Log'
WITH INIT, NAME = N'ACC- Backup Log', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
3) и дальше через каждый час идет добавление в новый бэкап лога
DBCC SHRINKFILE(ACC_log,1000)
BACKUP LOG [ACC]
TO DISK =
N'D:\BACKUP\ACC.Log'
WITH NOINIT, NAME = N'ACC- Backup Log', SKIP, NOREWIND, NOUNLOAD, STATS = 10;
DBCC SHRINKFILE(ACC_log,1000)
И вроде бы все нормально, в родной SQL весь бекап с шагами лога восстанавливается, но другом (тестовом) сервере не могу поднять бекап из логов, получается только с полного.
Говорит что том устройства ACC.Log не является частью множественного семейства набора носителей ???
Всем спасибо, разобрался полный надо поднять с NORECOVERY (!)
RESTORE DATABASE [ACC] FROM DISK = N'E:\Backup\ACC_s102\ACC.bak' WITH FILE = 1, NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
Ктонибуть использует стримеры для резервного копирования в Server 2008 я понимаю чтоони от них отказались я сам под Линуксом до этого сидел там удобно с ним работать было привык малость и СТример стоит только не юзается.
Alan2006
18.02.2010, 14:36
По бекапу 1с 7.7 баз пакетным заданием:
1. Нужно создать файл с расширением .RPM в каталоге базы данных (назовём его savedata.rpm)
2. Пишем в него следующее:
[GENERAL]
Output=ReindexSavedata.log
Quit=1
CheckAndRepair=0
UnloadData=1
SaveData=0
AutoExchange=0
[UnloadData]
UnloadToFile=D:\1CBackup\SaveData.zip
IncludeUserDef=1
Вместо "D:\1CBackup\SaveData.zip" соответственно можно указать и другое полное(с путём) имя файла
3. Создаём cmd файл и помещаем его куда удобно.
4. Заполняем его следующим содержим:
[Только зарегистрированные пользователи могут видеть ссылки]
Где:
- "C:\Program Files\1cv77\bin\1cv7.exe" - путь к экзешнику 1с (кстати может быть имя другое, к примеру для sql версии имя файла будет "1cv7s.exe". + Смотрите куда устанавливали);
- "D:\База" - путь к архивируемой базе;
- User - Имя пользователя в 1с. Лучше всего с администраторскими правами;
-password - пароль этого пользователя.
-savedata.rpm - имя созданного в п.1 файла.
5. Шедулим получившийся cmd - файл и готово.
У меня добавлены ещё такие строки чтобы хранить архивы за несколько дней:
set d=%date: =%
set d=%d:.=-%
move /Y "D:\1CBackup\SaveData.zip" "Q:\1CBackup\1c-%d%.zip"
Плюсы:
- Не зависимость от платформы - не важно dbf-ная ли база или sql-ная;
- Не нужно мучиться с детачем - аттачем в скрипте базы (к примеру на энтерпрайс версии sql сервера);
- 1с сама выгрузит только нужные для восстановления данные.
- Немного поколдовав с rpm файлом можно делать ещё и другие действия: к примеру, пересчет итогов и проверка логической и физической целостности или реиндексацию для DBF базы;
- Объём. У меня из почти гиговой sql базы (~750метров база и ~250 журнал транзакций) получился 50 метровый архив.
Минусы:
- В базе не должно быть пользователей во время архивации;
- Для архивации других данных из папки с БД нужно будет дописывать cmd скрипт. К примеру у меня в этом же скрипте архивируюся отдельно печатные формы и внешние обработки;
- Получившиеся архивы более чувствительны к повреждением из-за отсутствия избыточной информации (моё субъективное мнение);
- Время. по сравнению с простой архивацией через скажем rar время увеличивается (Опять же по моим ощущениям. Я не замерял.).
qweyyyyyyyyy, Уважаемый, варантов в этой ветке на любой вкус.
Как варианты:
1.Всю базу/папку с базами - Подойдет акроникс, Написать батник под винрар, просто организация копирования на другой комп.
2.Автоматическая выгрузка из 1С.
3.Есть спец проги для бекапа 1С.
Что для тебя меньше проблем то и выбирай.
В организации есть акроникс, я его и юзаю, хотя дополнительно делаю архив раром.
Alan2006
24.03.2010, 12:06
1.Всю базу/папку с базами - Подойдет акроникс, Написать батник под винрар, просто организация копирования на другой комп.
если 7-ка SQL-ная то бекап просто папки не катит... ибо даст только бекап МД файлов, служебных папок юзверей и папки внешних печатных форм (если они лежат как по умолчанию в папке базы)... чтобы раром забекапить ещё и данные нужно детачить файлы SQL базы потом архивить их и потом снова аттачить...
Бэкап Системы средствами Windows
чем не устраивает? Попробуйте, понравится. В 2008 он удобнее и проще чем ntbackup.
1.Всю базу/папку с базами - Подойдет акроникс, Написать батник под винрар, просто организация копирования на другой комп.
2.Автоматическая выгрузка из 1С.
3.Есть спец проги для бекапа 1С.
Что для тебя меньше проблем то и выбирай.
В организации есть акроникс, я его и юзаю, хотя дополнительно делаю архив раром.
.. я полностью согласен с Alan2006, что рар - это полный Бред!.. в этом случае.!! Многое иногда не поднимается.., .. есть иногда (% в 17-25 ти) ошибки.
На мой взгляд, .. есть бОлее! надежные проги, чем акронис,.. правда, не настолько может и удобные для "пользователя" ,... но для админа, - прекрасно подходят. Я имею ввиду Ghost. (.. есть минус,.. Он бекапит раздел полностью,.. .. ну, .. и лучше это делать не в реал режиме,.. - а в режиме загрузки с Лайв_СД. ..) При обслуживании порядка 32- мелких, .. порядка 25-60 точек, .. сеточек, .. и + 3-х поболее, порядка 180-250-420 компов,.. за 6-7- лет эксплуатации, - Сбоев в восстановлении на раиды не было. Правда, .. в верс 11.0 что-то напортачили,.. в 11.0.1 подправили ошибочки глюки,.. правда, я ни разу не нарвался на неё.! ;)... Бо пользуюсь нес. иными версиями, .. которые пока, при обслуживании, не подвели в вышеуказанное время ни разу.!!
.. А вот акронис, .. при попытке восстановления, .. ( пробовал, как резервный продукт),.. сглЮчил, .. гад,.. за это время раз 5-7. Попытки использования акрониса, .. с периодом около 5-7-12-14 месяцев, .. по мере выхода более-менее нормальной по отзывам сетевиков, .. новой версии.
Хотя, у него ведь есть Очень Привлекательная возможность инкрементного бекапа...!.. Потому и пробовали,.. ;))
...
Но это по поводу полного бекапа, .. что не всегда(.. если нужно почаще..) бывает удобно.
..
Согласен с пунктами 2 и 3, .. есть проги и скрипты, .. позволяющие сделать выгрузку по расписанию, или, иные, .. тогда базы можно поднять - развернуть хоть под чем.
...
и сАмое основное.
Ведь, .. в режиме SQL-хранилища, .. - !! столько возможностей бекапа средствами самого MSSQL!! .. поставить, .. не полениться по расписанию.. :))) .. а в 2005, можно и зеркало на другом железе организовать ! :)))
.. дык, ..?? :)) чЁ надо-то еще, .. если базы на SQL-ке храняться??..
.. да статьюшек в инете, как организовать резервирование MSSQL, или как сделать зеркало,.. - если вдруг не знаете, .. то МНОГО!! :))) .. даже и с подетальной пошаговой распиской..
;) !
Я не вижу аргументов в пользу бредовости RAR'а. Alan2006 сам описал все минусы варианта архивирования средствами самОй 1Ски. У моих клиентов пользователи любят не выходить из 1С на ночь. Учитывая время, в которое ведётся архивация, работа пользователей в базе вестись не может. Это значит, что за время архивации никакие данные не будут записаны в базу. Автоматом это означает, что создаваемые архивы будут идеально цельными. Это доказывает и практика.
Ghost же или Акронис - это софтины для бэкапа всего раздела, и как было отмечено, не могут выполняться регулярно на боевом сервере в автоматическом режиме. Т.ч. как использовал я архивирование (и уже много раз восстановление) раром, так и продолжу.
Alan2006
18.05.2010, 15:59
Это значит, что за время архивации никакие данные не будут записаны в базу. Автоматом это означает, что создаваемые архивы будут идеально цельными. Это доказывает и практика.
не... я не знаю конечно, мож у меня руки кудрявые... НО при архивирровании раром у меня если спят юзвери в базе то архивирование всё равно не происходит как надо. в логах на утро можно прочитать что такие-то файлы не были заархивированы т.к. к ним нельзя получить доступ. при архивировании раром sql баз опять таки возникает вопрос с аттачем-детачем иначе сам sql не отпускает файлы БД (папка с конфой в этом случае не БД)(опять же готов поверить что я что-то не так делаю)
1с 7.7 релиз 27
при архивировании пакетным методом кстати нашёл ещё недостатки:
1. не сохраняется журнал
2. папки юзверей не сохраняются
3. в некоторых случаях сбивается ГП (системы правда в этих сбиваниях не нашёл)
да и сами 1с не рекомендуют использовать этот метод если есть альтернатива...
лично мой выбор для фс версий: рар, для sql версий - средства sql сервера + рар для папки с конфой
Я говорил в том посте о фс-версиях.
лично мой выбор для фс версий: рар, для sql версий - средства sql сервера + рар для папки с конфойСовершенно верный выбор.
а что скажете про Viritas Backup exec 10?
AlekseyP
29.10.2010, 02:07
Много баз архивировать надо, написал bat такого содержания:
Acr1.bat
set baza="c:\basa"
set archiv="c:\Archivs"
[Только зарегистрированные пользователи могут видеть ссылки]
в каталоге с этим bat положил файл list.txt содержания:
*.cdx
*.zip
*.rar
*.lck
*.exe
sc551.dbf
в bat меняю только пути к базам и запускаю по времени один за другим, и пока не подводило! :)
Добавлено через 6 минут
можно в тот же list.txt добавить исключения для каталогов для архивов на каждый день:
*\ExtDb\*
*\ExtForms\*
*\NEW_STRU\*
*\SYSLOG\*
*\USR1\*
*\USR2\*
Помогите написать батник, для резервного копирования папок. ...или может у кого готовые есть?
У меня RAR делает все копии. В воскресение полную копию, а потом только изменения. Запуск cron.
Дополнение при архивировании rar-ом с опцией включения даты в имя архива (у меня так: -ag+YYYY.MM.DD)
Можно вставлять в конец скрипта архивации, изменив переменные на свои
cut.cmd
:: Удаление файлов с расширением %EXT% в папке %TGT%, если их количество
:: превышает %LIMIT% - последних при сортировке по авфавиту
setlocal enabledelayedexpansion
set EXT=txt
set TGT=test
set LIMIT=3
set count=0
FOR /F %%a in ('dir %tgt%\*.%EXT% /b /o-n') do (
set /a count=!count!+1
if !count! GTR %limit% del /q %tgt%\%%a
)
YuriyPetroff
23.12.2010, 20:28
а что скажете про Viritas Backup exec 10?
Отличная вещь - NtBackup является суперурезанной версией ее пра-пра-правнучки. Однако стоит сей удовольствие достаточно дорого. Если отбросить в строну цену, то вещь просто изумительная, при использовании "агентов" позволяет бэкапить SQL-базы, Exchange и т.д. без остановки.
sbudniks
29.12.2010, 10:32
Приветы всем!
2. Использование проинсталлированного Acronis-а
По этому варианту опыта мало, и он отрицательный...:(
Акронис был установлен на др.сервере с W2k3se ...
В его шедулере прописана задача...
!!! Очень часто во время бэкапа сервер зависал-даже монитор был потухшим !!!
В результате я отказался от услуг ИНсаллированного Акрониса..
Ни разу не пришлось попробовать восстановиться с таких архивов..
Плюсы:
- Наличие Админа не обязательно-можно всё настроить в Шедулере;
Минусы:
- см. выше о моих зависаниях...
Правильно настроенный акронис потребляет всего 15% производительности ситемы, если конечно нет проблем с железом.
zaharovvo
11.01.2011, 17:36
Архивы создаются по маске NNNNNyyyymmdd, где
NNNNN - название архива
yyyymmdd - формат даты в виде год, месяц, день. При такой форме даты архивы упорядочены в хронологическом порядке.
Добавлено через 1 минуту
можно в тот же list.txt добавить исключения для каталогов для архивов на каждый день:
*\ExtDb\*
*\ExtForms\*
*\NEW_STRU\*
*\SYSLOG\*
*\USR1\*
*\USR2\*
Простите конечно, но зачем постоянно что-то бэкапить средствами подобными Акронис на серваке? Ну подняли вы сервер настроили службы/роли. Сделали образ из под доса и пусть себе лежит. Ведь вы каждый день сервер не перенастраиваете, чтобы его так часто бэкапить пришлось. У меня вообще серв стоит я его поднял и год уже не трогаю. Вся необходимая информация бэкапится отдельно.
sbudniks, всего 15% производительности системы? Вы сами то представляете о чем говорите? 15% производительности системы - это огромные и непозволительные издержки. К тому же во время его (акрониса) работы блокируется доступ к файловой системе и если мне нужно будет отменить задание то меня благополучно пошлёт.
Вообще я тоже для архивирования пользуюсь батниками, но я их компилирую, чтобы всякие случайные люди не могли увидеть пароль с которым был заархивирован архив.
пару вопросов: вы будете доверять образу диска слитого с RAID10? И сможете его восстановить? ваши идеи подходят для серверов с редко меняющейся информацией(проксик, к примеру)?
DmitryE777
03.04.2011, 14:26
Добавлю свои пять копеек.
Итак. Архивирование баз 1С 7.x и 8.x
Реально на сегодняшний день самый лучший и при этом самый простой вариант - БЕСПЛАТНАЯ программа "Эффектор сэйвер"
Взять её можно на Сайт программы/ ([Только зарегистрированные пользователи могут видеть ссылки])
Проверено мной в течение почти трех лет - начиная с первых версий.
Архивирует И файловый И MS SQL варианты баз 1С 7.7 и 8.х
Ставить можно и приложением и службой
За всё время - ни единого сбоя более чем на 20 серверах
Заточена специально под базы 1С - но можно использовать и просто для файлового бэкапа.
Версии есть платная и бесплатная. Бесплатной вполне хватит на 95% рабочих мест
В платной есть дополнительные "хотелки" - облегчают жизнь.
Короче, берите сами - пробуйте, пользуйтесь, и никогда больше не теряйте данные!
пару вопросов: вы будете доверять образу диска слитого с RAID10? И сможете его восстановить?
Простите, а в чём проблема образа созданного с RAID10, 50, 60... ?? Я собственно проблемы не вижу, если конечно RAID не программный.
ваши идеи подходят для серверов с редко меняющейся информацией(проксик, к примеру)?
Ну хорошо, стоит у меня сервер. На нём развернуты следующие роли:
- AD DS
- AD CS
- DNS Server
- File Services
- Terminal Services
- Hyper-V
тут же хранятся перемещаемые профили, стоит Eset RA Server, MS-SQL, MySQL и Openfire.
Не совсем понимаю про какую информацию вы говорите, но если про файловую то она на этом серваке меняется постоянно. И я считаю бесмысленным создание ежедневных образов системы.
Если же вы имеете в виду что меняются настройки сервера, то позвольте спросить какие?
Приветствую!
1. Могу порекомендовать в различных батниках использовать команду robocopy.
У нее туча различных параметров, разберетесь - потом без нее - как без рук будете :)
2. А для 1С могу предложить следующую схему всегда иметь актуальный бэкап:
Настраиваем УРБД на несколько серваков в сети, или просто в нескольких папках на разных
винтах, в назначенные задания каждые N минут запускаем обмен - и все! Имеем столько копий,
сколько нужно с актуальностью N минут. Причем пользователей выгонять не обязательно.
И в случае падения сервера, достаточно поменять пути у юзеров к папке базы на другом серваке
sshimansky
18.05.2011, 20:45
Привет всем.
Для бэкапа 1с v7.7(dbf вариант) несколько лет использую ApBackUp. Прога позволяет использовать внешние архиваторы. В сети есть лекарство. Работает как служба. Недостаток один: база 1с должна быть закрыта. А в целом работает очень неплохо.
Создайте несколько планов бэкапа (ежедневные, недельные, ручные), сохраняйте в разные каталоги и будет вам счастье.
romarker
17.10.2011, 12:03
В bat-файле необходимо использовать русский язык в именах файлов и т.д. Можна явно задать кодировкой chcp 1251, тогда все работает, но если в bat фале имеются не только пути и файлы русскими буквами тогда как быть с кодировкой? Где её указывать в начале файла или непосредственно в строке где используются русские буквы? Например:
chcp 1251 ???
rar a -m5 -agDD-MM-YY -r -x*.rar -x*.zip \\192.168.0.50\Storage\Stock\Stock_.rar D:\BASES\Stock
chcp 1251 ??? rar a -m5 -agDD-MM-YY -r -x*.rar -x*.zip \\192.168.0.50\Storage\База\База_.rar D:\BASES\База
DmitryE777
17.10.2011, 12:12
В bat-файле необходимо использовать русский язык в именах файлов и т.д.
Посмотри здесь
[Только зарегистрированные пользователи могут видеть ссылки]
romarker
17.10.2011, 12:44
Посмотри здесь
[Только зарегистрированные пользователи могут видеть ссылки]
Ответа на свой вопрос не нашел :(
DmitryE777
17.10.2011, 12:56
Тогда объясни, чего хочешь?
но если в bat фале имеются не только пути и файлы русскими буквами тогда как быть с кодировкой?
Что понимается под
"не только пути и файлы русскими буквами"?
romarker
17.10.2011, 13:42
Тогда объясни, чего хочешь?
Что понимается под
"не только пути и файлы русскими буквами"?
тоесть в файле имеються пути и файлы анг. буквами, как в примере: первая строка:
rar a -m5 -agDD-MM-YY -r -x*.rar -x*.zip \\192.168.0.50\Storage\Stock\Stock_.rar D:\BASES\Stock
вторая строка уже русские буквы:
rar a -m5 -agDD-MM-YY -r -x*.rar -x*.zip \\192.168.0.50\Storage\База\База_.rar D:\BASES\База
Где будет правильно поставить кодировку chcp 1251 в начале файла или непосредственно перед строкой в которой есть рус. буквы в имени пути и файла? Если после строки с рус. буквами, опьять идет строка с анг. буквами, нужно ли менять кодировку chcp 1251 на другую которая понимает анг. буквы?
DmitryE777
17.10.2011, 15:14
Я аж обалдел, чесслов....
Ставь Chcp в начале батника - и не забивай себе голову. Всё будет работать.
Я не зря тебе ссылку дал с примером - делай по образцу.
Как сделать бекап системы в Windows Server 2003.
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc. Перевод: zCarot