Кто чем пользуется для автоматизации Backup? (-)
Модераторы: kdv, Alexey Kovyazin
Кто чем пользуется для автоматизации Backup? (-)
Кто какими программами пользуется для автоматизации Backup?
Особенно интересно, когда не один сервер и не одна база.
Мы - старинным BackupSheduler'ом. Несмотря на почтенный возраст, имхо, самая удобная из имеющихся. Но не хватает функциональности.
Особенно интересно, когда не один сервер и не одна база.
Мы - старинным BackupSheduler'ом. Несмотря на почтенный возраст, имхо, самая удобная из имеющихся. Но не хватает функциональности.
Тут говорили.
Я пользуюсь шедулером ос, запускающим самописный скрипт..
Я пользуюсь шедулером ос, запускающим самописный скрипт..
"Там" я был. И еще много чего видел, автоматизаторов бэкапа гораздо больше, на самом деле, и попадаются очень симпатишные, но, все равно, обязательно чего-то не хватает. Прямо хоть самим делать...Лысый писал(а):Тут говорили.
Мне интересно именно чем народ реально пользуется. А такое ощущение складывается, что народ вообще бэкап не делает или вручную запускает.
да обычными батниками делают. чего такого тебе не хватает в шедулерах?
когда не один сервер и не одна база, решать все через один шедулер - смертоубийство. я считаю что для каждой базы бэкапы надо делать отдельными bat/cmd, а при их логической взаимосвязи уже это дело объединять в "пакеты", но очень осторожно.
Если же там все сильно взаимосвязано, то опять же идея шедулера не катит, потому что необходимо выполнять массу операций в четко определенной последовательности. Что проще сделать руками (и документировать), чем пытаться все это зарядить через мифический универсальный шедулер
когда не один сервер и не одна база, решать все через один шедулер - смертоубийство. я считаю что для каждой базы бэкапы надо делать отдельными bat/cmd, а при их логической взаимосвязи уже это дело объединять в "пакеты", но очень осторожно.
Если же там все сильно взаимосвязано, то опять же идея шедулера не катит, потому что необходимо выполнять массу операций в четко определенной последовательности. Что проще сделать руками (и документировать), чем пытаться все это зарядить через мифический универсальный шедулер
Смертоубийство? Почему? Почему для каждой базы отдельными батниками?kdv писал(а):да обычными батниками делают. чего такого тебе не хватает в шедулерах?
когда не один сервер и не одна база, решать все через один шедулер - смертоубийство. я считаю что для каждой базы бэкапы надо делать отдельными bat/cmd, а при их логической взаимосвязи уже это дело объединять в "пакеты", но очень осторожно.
А в шедулерах мне не хватает такого, чтобы можно раз настроить (несложно, а не писанием батников и вспоминанием заклинаний-ключей командной строки) и забыть, а в случае проблем чтобы шедулер мне сказал об этом. Разве это из ряда вон выходящие требования?
Сейчас же в лучшем случае надо просматривать ежедневные почтовые сообщения, при наличии еще дополнительно мелких или не очень проблем. Большинству же шедулеров требуется ежедневный надзор - за местом на диске, за результатом бэкапа и т.д. Неужели больше нечем себе голову морочить?
Надо сказать, что при невероятном количестве существующих программ на все случаи жизни (это я уже не только про шедулеры бэкапа) сплошь и рядом нет программы, решающей полностью и хорошо какую-то проблему. Пример из Интербэйза - управление грантами. Я же в 99ом сам прогу писал. Сколько этих программ сейчас, в каждом универсальном интербэйзовском средстве это есть, но пользуешься и чертыхаешься периодически. Из остальной жизни пример - одним нажатием отсканировать и отправить мылом документ. Казалось бы - едва ли не к каждому сканеру такая прога прилагается. Но неудобно!!! Формат не тот, вопросы дурацкие ненужные задаются...
То, что я насобирал про шедулеры, какие есть и что умеют, стоит прислать для сайта ibase? Тогда выберу время - причешу и пришлю.
Выкладываю свой *.cmd
Выкладываю свой *.cmd. На виндовском сервере он выполняется по расписаию, ночью каждую неделю. Вызывается обычным системным планировщиком.
Когда я сидел под линуксом аналогичный *.sh скрипт запускался cron-ом
Аналогично ежедневно ночью просто делается бэкап и копия в мой домашний каталог. Только в скрипте вместо восстановления стоит сборка мусора и архивация
(с)DSKalugin
Когда я сидел под линуксом аналогичный *.sh скрипт запускался cron-ом
Код: Выделить всё
net send admin "Starting Backup DataBase"
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -shut -force 0 C:\ShopDB\isautostar.fdb -user "DSKALUGIN" -password "IBExpert"
net stop "Firebird Server - DefaultInstance"
del E:\Builder\cp_isautostar.fdb
copy C:\ShopDB\isautostar.fdb E:\Builder\cp_isautostar.fdb
net send admin "copying - ok"
net start "Firebird Server - DefaultInstance"
net start "Firebird Guardian - DefaultInstance"
"C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe" -B -L -T -user "DSKALUGIN" -password "IBExpert" C:\ShopDB\isautostar.fdb E:\Builder\bck_isautostar.gbk
net send admin "backup - ok"
"C:\Program Files\Firebird\Firebird_1_5\bin\gbak.exe" -R -P 4096 -user "DSKALUGIN" -password "IBExpert" E:\Builder\bck_isautostar.gbk C:\ShopDB\isautostar.fdb
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -online C:\ShopDB\isautostar.fdb -user "DSKALUGIN" -password "IBExpert"
net send admin "restore - ok"
Код: Выделить всё
"C:\Program Files\Firebird\Firebird_1_5\bin\gfix.exe" -sweep C:\ShopDB\isautostar.fdb -user "DSKALUGIN" -password "IBExpert"
net send * "sweep - ok"
"C:\Program Files\WinRAR\WinRAR.exe" A -o+ -tl -ep -ep1 -m3 E:\Builder\cp_isautostar.rar E:\Builder\cp_isautostar.fdb
Моя программа для хранения копий БД за неделю
Утром я прихожу на работу, включаю свой комп. А из автозагрузки стартует моя программа. Которая забирает ежедневные архивы, подписывает соответственно дням недели и складываем мне в локальную папку. Таким образом получается архив копий БД за всю неделю
Дарю, пользуйтесь все кому не лень
(с) DSKalugin
Код: Выделить всё
program DBRouter; {$IOCHECKS OFF}
uses Windows, SysUtils, ShellApi; {$R *.res}
const dest='C:\DBRestore\'; //Куда складывать архивы
srcDB='R:\copy_U96.rar'; //откедава брать файлы
RusDayOfWeek: array [1..7] of string[11]=('Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятница','Суббота');
type
TLogRec = record
Week: Char;
CopyDate: string[15];
Status: string[5];
end;
var pref:char;
OK:Boolean;
LogFile: file of TLogRec;
LogRec : TLogRec;
destDB:AnsiString;
function ProgressCopyFile(const AFromDirectory, AToDirectory: AnsiString):Boolean;
var
SHFileOpStruct: TSHFileOpStruct;
FromDir: PChar;
ToDir: PChar;
begin
GetMem(FromDir, Length(AFromDirectory)+2);
try
GetMem(ToDir, Length(AToDirectory)+2);
try
FillChar(FromDir^, Length(AFromDirectory)+2, 0);
FillChar(ToDir^, Length(AToDirectory)+2, 0);
StrCopy(FromDir, PChar(AFromDirectory));
StrCopy(ToDir, PChar(AToDirectory));
with SHFileOpStruct do
begin
Wnd := 0;
wFunc := FO_COPY;
pFrom := FromDir;
pTo := ToDir;
fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted := True;
hNameMappings := nil;
lpszProgressTitle := nil;
Result:=(SHFileOperation(SHFileOpStruct)=0) ;
end;
finally
FreeMem(ToDir, Length(AToDirectory)+2);
end;
finally
FreeMem(FromDir, Length(AFromDirectory)+2);
end;
end;
begin
AssignFile(LogFile,dest+'GDBRoute.log'); // Log-файл
//Была-ли уже сегодня копия
Reset(LogFile);
Read(LogFile, LogRec);
CloseFile(LogFile);
//№ дня недели. В англ ОС неделя начинается с воскресенья
pref:=IntToStr(DayOfWeek(Date))[1];
//если уже сегодня копировалось и нормально, то - нахер!
if (pref=LogRec.Week)and(LogRec.Status='OK ') then Exit;
destDB:=dest+RusDayOfWeek[DayOfWeek(Date)]+'.rar';
DeleteFile(destDB);
DeleteFile('C:\DBRestore\isa.rar');
OK:=ProgressCopyFile('R:\cp_isautostar.rar','C:\DBRestore\isa.rar');
OK:=OK and ProgressCopyFile(srcDB,destDB);
LogRec.Week:=pref;
LogRec.CopyDate:=' '+DateToStr(Date);
if OK then LogRec.Status:='OK ' else LogRec.Status:='Error';
Rewrite(LogFile);
Write(LogFile, LogRec);
CloseFile(LogFile);
//Писькает, коли глюкануло (тока на WinNT)
if not OK then begin
Windows.Beep(1024,3000);
MessageBox(0,'Ошибка при закачке резервных копий','Резервирование БД',MB_ICONERROR)
end;
end.
(с) DSKalugin