Microsoft SQL Server 2005
Продолжаем знакомство с новинками технологий компании Microsoft. В этом номере мы затронем вопросы, связанные с переходом на новую версию СУБД Microsoft, SQL Server 2005.
одготовка к переходу на SQL Server 2005 должна включать изучение и понимание базовых принципов, которые помогут принять верные решения и сделать процесс перехода успешным. Мы начнем с обсуждения планирования перехода на SQL Server 2005 рассмотрим вопросы перехода для каждого компонента SQL Server 2005, а также выясним, каким образом новая утилита SQL Server 2005 Upgrade Advisor может помочь в обнаружении моментов, требующих особого внимания. Затем мы более подробно рассмотрим каждый компонент SQL Server 2005 от ядра базы данных до средств интеграции (Integration Services) и аналитических сервисов (Analysis Services), включая сервисы отчетов (Reporting Services).
Механизмы обновления
режде чем обратиться к основной теме статьи, следует отметить, что переход на SQL Server 2005 (обновление, update) и миграция это два разных процесса, каждый из которых требует соответствующего планирования, подходов и использования тех или иных средств SQL Server 2005.
Обновление это автоматический процесс, в ходе которого утилита Setup переносит старый экземпляр SQL Server на новый, сохраняя при этом данные и метаданные старого экземпляра. В конце обновления старый экземпляр становится недоступен, а новый экземпляр получает имя старого.
Миграция это ручной процесс, в ходе которого администратор базы данных (DBA) устанавливает новую версию SQL Server 2005 и копирует метаданные и данные из старого экземпляра в новый. Миграция обеспечивает доступ к двум экземплярам системы, позволяя тем самым проводить дополнительные проверки и сравнения старой и новой систем. В процессе миграции и старая и новая системы полностью доступны до полного завершения переноса на новую систему. После этого все приложения переключаются на доступ к новой системе, а старая система удаляется вручную.
Механизмы обновления для основных компонентов SQL Server 2005
Несмотря на то что в ядре базы данных появилось множество новых функций, обновление с SQL Server 7.0/2000 на SQL Server 2005 можно провести либо утилитой Setup, либо выполнив процедуру восстановления базы данных, либо путем команд отсоединения/подсоединения (attach/re-attach). Переход с Data Transformation Services (DTS) на SQL Server Integration Services (SSIS) требует миграции, в ходе которой нужно следовать рекомендациям специального средства миграции, облегчающего переход на новую архитектуру.
В таблице показаны механизмы обновления для основных компонентов SQL Server 2005.
Опыт, накопленный Microsoft при работе над новым продуктом и при оказании помощи в переносе приложений компаний-партнеров и компаний, участвовавших в программе раннего ознакомления с SQL Server 2005, обобщен в специальной утилите SQL Server 2005 Upgrade Advisor, доступной для загрузки с сайта компании (http://www.microsoft.com/sql).
Данная утилита анализирует конфигурацию существующего сервера баз данных, сервисов и приложений и создает отчет, где указываются изменения в SQL Server 2005, которые могут повлиять на процесс обновления. К таким изменениям относятся расширения в области безопасности, улучшенная поддержка стандарта языка SQL и ряд архитектурных изменений. В рамках отчета Upgrade Advisor предоставляет ссылки на соответствующие разделы документации, в которых подробно описаны те или иные изменения и шаги, требуемые для успешного завершения процесса обновления. Upgrade Advisor обеспечивает поддержку при обновлении ядра базы данных, аналитических сервисов, интеграционных сервисов, сервисов отчетов и нотификационных сервисов.
Утилита Upgrade Advisor построена на основе списка правил (описанных в специальном XML-файле, который может расширяться и обновляться по мере сбора дополнительной информации, см. упомянутый выше сайт Microsoft), применяемых к компонентам SQL Server (это может быть как локальный, так и удаленный сервер), которые пользователь выбирает при запуске утилиты. На основании выбора указываются значения по умолчанию для каждого компонента. Например, для ядра базы данных можно выбрать либо все базы на сервере, либо только те, которые представляют интерес для обновления. Upgrade Advisor анализирует все хранимые процедуры и программы на языке T-SQL при необходимости можно указать местоположение TRC-файла (содержащего трассировочные данные), в котором отражены реальные T-SQL-запросы к базам данных. Это необходимо в тех случаях, когда приложения пользователя содержат встроенные T-SQL-запросы. Также можно провести анализ DTS-пакетов, которые могут храниться в файлах или на указанном экземпляре SQL-сервера, и выбрать экземпляр нотификационных сервисов.
После завершения анализа пользователь получает список проблем, которые могут возникнуть при переходе на SQL Server 2005. В отчете возможные проблемы разделены на две группы проблемы, которые должны быть исправлены до перехода на SQL Server 2005, и проблемы, которые следует исправить после перехода. Отчет позволяет получить детальную информацию о необходимых модификациях на сервере, среди объектов (скрипты, хранимые процедуры и т.п.), а также указания на то, когда производить модификации. Отчет также позволяет управлять модификациями, сортировать задачи, помечать выполненные модификации, экспортировать отчет в Excel для распространения среди других разработчиков и т.п.
Используя отчет, можно открыть специальный справочный файл, в котором содержится детальная информация о возможных проблемах переходах и предлагаются способы их решения.
Утилита Upgrade Advisor может применяться более одного раза рекомендуется проводить анализ по мере выполнения приведенных в отчете рекомендаций.
Процесс обновления
режде чем приступить к более подробному рассмотрению обновлений каждого компонента SQL Server 2005, имеет смысл обсудить общие подходы к процессу обновления.
Процесс обновления можно разбить на четыре фазы: планирование, тестирование, обновление рабочей базы и действия, выполняемые после обновления.
Планирование
На этапе планирования необходимо собрать всю информацию о работе приложений, использующих базу данных, и о самих базах данных. Источником такой информации могут быть архитекторы, разработчики, администраторы; сведения также могут быть собраны в процессе эксплуатации (например, профили и трассировочные файлы). Фаза планирования длится от идентификации баз данных, которые необходимо перенести, до определения изменений, которые могут потребоваться в процессе обновления. Утилита Upgrade Advisor помогает определить области, на которых необходимо сконцентрировать усилия по внесению изменений, а также проблемы, которые могут возникнуть при переносе. В ходе планирования необходимо принять решение о том, в каком режиме будет выполняться переход in-place upgrade или side-by-side. Это решение должно базироваться на анализе фактов, собранных на этапе планирования, включая информацию об обновлении платформы, планируемые расширения приложения, архитектуру приложения и аппаратные требования.
В целом на этапе планирования необходимо выполнить следующие действия:
- Изучить средства обновления, входящие в состав SQL Server 2005; ознакомиться с основными изменениями и дополнениями в новой версии продукта.
- Собрать детальную информацию о приложении; определить, какие приложения, серверы и базы данных максимально выиграют от обновления.
- Выбрать способ обновления: в режиме in-place upgrade или в режиме side-by-side в этом сможет помочь утилита Upgrade Advisor.
- Определить «входные условия» для обновления и совместно с группой разработки найти наиболее эффективные способы внесения изменений, требуемых для успешного обновления. Определить, будут ли использоваться новые возможности SQL Server 2005, какие и в каком объеме.
- Установить этапность выполнения переноса, основные шаги, наметить план тестирования обновленного приложения, составить план управления рисками и план отмены внесенных изменений и обновлений.
После этого можно переходить ко второй фазе процесса обновления к тестированию.
Тестирование
Тестирование поможет в любой ситуации при полном переносе приложений на новый сервер, переносе части баз данных, смене клиентских компонентов и т.п. Более того, данные, собранные трассировщиком на основе выполнения автоматических тестов приложения, могут послужить отличной входной информацией для утилиты Upgrade Advisor. Также тестирование может выявить проблемы совместимости, аномалии при функционировании на новой платформе, пропущенные Upgrade Advisor, помочь в проверке корректности данных и значительно упростить процесс обновления.
Финальный план тестирования должен включать создание резервных копий баз данных SQL Server 7.0/2000, а также тестирование плана отмены внесенных изменений и обновлений. Помимо этого на данном этапе необходимо идентифицировать все зависимости приложений строки соединений, ссылки на DTS-пакеты, отчеты и т.п. При выборе режима in-place upgrade можно получить следующие преимущества: при обновлении через программу Setup все соединения, используемые приложениями, остаются неизмененными имена сервера и его экземпляров остаются теми же.
В целом на этапе тестирования необходимо выполнить следующие действия:
- Подготовить среду тестирования. Миграция side-by-side требует установки тестовой версии SQL Server 2005. Для режима in-place upgrade нужна тестовая машина с установленными SQL Server 7.0/2000 и копиями всех рабочих баз данных. Помимо этого необходима соответствующая аппаратная платформа, особенно если планируется выполнение не только функционального, но и нагрузочного тестирования обновленного сервера.
- Определить базовую конфигурацию (base-line). Такая конфигурация позволяет проверить систему после обновления, определить успешность процесса обновления, протестировать производительность и т.п. Для задания базовой конфигурации можно использовать штатные средства SQL Server SQL Server Profiler, средства нагрузочного тестирования, счетчики производительности (Performance Counters) и статистику Showplan.
- Разработать план тестирования. Создать сценарий тестирования или процедуры тестирования для следующих операций: обработка данных, проверка данных, стресс-тесты, производительность «клиент/сервер», функциональность приложения.
- Разработать план отмены внесенных изменений и обновлений (Recovery Plan). Создать процедуры отката обновлений в случае прерывания процесса обновления. План отмены изменений должен включать выполнение утилиты DBCC для проверки целостности баз данных перед созданием резервных копий, а также полное восстановление с полной проверкой. После обновления также следует выполнить проверку целостности данных и восстановление с полной проверкой. Процедуры отмены изменений должны быть протестированы.
- Создать процедуры модификации приложений. Среда тестирования должна содержать всю функциональность клиентской части приложения это позволит убедиться в том, что изменения работают должным образом. Процедуры модификации приложений могут применяться для документирования процесса обновления и создания каталога пользователей, на которых распространяются внесенные изменения.
- Выполнить тестирование обновления. Финальное тестирование должно подтвердить, что все процессы и процедуры работают так, как предполагалось. На этом шаге для проверки того, что все подготовительные изменения корректно учтены, можно использовать Upgrade Advisor.
Теперь все готово для следующего шага процесса обновления обновления рабочей базы данных.
Обновление рабочей базы
Шаги, выполненные на предыдущих этапах, а также программы Upgrade Advisor и Setup должны обеспечить практически безболезненное выполнение данной фазы. В зависимости от компонентов SQL Server, которые подлежат обновлению, при обновлении рабочей базы необходимо сделать следующее:
- Создать резервные копии системы приложений и баз данных. Выполнить проверку целостности, создать резервную копию и убедиться в ее корректности.
- Выполнить все необходимые операции перед собственно обновлением. Послать оповещения пользователям, отключить компоненты пользовательского интерфейса, приостановить обработку, ввод и изменение данных. Запустить Upgrade Advisor, чтобы убедиться в том, что все изменения, которые требуется осуществить перед обновлением, успешно внесены. При необходимости провести повторное резервное копирование.
- Выполнить первичное обновление SQL Server. Запустить SQL Server 2005 для миграции side-by-side. Установить .NET Framework и клиентские компоненты SQL Native Components (SNAC). В программе установки (Setup) указать те же компоненты, что и у обновляемой системы (то есть сервисы базы данных, аналитические сервисы, сервисы отчетов и пр.). После завершения работы программы установки выполнить специальные действия по обновлению (например, заполнение полнотекстовых индексов, поддержку кластеров, log shipping и т.п.). Произвести операции, которые могут потребоваться для обеспечения полной функциональности приложений, например запустить скриптовые программы и т.п.
- Выполнить тесты проверки данных и функциональности приложений, чтобы убедиться в том, что обновление прошло успешно.
- При необходимости внести изменения в приложения ссылки на базы данных, изменения в строках соединения и т.п. Выполнить тестирование функциональности приложения, включая обработку данных, пользовательский интерфейс, систему генерации отчетов, а также другие компоненты, используя тестовые процедуры, созданные на фазе тестирования.
- Выполнить дополнительные шаги. Например, при обновлении автоматически устанавливается режим совместимости с версией 8.0; если планируется использование дополнительных функций новой версии SQL Server, необходимо переключить базы данных в режим совместимости с версией 9.0. При миграции side-by-side необходимо остановить все сервисы предыдущей версии SQL Server. Выполнить проверку целостности данных (утилита DBCC), создать резервные копии баз данных, приложений и необходимых системных файлов. Включить ранее отключенные компоненты пользовательского интерфейса, уведомить пользователей о завершении процесса обновления.
Процесс обновления успешно завершен. Осталось выполнить некоторые действия, завершающие весь процесс.
Действия после обновления
Сначала необходимо выполнить стандартные, принятые в организации пользователя процедуры администрирования, обеспечивающие высокую доступность приложений и создание резервных копий на основе предопределенных расписаний. Если выполнялась миграция side-by-side, то ряд функций SQL Server 2005 находится в отключенном состоянии. Для включения необходимой функциональности можно использовать либо процедуру sp_configure, либо утилиту Surface Area Configuration (SAC). Помимо этого можно составить список функций SQL Server 2005, которые приложение пользователя может применять, например, для повышения производительности или надежности.
На этом мы завершаем первую часть статьи, посвященной вопросам перехода на новую версию SQL Server. В следующем номере мы продолжим эту тему и более подробно рассмотрим вопросы обновления отдельных компонентов, а также аппаратные требования и поддерживаемые аппаратные конфигурации.