Помогите бекапу вшить в прогу

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Марина
Сообщения: 32
Зарегистрирован: 14 дек 2005, 13:08

Помогите бекапу вшить в прогу

Сообщение Марина » 01 сен 2006, 11:06

Добрый день!
Я хочу бекапу вшить в прогу (скажем чтоб на сервер бекапился и еще на какой-нибудь комп в сетке). С кодом помогите пожалуйста )))

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 01 сен 2006, 11:16

Марина, если под словами
скажем чтоб на сервер бекапился и еще на какой-нибудь комп в сетке
ты имеешь ввиду запуск процесса бэкапа базы, то это делается легко: через ShellExecute запускаешь gbak с необходимыми ключами и все. Если надо просто делать бэкап по расписанию - юзай шедулеры.
P.S. Про ShellExecute не спрашивай - поищи сама через яндекс.
Последний раз редактировалось CyberMax 01 сен 2006, 11:20, всего редактировалось 1 раз.

stix-s
Заслуженный разработчик
Сообщения: 557
Зарегистрирован: 13 дек 2005, 11:52

Re: Помогите бекапу вшить в прогу

Сообщение stix-s » 01 сен 2006, 11:18

Марина писал(а):Добрый день!
Я хочу бекапу вшить в прогу (скажем чтоб на сервер бекапился и еще на какой-нибудь комп в сетке). С кодом помогите пожалуйста )))
Если резервную копии по сетке гонять, то придется gbak использовать, либо сторонние утилиты, которые его же используют :)
http://www.ibsafe.com/
программа вроде нормальная, но хелпа по ней - 0

Марина
Сообщения: 32
Зарегистрирован: 14 дек 2005, 13:08

Re: Помогите бекапу вшить в прогу

Сообщение Марина » 01 сен 2006, 12:52

а через винду- назначенные задания и bat файл покатит? чего как делать то вообще :shock:

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 01 сен 2006, 12:55

Конечно же покатит. Замечательно покатит.
Главное, назад не ресторить без предварительных действий по выгону пользователей, создания с другим именем и последующим переименованием, но это уже для любой системы.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 01 сен 2006, 13:05

дополнительно читай www.ibase.ru/devinfo/ibx.htm про Services API.
чего как делать то вообще
сначала надо определиться, зачем ты делаешь бэкап, как часто тебе надо его делать, и автоматически, вручную, из приложения или нет, и т.п.
Выбрать нужное. Сделать.

Марина
Сообщения: 32
Зарегистрирован: 14 дек 2005, 13:08

Сообщение Марина » 07 сен 2006, 12:45

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

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 07 сен 2006, 13:11

Это можно было сделать и обычным бат-файлом с помощью проверенно работающего gbak.

CyberMax
Заслуженный разработчик
Сообщения: 638
Зарегистрирован: 31 янв 2006, 09:05

Сообщение CyberMax » 07 сен 2006, 13:58

А как же архивные копии бэкапа? :shock:. Например, в бухгалтерской программе может сальдовка слететь. Как потом причину искать будете?
Обычно бэкапы архивируеют (rar, zip), именуют с использованием даты создания и сохраняют в папочку на другом компьютере. По мере накопления архивов, их пишут на диски. Диски складывают в стопку и убирают в шкапчик. Где эти диски и хранятся неопределенно долго.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 07 сен 2006, 14:22

2 CyberMax:
До очевидного ещё додуматься надо. С кровью и боем. Это проктология сразу понятна и доступна.

Марина
Сообщения: 32
Зарегистрирован: 14 дек 2005, 13:08

Сообщение Марина » 10 сен 2006, 20:52

На диски записывать и в шкафчик.... интересно.... вообще правильно конечно! только ведь все прейдется ручками делать... А архивировать бд, это можно в экзешник или в бат файл запихнуть или тоже ручками?

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 11 сен 2006, 10:18

Марина писал(а):На диски записывать и в шкафчик.... интересно.... вообще правильно конечно! только ведь все прейдется ручками делать... А архивировать бд, это можно в экзешник или в бат файл запихнуть или тоже ручками?
Это не интересно, это муторно, но единственно правильно. Если хочется все автоматизировать: на другую плащадку, относительно боевого сервера, ставиться бэкап-сервер оборудованный стримером-автолоадером. И вуаля, никакого рукоприкладства, только деньгов эдиноразово прилично стОит, некисло, я б сказал, стОит.

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

Klyk
Сообщения: 100
Зарегистрирован: 26 окт 2004, 23:28

Сообщение Klyk » 12 сен 2006, 00:12

Ivan_Pisarevsky писал(а):У меня, например, сервер еженощно делает копии внутря себя, потом в обед эти копии утягиваются на мой дэсктоп и рассовываются по папочкам с историей, на рабочем столе ярлычек для неро проекта, чтоб нацарапать все это дело еще и на компактик, правда на компактик даже пожатое раром лезет со скрипом, пожатой инфы чуть больше 4 гиг. Если стример пробить так и не удастся, придется двухслойными болванками запасаться. Примерно так и живем, компактиков скопилось уж изрядно, но ими иногда пользоваться приходись, бывали случаи когда бэкап приходилось поднимать, пока такая схема не подводила. Все прописано автоматом, кроме, разумеется, засовывания-высовывания компактика.
почти аналогично. Ночью, но не на сервере запускается, а на моей рабочей машине и сразу архивируется раром... название файлика - дата бекапа.

примерно раз в неделю на dvd и в шкапчик.

Quasar
Сообщения: 61
Зарегистрирован: 23 дек 2005, 10:26

Сообщение Quasar » 12 сен 2006, 09:01

WildSery писал(а):Главное, назад не ресторить без предварительных действий по выгону пользователей, создания с другим именем и последующим переименованием, но это уже для любой системы.
Насколько я понимаю, после создания бэкапа его неплохо бы для теста ресторить, а то вдруг не удастся. Практикуется ли автоматическое восстановление только что созданного бэкапа с целью его проверки? Если да, то как это сделать с помощью батника?

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 12 сен 2006, 09:44

Да все так же - через gbak и анализ его вывода/кода возврата. Главное - не пытаться ресторить поверх существующей базы.

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 12 сен 2006, 12:05

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 имя базы (их много)

Ответить