Страница 1 из 1

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

Добавлено: 10 мар 2008, 05:45
Kotъ-Begemotъ
Читаю мануал по nbackup и в разделе "Несвязанные ссылки" вижу:
"... Более того, каждый резервный файл уровня 1 и выше содержит идентификатор того файла, на котором он основан..."

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

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

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

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

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

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

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

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

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