Hello, Sergey!
Sergey Mereutsa wrote:
Вот тут не совсем понятно. Что, можно, имея бэкап 0-го уровня (по сути
дела базу, как это уже выяснилось), и дельту 5-го уровня получить
актуальную базу на момент создания этой самой дельты?
нельзя. команда восстановления базы
nbackup -r baza.fdb b0.nbk [b1.nbk] [[b2.nbk]] [[[b3.nbk]]]
то есть 0, 0+1, 0+1+2, 0+1+2+3 и никак иначе. К примеру,
дельта 2 строится на основе 0+1. Поэтому отдельно она не может
быть восстановлена только с бэкапом 0.
кстати, в документации есть подозрительная фраза:
"Не существует формального ограничения на уровень резервной копии,
однако на практике редко имеет смысл создавать копии уровней больше 3
или 4."
я согласен что уровень 4 - это overkill, но не знаю как
nbackup обрабатывает командную строку :-)
Но тогда мне не совсем понятно, откуда nbackup при создании этой самой
5-й дельты знает, что сщбой представляет точка отсчета? Я доку по нему еще
вдумчиво
не курил, хочу понять все "на пальцах" для начала.
а он просто пишет себе в заголовок, на чем он основан. и при ресторе
пошлет тебя, если ты ему подсунешь не тот комплект файлов предыдущего
уровня.
А вот тут подробней. Пусть у нас есть бэкап базы 0 - уровня, и 2 дельты
- 1-я и 2-я. Если я накатываю 1-ю дельту на бэкап 0-го уровня - то я
имею дамп базы (полноценный??? бэкап) 1-го уровня.
нет. ты получаешь базу, которая соответствует моменту, когда был сделан
бэкап 1-го уровня. И все. Но не "дамп 1-го уровня".
Так? Т.е. "срезку
базы" на момент создания дельты 1-го уровня. В этом случае данные в
полученной базе не теряют логическую целостность?
гм, это как? :-) это ж копирование страниц.
Если данные в базе, полученной путем наката 1-й дельты на 0-й бэкап
целостны, и с базой не производилось никаких манипуляций - т.е. только
накатили и все - то почему на нее нельзя накатить 2-ю дельту?
вот это и есть мой главный вопрос :-)
Можно для чайников, коим я являюсь (прям сегодня товарищь сказал
(вернее - повторил) умную мыслю - чем больше знаешь - тем меньше
знаешь) - что есть standby-репликация?
посредством этих самых инкрементных бэкапов. Переносишь
их на другую машину, и все. Но речь идет о восстановлении
read-only базы из таких бэкапов (если инкременты применять
к бэкапу 0-го уровня).
Ну на практике это, конечно, полезно - но если мы постоянно, в любой
момент времени имеем полную базу-копию - это же сколько эти все копии
будут занимать?
ты не понял. в ib 2007 команда
gbak -d baza.ib dump.ib
при первом разе создает копию БД в dump.ib,
а второй раз пишет в dump.ib только изменения.
имитировать с nbackup это невозможно, но если бы можно было
накатывать бэкап 1-го уровня на бэкап 0-го, выглядело бы как
1 раз - nbackup -b 0 baza.fdb b0.nbk
2 раз -
nbackup -b 1 baza.fdb b1.nbk
nbackup - update b0.nbk with b1.nbk
только без лишних операций.
А в других серверах что есть полезного?
фиг знает, много чего :-)
--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34