Страница 1 из 1
Помогите бекапу вшить в прогу
Добавлено: 01 сен 2006, 11:06
Марина
Добрый день!
Я хочу бекапу вшить в прогу (скажем чтоб на сервер бекапился и еще на какой-нибудь комп в сетке). С кодом помогите пожалуйста )))
Добавлено: 01 сен 2006, 11:16
CyberMax
Марина, если под словами
скажем чтоб на сервер бекапился и еще на какой-нибудь комп в сетке
ты имеешь ввиду запуск процесса бэкапа базы, то это делается легко: через ShellExecute запускаешь gbak с необходимыми ключами и все. Если надо просто делать бэкап по расписанию - юзай шедулеры.
P.S. Про ShellExecute не спрашивай - поищи сама через яндекс.
Re: Помогите бекапу вшить в прогу
Добавлено: 01 сен 2006, 11:18
stix-s
Марина писал(а):Добрый день!
Я хочу бекапу вшить в прогу (скажем чтоб на сервер бекапился и еще на какой-нибудь комп в сетке). С кодом помогите пожалуйста )))
Если резервную копии по сетке гонять, то придется gbak использовать, либо сторонние утилиты, которые его же используют
http://www.ibsafe.com/
программа вроде нормальная, но хелпа по ней - 0
Re: Помогите бекапу вшить в прогу
Добавлено: 01 сен 2006, 12:52
Марина
а через винду- назначенные задания и bat файл покатит? чего как делать то вообще

Добавлено: 01 сен 2006, 12:55
WildSery
Конечно же покатит. Замечательно покатит.
Главное, назад не ресторить без предварительных действий по выгону пользователей, создания с другим именем и последующим переименованием, но это уже для любой системы.
Добавлено: 01 сен 2006, 13:05
kdv
дополнительно читай
www.ibase.ru/devinfo/ibx.htm про Services API.
чего как делать то вообще
сначала надо определиться, зачем ты делаешь бэкап, как часто тебе надо его делать, и автоматически, вручную, из приложения или нет, и т.п.
Выбрать нужное. Сделать.
Добавлено: 07 сен 2006, 12:45
Марина
я тут свой экзешник написала который бекапит мою базу данных по 5-ти папкам, по кругу, т.е. новое затирает предыдущее. Я думаю, если потом понадобиться восстанавливать бд, то бекап последний можно будет найти по дате создания файла. и все это безобразие через Windows назначенные задания.
Добавлено: 07 сен 2006, 13:11
WildSery
Это можно было сделать и обычным бат-файлом с помощью проверенно работающего gbak.
Добавлено: 07 сен 2006, 13:58
CyberMax
А как же архивные копии бэкапа?

. Например, в бухгалтерской программе может сальдовка слететь. Как потом причину искать будете?
Обычно бэкапы архивируеют (rar, zip), именуют с использованием даты создания и сохраняют в папочку на другом компьютере. По мере накопления архивов, их пишут на диски. Диски складывают в стопку и убирают в шкапчик. Где эти диски и хранятся неопределенно долго.
Добавлено: 07 сен 2006, 14:22
WildSery
2 CyberMax:
До очевидного ещё додуматься надо. С кровью и боем. Это проктология сразу понятна и доступна.
Добавлено: 10 сен 2006, 20:52
Марина
На диски записывать и в шкафчик.... интересно.... вообще правильно конечно! только ведь все прейдется ручками делать... А архивировать бд, это можно в экзешник или в бат файл запихнуть или тоже ручками?
Добавлено: 11 сен 2006, 10:18
Ivan_Pisarevsky
Марина писал(а):На диски записывать и в шкафчик.... интересно.... вообще правильно конечно! только ведь все прейдется ручками делать... А архивировать бд, это можно в экзешник или в бат файл запихнуть или тоже ручками?
Это не интересно, это муторно, но единственно правильно. Если хочется все автоматизировать: на другую плащадку, относительно боевого сервера, ставиться бэкап-сервер оборудованный стримером-автолоадером. И вуаля, никакого рукоприкладства, только деньгов эдиноразово прилично стОит, некисло, я б сказал, стОит.
У меня, например, сервер еженощно делает копии внутря себя, потом в обед эти копии утягиваются на мой дэсктоп и рассовываются по папочкам с историей, на рабочем столе ярлычек для неро проекта, чтоб нацарапать все это дело еще и на компактик, правда на компактик даже пожатое раром лезет со скрипом, пожатой инфы чуть больше 4 гиг. Если стример пробить так и не удастся, придется двухслойными болванками запасаться. Примерно так и живем, компактиков скопилось уж изрядно, но ими иногда пользоваться приходись, бывали случаи когда бэкап приходилось поднимать, пока такая схема не подводила. Все прописано автоматом, кроме, разумеется, засовывания-высовывания компактика.
Добавлено: 12 сен 2006, 00:12
Klyk
Ivan_Pisarevsky писал(а):У меня, например, сервер еженощно делает копии внутря себя, потом в обед эти копии утягиваются на мой дэсктоп и рассовываются по папочкам с историей, на рабочем столе ярлычек для неро проекта, чтоб нацарапать все это дело еще и на компактик, правда на компактик даже пожатое раром лезет со скрипом, пожатой инфы чуть больше 4 гиг. Если стример пробить так и не удастся, придется двухслойными болванками запасаться. Примерно так и живем, компактиков скопилось уж изрядно, но ими иногда пользоваться приходись, бывали случаи когда бэкап приходилось поднимать, пока такая схема не подводила. Все прописано автоматом, кроме, разумеется, засовывания-высовывания компактика.
почти аналогично. Ночью, но не на сервере запускается, а на моей рабочей машине и сразу архивируется раром... название файлика - дата бекапа.
примерно раз в неделю на dvd и в шкапчик.
Добавлено: 12 сен 2006, 09:01
Quasar
WildSery писал(а):Главное, назад не ресторить без предварительных действий по выгону пользователей, создания с другим именем и последующим переименованием, но это уже для любой системы.
Насколько я понимаю, после создания бэкапа его неплохо бы для теста ресторить, а то вдруг не удастся. Практикуется ли
автоматическое восстановление только что созданного бэкапа с целью его проверки? Если да, то как это сделать с помощью батника?
Добавлено: 12 сен 2006, 09:44
Dimitry Sibiryakov
Да все так же - через gbak и анализ его вывода/кода возврата. Главное - не пытаться ресторить поверх существующей базы.
Добавлено: 12 сен 2006, 12:05
WildSery
Quasar писал(а):Практикуется ли автоматическое восстановление только что созданного бэкапа с целью его проверки? Если да, то как это сделать с помощью батника?
Только автоматическое. Не вижу смысла тут руками что-то делать.
У меня используется ещё и другой вариант, "оперативный", без создания собственно файла бэкапа:
Код: Выделить всё
if gbak -b -g -user $gusr -password $gpsw -v -y /Log/Backup/$1.bk.run /db/$1/db.fdb stdout | gbak -c -page_size 8192 -user $gusr -password $gpsw -v -y /Log/Backup/$1.rs.run stdin /db/$1/db.rs; then
{
mv -f /db/$1/db.rs /db/$1/db.fdb
mv -f /Log/Backup/$1.bk.run /Log/Backup/$1.bk
mv -f /Log/Backup/$1.rs.run /Log/Backup/$1.rs
echo OK Backup-Restor /db/$1/db.fdb
}
else
{
rm -f /db/$1/db.rs
mv -f /Log/Backup/$1.bk.run /Log/Backup/$1.bk.err
mv -f /Log/Backup/$1.rs.run /Log/Backup/$1.rs.err
echo ERROR Backup-Restor /db/$1/db.fdb
}
fi
где $1 имя базы (их много)