Вопрос разработчикам и причастным :) по Nbackup

Методы, механизмы и инструментарий для репликации

Модератор: kdv

Ответить
Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Вопрос разработчикам и причастным :) по Nbackup

Сообщение Kotъ-Begemotъ » 10 мар 2008, 05:45

Читаю мануал по nbackup и в разделе "Несвязанные ссылки" вижу:
"... Более того, каждый резервный файл уровня 1 и выше содержит идентификатор того файла, на котором он основан..."

За-ме-ча-тель-но! :) Но тогда, позвольте спросить, за каким мне надо указывать в команде восстановления nbackup ВСЕ файлы бекапов? ВСЮ цепочку?!? Если каждый содержит ссылку на предыдущий?!? Не логичнее бы было указать только ОДИН - а именно ПОСЛЕДНИЙ файл инкрементальной копии, до которого я хочу восстановиться? А предыдущие nbackup уж сам найдёт при наличии-то идентификаторов? Тогда можно вообще не париться - инкрементальная ли это копия или нет - просто:

Код: Выделить всё

nbackup -R WorkBase.fdb 05022008163052.nbk
и пусть nbackup сам и разбирается в этой цепочке, благо все возможности у него для этого есть... Тогда можно просто найти последний бекап по имени (в котором полная дата-время) и указать его в качестве цели восстановления, не заботясь о том, какая там до него цепочка была, и какого уровня там этот бекап! Ведь приложению не так просто разобраться в том, какой это бэкап, и какую цепочку построить! Ну да, можно именовать по-другому полные и инкрементальные бекапы, но ведь в механизме уже заложен идентификатор-ссылка на предыдущий файл? Так почему его не использовать?!?

hvlad
Разработчик Firebird
Сообщения: 1244
Зарегистрирован: 21 мар 2005, 10:48

Сообщение hvlad » 10 мар 2008, 11:54

Идентификатор файла (uuid) не есть сам файл, который, кстати не обязан лежать на одном и том же месте всегда.

Идентификатор служит для проверки корректности цепочки файлов которые подаются на вход nbackup'у, чтобы не получить кашу вместо восстановленной БД

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

Сообщение kdv » 10 мар 2008, 12:54

добавлю, что
05022008163052
корректное именование файлов как минимум по дате не является секретом. Aайл должен именоваться так, чтобы его имя корректно сортировалось как строка. А это значит, что дата в имени файла должна быть указана в японском формате - год, месяц, день.
Т.е. не 05022008, а 20080205, и идти после например номера уровня инк. бэкапа. Например, в IB2007 если включена авто-дата имени архива журнала, то имя файла формируется так:
<YYYY>_<MM>_DD>T<hh>_<mm>_ssZ.<sequence-number>.journal

для FB номер инк. бэкапа в таком виде лучше указывать после даты. например инк. файл 2-го уровня
mydb_20080502_13_25_2.nbk

тогда все бэкапы за дату будут по порядку. можно наоборот, перед датой, смотря что нужно.
Ну да, можно именовать по-другому полные и инкрементальные бекапы
сначала выбираешь херовую систему именования бэкапов, а потом хочешь свалить проблему на FB? :)

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

Сообщение WildSery » 10 мар 2008, 13:41

Дело даже не в именовании.
Он не понял, что идентификатор - это одно, а искать по всем разделам все файлы (ведь неизвестно название этого "предыдущего"), заглядывать внутрь и искать этот идентификатор (а ещё не дай бог совпадёт с какой-нибудь посторонней сранью) - это, конечно же, то, чем должен FB заниматься.

Ответить