Вопрос по сертификации... полные непонятки.

SamMan
Дата: 16.09.2006 20:35:09
Hi, ALL!

Готовлюсь к экзамену MCTS 70-431 по книжке MCTS 70-431: Implementing and Maintaining Microsoft® SQL Server 2005 издательства Que. В ней пара наборов(каждый ~30штук) пробных вопросов с ответами. Один из:
из книжки
23. You are moving a database to a new server. The database is used by a data entry application. You need to minimize the amount of time the application is unavailable. What should you do?

A. Set up transactional replication between the servers.

B. Move the data files and provide the new location by using ALTER DATABASE.

C. Back up the database. Restore the database to the new server.

D. Detach the current database. Copy the data files to the new server. Attach the files.

E. Move the database to the new server by using the SMO method in the Copy Database Wizard.


Далее правильный ответ - D(???) и объяснение:

та же книжка
Answer D is correct. The fastest way to move a database to another server it to simply take the database offline and transfer the files to the new server. When it is on the new server, you can use the ATTACH method to install the database in the new environment. All-in-all, the process takes only a minimal time over and above the actual file transfer time. Transactional replication does not move the database.


Вот сижу - думаю... Наверно совсем тупой, но: как только мы де-аттачнули оригинальную базу наше data entry application(из условия) тут же скопытилось - факт? Далее, допустим стали мы сливать де-аттачнутую базу на новый серв. Где в условиях сказано, что у нас гигабитная оптоволоконка к нему, а? Может у нас скорость слива - 2Kb/sec. А вся база - 2гектара, допустим. Это ничего, если все "полежит" пока все не сольется с такой вот скоростью?
В тоже время - рассмотрим ответ E. В BOL, английским по белому:
BOL
The Copy Database Wizard lets you move or copy databases and their objects easily from one server to another, with no server downtime.


Вот и думаю - мож я условие задачи не внимательно читаю? Прочтите вы, плииз....
аааааа1
Дата: 16.09.2006 20:53:35
а что за SMO метод может этои есть подковырка делающая Е не правильным ответом?
Критик
Дата: 16.09.2006 20:53:38
Ответ D точно гарантирует целостность данных, а ответ Е... не пробывал, но сомнительно. Вобщем-то, логически рассуждая, вариант D предпочтительней.

PS ваш аргемент про 2Kb/sec не катит, так как и в варианте Е эта скорость может фигурировать)
Anatoly Podgoretsky
Дата: 16.09.2006 21:01:02
Время надо считать от момента начала процесса до готовности, конечно вариант D быстрее.
Glory
Дата: 16.09.2006 21:05:59
SamMan
Вот сижу - думаю... Наверно совсем тупой, но: как только мы де-аттачнули оригинальную базу наше data entry application(из условия) тут же скопытилось - факт?

"need to minimize the amount of time" надо переводить как "сделать время простоя наименьшим". Но не сказано, что не должно быть простоя вообще.
Раз это тест, то если бы хотели проверить ваши знания о переносе данных вообще без остановки приложения, то и текст вопроса был бы другим

SamMan
Где в условиях сказано, что у нас гигабитная оптоволоконка к нему, а? Может у нас скорость слива - 2Kb/sec. А вся база - 2гектара, допустим. Это ничего, если все "полежит" пока все не сольется с такой вот скоростью?

Вот раз в условиях задачи не сказано про то, что копирование будет идти через сеть, то и не надо выдумаывать новую подзадачу и высчитывать скрость копирования. (На крайний случай подумайте что базу сначала можно просто скопировать на локальный диск)
Miha
Дата: 17.09.2006 00:29:47
из книжки
The database is used by a data entry application.

data entry - это ключевая фраза. очевидно, процесс д.б. строго синхронным: выключаем клиентов, переносим бд, включаем клиентов. иначе - либо данные пропадут, либо коллизии при репликации.
А в варианте Е не сказано, что мы запрещаем клиентам коннекты (например, переводим базу в single_user), но это необходимо сделать, если мы хотим использовать этот вариант.
SamMan
Дата: 17.09.2006 13:30:24
Критик
Ответ D точно гарантирует целостность данных, а ответ Е... не пробывал, но сомнительно. Вобщем-то, логически рассуждая, вариант D предпочтительней.

PS ваш аргемент про 2Kb/sec не катит, так как и в варианте Е эта скорость может фигурировать)


Безусловно, но фишка в том, что в случае E, пусть даже перелив идет дооолго, пользовательский аппликейшен продолжает юзать старую базу(ту, что переливается). По крайней мере я так понял основную фишку CopyWizard-а: сливается оригинальная база+"доливаются" изменения произошедшие в течении перелива. Отсюда и "no downtime". Без такой фичи даун неизбежен, а заявлено однозначно - NO! Т.е. ни полсекунды простоя. В случае D - аппликейшен все это[перелива] время лежит.
SamMan
Дата: 17.09.2006 13:32:39
Anatoly Podgoretsky
Время надо считать от момента начала процесса до готовности, конечно вариант D быстрее.


А быстро - не нужно(по условию). Нужно, что бы аппликейшен ввода "лежал" по минимуму. А время перелива по условию не ограничено.
SamMan
Дата: 17.09.2006 13:38:21
Glory
SamMan
Вот сижу - думаю... Наверно совсем тупой, но: как только мы де-аттачнули оригинальную базу наше data entry application(из условия) тут же скопытилось - факт?

"need to minimize the amount of time" надо переводить как "сделать время простоя наименьшим". Но не сказано, что не должно быть простоя вообще.


Безусловно. НО! Любое решение при заданных условиях предлагающее время простоя=0сек. должно быть приоритетным по сравнению с решением со временем простоя 0.5сек. Т.е. цель обозначена четко: попробовать свести время простоя приложения сначала к 0, не получится - к 0.5, не получится - к 1 и т.д.
Anatoly Podgoretsky
Дата: 17.09.2006 13:43:01
Я понимаю задание так, в момент X прекращается пользование старой базы и после операции с той же самой точки продолжается полное использование новой базой. Операция D как раз и обеспечивает этот минимум.
Прекратили - перелили - запустили клиента с нового места, без потери контекста.