Dmitri Kuzmenko wrote:
Да и вообще, собственно. Откуда в копии базы берется это флаг, locked? А очень просто!!! Nbackup БЛОКИРУЕТ базу, затем копирует ее, а потом разблокирует. Вот поэтому nbackup 0-го уровня и получается с флагом lock! Я угадал? Понятно что это как-бы следует из механизма работы nbackup. Но это же надо в доке написать.
Напишем.
ничто. она и должна быть такая.
Кому должна?
т.е. см. выше. nbackup после создания уровня 0 должен 1. убрать lock с дампа 2. поставить флаг readonly.
А теперь представь, что ты копируешь базу средствами ОС. Она тоже должна получиться волшебным образом разлоченной и ридонли?
под "должен" я имею в виду, что так было бы логично. и можно было бы к этому дампу коннектиться.
Нафуя она нужна в режиме ридонли?
И можно эту базу использовать как готовую базу. А не морочить людям голову :-)
Бекап не есть реплика базы, сколько можно повторять. Не надо подменять понятия.
т.е. nbackup-у все равно, лоченый "дамп" используется 1-го уровня, или нет? А если я открою его, поменяю - и что тогда получится? по идее, битая база.Схожу не скажу, ибо не помню. Проверишь ?да даже проверять не буду. Если nbackup при ресторе сначала копирует страницы из одного файла в другой, а потом накатывает инкременты, то так оно и будет - или все изменения затрутся инкрементами, или незатертые изменения сделают базу битой.
Чушь, не будет такого. Ты даже не хочешь проверять, а уже утверждаешь о битой базе.
Влад. ты разработчик сервера. Ты его не пользуешь. Ты не понимаешь, как люди работают с 20-30-100 гиговыми базами, и чего им надо. Я хоть и с трудом, но понимаю. И пытаюсь вам, разработчикам, транслировать то, что хотят люди.
Ты забываешь о том, что данная фича делалась по заказу как раз клиента с очень большими базами, а не от балды нами, тупыми разработчиками. И оного клиента результат вполне удовлетворяет. Твои же клиенты хотят из бекапа сделать репликацию, а ты выдаешь это за главное требование к бекапу. Я против этого возражал и буду возражать.
Задача. Обеспечить максимально быстрое и эффективное восстановление базы из последнего инкремента НА ДРУГОМ СЕРВЕРЕ.
Задача рестора - обеспечить восстановление, точка. Быстрое/эффективное - это бонусы.
Сейчас мы имеем что. Мы не можем сначала закинуть на 2-ой сервер бэкап 0-го уровня, а потом передавать туда ТОЛЬКО инкременты.
Можем.
Причем, делать это надо регулярно. Например, база имеет размер 30 гиг. Инкремент 1-го уровня 5 гиг. И что получается? А получается, что имея на 2-ом серваке уже бэкап 0-го уровня, мы не можем на него накатить 5 гиг изменений. Мы должны прочитать 30+5 гиг и создать из них 30гиговую базу. Каждый раз когда получаем новый инкремент с 1-го сервера. И откуда возникает такая идея - попробуй скопировать 30 гиг с диска на диск. Сколько это займет времени? А передать 30 гиг с сервера на другой сервер?
А похерить бекап ты считаешь нормальным? Накатил ты сдуру на 0-й уровень не последний бекап 1-го уровня, а предпоследний. И все, кури бамбук - ты с кривой базой-репликой и без бекапа?
-- Дмитрий Еманов

