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-го уровня, а предпоследний. И все, кури бамбук - ты с кривой базой-репликой и без бекапа?


--
Дмитрий Еманов

Ответить