Планирование обновления позволит избежать сюрпризов

Процесс переноса корпоративных баз данных с SQL Server 2000 на SQL Server 2005 может преподнести множество неприятных сюрпризов. Многие из возможностей, представленных в новой версии продукта, коренным образом изменят процессы и процедуры при работе профессионалов — разработчиков приложений и администраторов — с сервером баз данных. Некоторые архитектурные особенности окажут долговременное воздействие на то, как происходит разработка приложений баз данных, и на требования, предъявляемые к администраторам баз данных. Но вне зависимости от ожидаемых изменений клиентам необходима гарантия, что после модернизации они смогут в полной мере воспользоваться новыми возможностями и всей мощью SQL Server 2005.

Команда разработчиков Microsoft SQL Server проделала колоссальную работу, чтобы максимально упростить процесс обновления, а также обеспечить обновление всех компонентов SQL Sever, начиная с версии 7. В число этих компонентов вошли SQL Server 2000 Reporting Services и SQL Server 2000 Notification Services. Существует два основных варианта обновления имеющихся систем до SQL Server 2005: обновление на месте, когда новый сервер устанавливается поверх старого и полностью заменяет его, и параллельная установка, когда новый сервер баз данных устанавливается на отдельный компьютер, после чего администратор самостоятельно выполняет перенос объектов со старого сервера на новый. Каждый из вариантов имеет свои достоинства и недостатки. Рассмотрим их более подробно.

Выбор стратегии обновления

В процедуре установки SQL Server 2005 предусмотрен режим обновления существующих систем SQL Server 2000 Service Pack 4 (SP4) и SQL Server 7 SP4, при этом выполняется обновление таких дополнительных компонентов, как SQL Server Agent, Full-Text Search, Replication, Analysis Services 2000, Reporting Services, Notification Services и DTS (последняя преобразована в SQL Server Integration Services). Для каждого компонента SQL Server либо существует обновление, либо предусмотрен путь миграции. Обновление доступно для 32- и 64-разрядных версий сервера, в том числе для систем Itanium и 64-разрядных платформ.

В первом случае, при обновлении поверх существующей версии, файлы SQL Server 2005 устанавливаются поверх имеющегося экземпляра сервера, при этом все пользовательские данные и метаданные сохраняются. После завершения работы программы установки старый экземпляр сервера исчезает, а вместо него используется новый экземпляр с тем же именем.

Альтернативой является миграция через параллельную установку, когда выполняется установка отдельного экземпляра SQL Server 2005 (установка может быть произведена на новый или на тот же самый компьютер), после чего требуется вручную перенести пользовательские данные и метаданные из старого экземпляра в новый. После того как миграция будет завершена и протестирована, можно настроить прикладные программы для использования нового сервера, после чего старый экземпляр SQL Server может быть удален.

И установка поверх существующего, и параллельная установка обеспечивают обновление ядра сервера SQL Server, средств анализа данных Analysis Service и средств формирования отчетов Reporting Services. SQL Server 2005 содержит мастера миграции пакетов DTS в SSIS и метаданных Analysis Services 2000 в формат Analysis Services 2005. Дополнительные средства настройки позволяют обновлять и настраивать Reporting Services и Notification Services. Новый инструмент под названием SQL Server 2005 Upgrade Advisor (о нем будет рассказано чуть позже) позволяет лучше подготовиться к переходу на SQL Server 2005. Давайте рассмотрим подробнее преимущества и недостатки каждого из методов обновления SQL Server.

«За» и «против» обновления «на месте». Обновление путем установки нового сервера поверх существующего имеет свои достоинства. Во-первых, сохраняется имя сервера базы данных, так что не возникает проблем с перенастройкой приложений. Во-вторых, обновление происходит в автоматическом режиме и, в отличие от параллельной установки, не требует от администратора личного участия в процессе и выполнения операций вручную. Учитывая изложенные соображения, обновление посредством установки «поверх» в большинстве случаев представляет собой оптимальный выбор, особенно для небольших компаний. Кроме того, в этом случае не требуется использования дополнительных компьютеров и оборудования. Возможно, вы захотите нарастить дисковое пространство и/или оперативную память для использования полнотекстового поиска и других возможностей, но, по крайней мере, вам не потребуется дополнительный сервер для одновременной работы двух экземпляров сервера баз данных.

В то же время обновление поверх существующей системы имеет ряд ограничений. Очевидно, что на время выполнения установки и обновления сервер не будет доступен для работы приложений и пользователей, что может оказаться неприемлемым. Кроме того, установка поверх не позволяет администратору управлять тем, какие элементы будут обновлены, — будет обновлено все от начала до конца. В силу этого обстоятельства клиентам необходимо иметь более детальный (и проверенный) план восстановления, чем в случае параллельной установки. И наконец, некоторые компоненты SQL Server не имеют аналогов (например, обновить пакеты DTS невозможно, можно только перенести их в SSIS) или не соответствуют рекомендациям (так, Microsoft рекомендует переводить кубы данных Analysis Services 2000 в Analysis Services 2005, а не обновлять их).

Параллельная установка — «за» и «против». Хотя параллельная установка требует от администратора значительного объема ручной работы, этот способ обеспечивает большую гибкость и возможность управления, чем установка поверх имеющейся системы. Так, параллельная установка нового сервера значительно упрощает процесс тестирования совместимости и позволяет предоставить непрерывный доступ к данным. После завершения миграции и проверки правильности работы нового сервера можно перенаправить приложения для использования нового экземпляра базы данных. Параллельная миграция позволяет достичь полного контроля над процессом обновления и настроить миграцию компонентов, баз данных и объектов в точном соответствии с конкретными потребностями. А поскольку старый экземпляр сервера SQL Server остается нетронутым, в случае неудачной миграции не составит труда вернуться на исходные позиции.

Конечно, параллельная установка имеет свои ограничения. Ведь при установке экземпляра SQL Server 2005 потребуются дополнительные аппаратные ресурсы. Конечно, некоторые организации могут позволить себе использовать переход на SQL Server 2005 как повод для замены серверов и обновления серверных операционных систем, но это весьма дорогостоящее мероприятие, которое должно быть обосновано и тщательно подготовлено. А по завершении миграции потребуется перенастроить приложения для обращения к новым серверам баз данных (настроить строки соединений) — этот процесс обычно выполняется вручную и может потребовать много времени.

Важность планирования и тестирования при проведении миграции или обновления трудно переоценить. Без преувеличения можно сказать, что залогом успеха операции обновления является подробный план, учитывающий различные возможные сценарии, тщательное и всестороннее тестирование и четкое исполнение всех планов. Общий план (как обычно) состоит из трех этапов — подготовка, выполнение обновления и завершающие операции. Разберем эти этапы подробнее.

Проверка перед обновлением

Первое, что следует сделать при подготовке к переходу на SQL Server 2005, — это проверить и подготовить окружение. Утилита Upgrade Advisor предназначена для анализа компонентов предыдущих установленных версий SQL Server (включая ядро реляционной базы данных и службы Analysis Services, Notification Services, Reporting Services и DTS), поиска и нахождения путей устранения проблем совместимости. Чтобы убедиться, что система готова к обновлению, нужно выполнить проверку по следующему списку.

  • Ознакомиться с возможностями обновления и миграции, предоставляемыми программами SQL Server 2005 Setup, SQL Server Upgrade Advisor, SSIS, Analysis Services Migration Wizards и Reporting Services Configuration. Некоторые сведения о возможностях и использовании Upgrade Advisor описаны во врезке "Использование утилиты Upgrade Advisor".
  • Ознакомиться с предъявляемыми SQL Server 2005 требованиями к аппаратуре и программному обеспечению.
  • Провести инвентаризацию приложений и устаревших систем, которые используют SQL Server. При этом следует обратить внимание на используемые редакции SQL Server, пакеты обновлений и языки, которые необходимы этим приложениям и системам.
  • Изучить возможности и различия имеющихся редакций продуктов семейства SQL Server 2005. Определить, какая из редакций - Enterprise, Standard, Workgroup или Express - вам больше подходит.
  • Подготовить список серверов, баз данных и приложений, а также компонентов SQL Server, обновление которых планируется выполнить. При этом следует принять во внимание различные факторы, в том числе требования бизнеса, архитектуру и сложность приложений, количество и сложность возможных проблем совместимости и обновления. Сведения о проблемах, на которые следует обратить внимание, можно найти во врезке "Разрешение проблем совместимости".
  • Выбрать наиболее подходящую стратегию миграции для каждого компонента SQL Server. В зависимости от того, как используются различные компоненты в конкретной производственной среде, можно выбрать различные варианты обновления для разных компонентов, и это определяет выбор средств миграции, которые будут использоваться при обновлении. Для каждого компонента нужно подготовить тестовую среду, моделирующую, в частности, конкретную производственную аппаратную и программную среду.
  • Разработать план тестирования и создать сценарии и процедуры, которые позволят убедиться в отсутствии ошибок.
  • Выполнить мероприятия по плану тестирования, причем постараться проверить несколько сценариев обновления. Важно протестировать процедуры возврата к исходной конфигурации, чтобы быть уверенным в возможности возврата в исходное состояние, если обновление окажется невозможным.
  • Выбрать оптимальное время для проведения обновления или миграции.
  • Определить критерии и параметры, что означает успешное обновление для организации.
  • Воспользоваться инструментарием PerfMon и SQL Server Profiler для подготовки плана выполнения и сбора статистических данных для определения исходного уровня производительности до обновления и миграции. Эти данные можно будет использовать для измерения изменений в производительности и поведении систем после завершения обновления.
  • Еще раз проверить документацию SQL Server 2005 Books Online (BOL) и файл SQL Server 2005 Readme, причем особое внимание уделить разделам, посвященным известным проблемам, которые могут возникнуть при миграции, и способам их решения.

Завершив все задачи, связанные с подготовкой обновления, и удостоверившись в полноте и качестве плана, следует выполнить обновление одного или нескольких промышленных компонентов SQL Server.

Выполнение обновления

Перед началом обновления важно убедиться, что вы обладаете необходимыми административными полномочиями, которые потребуются для выполнения обновления. При установке на локальный компьютер следует запустить SQL Server Setup с правами локального администратора. Для удаленной установки понадобятся административные права и на локальном компьютере, и на удаленной машине, на которую планируется установить SQL Server. При установке SQL Server из каталога на общем сетевом ресурсе потребуется доменная учетная запись с разрешениями доступа для чтения и исполнения к этому каталогу. Вот некоторые шаги, которые могут оказаться полезными как при завершении обновления, так и в случае необходимости восстановления и возврата к исходной конфигурации.

  • Выполните резервное копирование всех файлов базы данных SQL Server из существующего экземпляра. Это нужно сделать для того, чтобы при необходимости гарантировать возможность возврата в исходное состояние. Проверьте целостность резервной копии - вдруг действительно потребуется восстанавливать систему с нее.
  • Выполните соответствующие проверки целостности базы данных и системных баз с помощью DBCC (кроме tempdb), чтобы убедиться в целостности исходных данных.
  • Запретите выполнение всех хранимых процедур, назначенных на запуск при старте сервера.
  • Если вы решили выполнить установку поверх старого сервера, убедитесь, что все базы настроены на автоматическое увеличение размера и что вы располагаете достаточным свободным дисковым пространством.
  • Если включены какие-то флаги трассировки, обратитесь в техническую службу Microsoft, чтобы узнать, поддерживаются ли и требуются ли эти флаги во время и после обновления.
  • Остановите репликацию и убедитесь в том, что журнал репликации пуст.
  • Если используется репликация, следует подготовить сценарий настройки репликации.

Обновление реляционного ядра базы данных. Убедившись, что данные сохранены и можно выполнить восстановление в случае любого отказа, приступаем к запуску программы SQL Server 2005 Setup для установки поверх существующего экземпляра, или параллельной установки. Некоторые сведения о том, как можно отслеживать выполнение обновления, содержатся во врезке «Мониторинг обновления». В случае параллельной установки у вас появится несколько возможностей произвести копирование баз данных со старых серверов на новый экземпляр SQL Server 2005, в том числе отключение/подключение, резервирование/восстановление, мастер копирования Copy Database Wizard, DTS/SSIS, собственные сценарии и массовая загрузка данных.

При обновлении поверх установленного по умолчанию экземпляра SQL Server 2000 или 7.0, на экране Instance name (имя экземпляра) программы установки нужно выбрать значение Default instance. Для именованных экземпляров SQL Server следует выбрать то же самое имя, что и у старого экземпляра (см. экран 1). Требуется щелкнуть Installed instances для получения списка имен установленных экземпляров, которые доступны для выбора.

Экран 1. Указание имени экземпляра

Если программа установки обнаруживает, что выбранное имя экземпляра уже существует, она предлагает подтвердить установку поверх существующего экземпляра (экран 2). Следует щелкнуть Details для получения дополнительной информации о том, какие компоненты будут обновлены (экран 3). Проверьте список обновляемых компонентов (экран Existing Components) и щелкните Next.

Экран 2. Программа установки обнаружила имеющийся экземпляр

Далее программа установки SQL Server 2005 Setup выполняет загрузку дополнительных компонентов. Можно сократить время установки, если заранее установить такие обязательные дополнительные компоненты, как Microsoft .NET Framework 2.0, Microsoft SQL Native Client и файлы поддержки. Затем программа выполняет проверку возможности установки, при этом производится проверка системы на случай, если какие-то условия могут заблокировать выполнение установки. После этого происходит копирование исполняемых файлов и библиотек SQL Server 2005. При установке поверх существующего экземпляра старый экземпляр будет доступен до этого момента, но после завершения копирования программа установки останавливает службу SQL Server, перенастраивает ее на использование новых исполняемых файлов и запускает снова в однопользовательском режиме. После этого старый экземпляр становится недоступен.

Экран 3. Обновление возможно

Затем Setup выполняет подключение базы данных Resource, которая представляет собой новую скрытую базу данных, доступную только для чтения и содержащую системные объекты. Затем Setup перезапускает службу SQL Server и начинает обновление всех баз данных. Если доступные системные ресурсы позволяют это сделать, обновление баз может выполняться параллельно. После завершения обновления баз данных программа установки выполняет репликацию и сценарии обновления агента SQL Server Agent. Новый экземпляр сервера становится полностью доступным для использования после удаления старых исполняемых файлов.

При запуске программы установки SQL Server 2005 из командной строки можно указать различные параметры или инициализационный файл .ini, содержащий различные настройки. Более подробные и полные сведения о параметрах запуска программы установки содержатся в документации SQL Server 2005 BOL.

Миграция DTS в SSIS. В SQL Server 2005 на смену службе DTS пришла SSIS, которую разработчики Microsoft переписали с нуля, это позволило повысить производительность, предоставить больше возможностей по управлению перемещением данных, а также добавить новую функциональность для проверки выполнения условий и организации циклов. Как уже упоминалось, пакеты DTS для SSIS обновить нельзя. Вместо этого в состав SQL Server 2005 включена среда исполнения DTS 2000, позволяющая использовать пакеты DTS наряду с пакетами SSIS. Кроме того, можно воспользоваться мастером SSIS Package Migration Wizard для преобразования пакетов DTS в формат SSIS. Средства среды исполнения DTS 2000 и мастер SSIS Package Migration Wizard устанавливаются по желанию, для их установки необходимо на экране выбора функций Feature Selection в разделе Client Components отметить пункт Legacy Components.

Для выполнения мастера Migration Wizard требуется запустить программу dtsmigrationwizard.exe. Существует также второй способ — в пакете SQL Server 2005 Business Intelligence Development Studio (BIDS) создать новый проект Integration Services, щелкнуть правой кнопкой мыши на папке SSIS Packages в разделе Solution Explorer и выбрать пункт Migrate DTS 2000 Package. Мастеру Migration Wizard необходимо указать источник пакетов DTS (это может быть структурированный файл для хранения пакетов, служба Meta Data Services или пакеты, сохраненные в базе данных SQL Server msdb), затем указать место для сохранения создаваемых пакетов SSIS (это может быть база msdb экземпляра SQL Server 2005, файл .dtsx на диске). После этого можно выбрать один или несколько пакетов для выполнения переноса, указать пароли для защищенных пакетов и выбрать место для сохранения журнала миграции.

После завершения работы мастера Migration Wizard может потребоваться изменение некоторых элементов пакетов SSIS. Например, если пакет содержит задачи ActiveX Script Task, сценарий придется изменить. Можно наверняка сказать, что сценарий нуждается в правке, если при его исполнении возникает ошибка. Следует учитывать, что для некоторых пакетов DTS 2000 миграция невозможна. Задачи типа Data Pump, Transform Data и пользовательские задачи не могут быть преобразованы в задачи SSIS. SSIS создает пакет SQL Server 2000 для каждого из пакетов этого типа. Потом запускается задача Execute DTS 2000 Package, которая и осуществляет выполнение данного пакета SQL Server 2000. Таким образом, полученный после миграции пакет содержит одну задачу Execute DTS 2000 Package для каждой задачи, миграция которой из DTS 2000 невозможна. Также Мастер Migration Wizard не поддерживает миграцию пакетов, сохраненных в виде файлов Visual Basic.

Задача Execute DTS 2000 Package Task является одним из процессов управления SSIS. Хотя Microsoft рекомендует выполнять миграцию пакетов DTS в SSIS для достижения максимальной производительности и использования новых функций, можно задействовать Execute DTS 2000 Package Task для исполнения пакетов DTS. Кроме того, если имеется пакет DTS, требующий значительной переработки, вы можете воспользоваться функцией Execute DTS 2000 Package Task для исполнения части пакета без изменений, как он есть, и преобразовать его позже.

Обновление средств Analysis Services. Служба Analysis Services 2005, построенная на надежном фундаменте Analysis Services 2000, предоставляет новые возможности, такие как унифицированная модель размерностей Unified Dimension Model (UDM), поддержка множественных экземпляров и использование кластеров в случае отказа; расширены операции с кубами, размерностями, извлечением данных, модель безопасности и вспомогательные инструменты. Кроме того, реализована встроенная поддержка XMLA.

Поскольку средства Analysis Services 2000 не поддерживают именованные экземпляры базы данных, обновление установленного по умолчанию экземпляра Analysis Services может быть выполнено двумя способами. Во-первых, можно выбрать обновление во время установки — для этого следует указать вариант Default instance в окне Instance Name. Во-вторых, можно установить именованный экземпляр Analysis Services — для этого потребуется запустить мастер Analysis Services Migration Wizard для миграции баз данных и метаданных Analysis Services 2000 в формат Analysis Services 2005. В последнем случае вам придется удалить экземпляр по умолчанию Analysis Services 2000 и запустить утилиту переименования Analysis Services Instance Rename (%ProgramFiles%Microsoft SQL Server90ToolsBinn VSShellCommon7IDEASInstanceRename.exe), чтобы выполнить переименование экземпляра Analysis Services 2005 в экземпляр по умолчанию.

Также имеется возможность установить именованный экземпляр Analysis Services 2005 параллельно с экземпляром по умолчанию Analysis Services 2000. В этом случае придется воспользоваться мастером Analysis Services Migration Wizard для преобразования баз данных Analysis Services 2000 в формат Analysis Services 2005. Для вызова мастера Migration Wizard следует запустить файл MigrationWizard.exe из папки %ProgramFiles%Microsoft SQL Server90ToolsBinnVSShellCommon7IDE. Когда мастер Migration Wizard завершит процесс миграции, имеет смысл заново обработать кубы данных и проверить данные и отчеты. Следует иметь в виду, что Migration Wizard не выполняет оптимизацию объектов Analysis Services, а только повторно создает такие же объекты в экземпляре Analysis Services 2005. Оптимизация кубов может быть выполнена после завершения миграции.

Вместо этого можно заново создать кубы с нуля — это позволит воспользоваться новыми возможностями и оптимизировать дизайн кубов. Такой подход на самом деле проще, чем может показаться на первый взгляд, благодаря примененной в Analysis Services 2005 технологии Intellicube. Если схема имеет топологию «звезда» или «снежинка» и хорошо известна, мастер Cube Wizard может при вызове Intellicube точно определить, какие из таблиц должны стать размерностями, а какие — таблицами фактов для пополнения кубов. Поскольку требуется повторно выполнить обработку всех кубов с помощью мастера Migration Wizard или Cube Wizard, вариант создания кубов с нуля действительно заслуживает внимания.

Обновление Reporting Services. Служба Reporting Services была представлена в январе 2004 г. как дополнение к SQL Server 2000. Теперь продукт интегрирован в SQL Server 2005 и содержит значительные улучшения, в том числе возможность указывать как параметры наборы значений, расширенные возможности печати и интерактивной сортировки при формировании отчетов, интеграцию с SharePoint. Службы Reporting Services 2005 также включают новый инструмент Report Builder, позволяющий пользователям составлять собственные отчеты по моделям (шаблонам), созданным проектировщиками и разработчиками.

Можно выполнить обновление имеющейся установки по умолчанию Reporting Services 2000 во время работы программы установки SQL Server 2005 Setup, при этом обновление опубликованных отчетов и снимков будет произведено автоматически. Если вы производили собственную настройку Reporting Services 2000, отличную от настроек по умолчанию, потребуется установить новый экземпляр Reporting Services, выполнить миграцию данных из существующего экземпляра и внедрить отчеты в новый экземпляр. Определения отчетов будут обновлены при открытии отчетов в дизайнере.

В состав SQL Server 2005 входит утилита настройки локальных и удаленных экземпляров Report Server Configuration Manager (см. экран 4). Если при установке сервера отчетов была выбрана опция только копирования файлов, эта утилита позволит настроить сервер для использования службой Reporting Services. Если при установке была выбрана конфигурация по умолчанию, можно воспользоваться этим инструментом для проверки и изменения настроек, сделанных во время установки. Данный инструмент также позволяет выполнять преобразование базы данных сервера отчетов в новый формат и восстанавливать ключ шифрования.

Экран 4. Обновление схемы базы данных Reporting Services

Перед обновлением установки Reporting Services следует обязательно сделать резервную копию базы данных сервера и конфигурационных файлов. Необходимо также воспользоваться утилитой rskeymgmt.exe для резервирования симметричного ключа шифрования базы данных сервера отчетов.

Обновление инструментальных средств и утилит. Функции программ Enterprise Manager, Query Analyzer, а также часть средств администрирования из Analysis Manager теперь интегрированы в SQL Server Management Studio. Для добавления в Management Studio серверов, зарегистрированных в SQL Server 2000 Enterprise Manager, нужно щелкнуть правой кнопкой в окне Registered Server на узле Database Engine и выбрать пункт Previously Registered Servers. Обратите внимание, что диаграммы баз данных автоматически не обновляются ни при установке поверх существующего экземпляра, ни при параллельной установке. Когда будет настроено построение диаграмм для баз данных в Management Studio и открыты диаграммы базы данных, они будут обновлены автоматически.

Утилиты Network Client Utility, Server Network Utility и средства Service Manager интегрированы в SQL Server Configuration Manager. Configuration Manager используется для разрешения или запрета использования сетевых протоколов, управления псевдонимами и службами. Из комплекта поставки SQL Server 2005 была исключена утилита isql.exe, которая использовала библиотеку DB-Library. Та же участь постигла использующую для доступа к данным интерфейс ODBC программу osql.exe. Теперь процедуры по сопровождению и обслуживанию баз данных должны быть настроены на применение утилиты sqlcmd.exe, которая использует интерфейс OLE DB. Аналогично Microsoft отказалась от службы SQL Mail (использовала интерфейс MAPI), и для параллельной установки эта функция отключена по умолчанию. Если приложения задействовали SQL Mail для отправки сообщений, рекомендуется перейти на Database Mail, которая использует протокол SMTP.

В дополнение ко всему, в SQL Server 2005 включена поддержка нового программного интерфейса API — SQL Server Management Objects (SMO), который пришел на смену интерфейсу SQL-DMO. В дополнение к предоставлению максимального использования новых возможностей SQL Server 2005, SMO API содержит ряд усовершенствований, в том числе объектную модель с поддержкой кэширования, расширенную поддержку сценариев, отложенное создание экземпляров объектов (позволяет повысить уровень масштабируемости и производительности) и более простой в использовании интерфейс. Если вы задействовали сценарии и приложения, использующие DMO, есть повод переписать их для SMO.

Обновление остальных компонентов SQL Server. В отличие от предыдущих версий, полнотекстовый поиск — SQL Server 2005 Full-Text Search — в новой версии SQL Server не использует совместно с другими компонентами службу MSSearch. Вместо этого для каждого экземпляра SQL Server 2005 для службы SQL Server (MSFTESQL) устанавливается одна копия поисковика Microsoft Full-Text Engine. После обновления необходимо заново вручную заполнить соответствующие каталоги. Следует иметь в виду, что в SQL Server 2005 функция Full-Text Search требует больше места на диске, чем раньше.

SQL Server 2005 Mobile Edition поддерживает командную утилиту обновления (upgrade .exe), запускаемую из командной строки. Найти ее можно в каталоге %ProgramFiles%Microsoft Visual Studio 8SmartDevicesSDKSQL ServerMobilev3.0[platform][processor], который легко задействовать для модернизации баз данных SQL Server CE 2.0 на SQL Server 2005 Mobile Edition.

Копии Notification Services 2.0 при работе программы Setup автоматически не обновляются до уровня SQL Server 2005 Notification Services. После установки SQL Server 2005 и обновления ядра базы данных придется вручную переносить метаданные копии Notification Services 2.0 при помощи Management Studio или утилиты командной строки nscontrol.

Контрольный лист проверок

Сообщение об успешно завершенном обновлении не обязательно означает конец процесса модернизации. План перехода на новую версию SQL Server должен включать выполнение постмиграционных проверок, которые необходимо осуществить сразу же после проведенного обновления и мероприятия, которые должны осуществляться в течение нескольких дней и недель после завершения собственно процедуры модернизации. Кроме того, нужно заранее спланировать, как следует использовать преимущества огромной мощи SQL Server 2005 — например, усовершенствованной реализации T-SQL, Service Broker, функции фиксации мгновенного состояния процесса (функции snapshot isolation) и .NET-интеграции. Чтобы быть уверенным в том, что постмиграционный план выполняется, рекомендую придерживаться следующего контрольного листа проверок.

  • Запустить sp_updatestats для каждой обновленной базы данных для получения обновленной статистической информации о распределении значений ключей. Этот шаг гарантирует оптимальную производительность при отработке запросов в обновленных базах данных. В дополнение к обновленной статистике следует запустить DBCC UPDATEUSAGE на всех базах данных сразу же после завершения модернизации. С помощью этой команды все вычисляемые несоответствия в страницах и записях будут устранены.
  • Проанализировать отчет Upgrade Advisor и выполнить все рекомендуемые постмиграционные задачи.
  • Для модернизации "на месте" необходимо проверить уровень совместимости базы данных и установить его значение равным 90, если потребуется. Некоторые новые функции, такие как Service Broker, требуют, чтобы уровень совместимости был установлен в 90, однако нужно иметь в виду, что уровень совместимости 90 может привести к сбою в работе существующих сценариев; например, сценарий, в котором используется синтаксис *= LEFT OUTER JOIN, перестанет отрабатываться при уровне совместимости 90.
  • Следует использовать утилиту Surface Area Configuration или системную хранимую процедуру sp_configure для определения, нужно ли отключить такие функции, как SQL Mail и им подобные.
  • Проконтролировать выполнение запланированных работ, относящихся к задачам поддержания высокой готовности и восстановления после отказа, плановых заданий SQL Server Agent и заданий, связанных с техническим обслуживанием. Перенастроить журналы мониторинга поведения системы.
  • Провести миграцию пакетов DTS в SSIS для повышения производительности и воспользоваться преимуществами новой функциональности SSIS.
  • Построить кубы Analysis Services.
  • Заново сформировать каталоги (индексы) полнотекстового поиска.
  • Если запланированы тесты после завершения обновления и подготовлены сценарии для проверки правильности выполнения обновления и измерения изменений в производительности - что ж, самое время приступить к этим тестам.
  • Планирование и реализация новых функциональных возможностей SQL Server, таких как разбиение таблиц на разделы, изоляция снимков данных, улучшения в области безопасности, брокер Service Broker, поддержка XML и .NET, а также усовершенствование Analysis Service. Необходимо обновить сценарии управления и обслуживания СУБД для использования новых представлений и динамических объектов управления.

Наконец, можно подключиться к системе онлайн и выполнять мониторинг, чтобы быть уверенным, что обновление проходит нормально.

Время действовать!

Помимо сглаживания шероховатостей предыдущих версий SQL Server и добавления новых функций, о которых давно просили пользователи, SQL Server 2005 предоставляет значительные усовершенствования в области управления, производительности, обеспечения отказоустойчивости, возможности программирования и средств бизнес-аналитики Business Intelligence (BI). Если в зоне вашей ответственности имеются решения, основанные на SQL Server 2000 или 7.0, первым шагом к достижению преимуществ SQL Server 2005 должно стать обновление устаревших версий и переход на 2005. Конечно, такое значительное обновление представляет собой, мягко говоря, устрашающую задачу, но на самом деле все не так плохо — Microsoft действительно инвестировала значительные средства и проделала огромную работу, чтобы максимально облегчить процедуру обновления для SQL Server 2005. Инструментальные средства, такие как Upgrade Advisor, позволяют сделать обновление предсказуемым, а тщательное планирование и тестирование помогут найти способы устранения любых затруднений до того, как они реально возникнут. Если планирование было всесторонним — проблем не будет.

Даршан Сингх - Отвечает в компании Scalability Experts за исследования, описание и продвижение достоинств SQL Server 2005 среди DBA и архитекторов баз данных. Участствовал в подготовке Scalability Experts книги Microsoft SQL Server 2005: Changing the Paradigm (издательство Sams, 2005). dsingh@scalabilityexperts.com


Мониторинг обновления

В процессе установки программа SQL Server 2005 Setup генерирует журнальные файлы для каждого компонента SQL Server и сохраняет их в каталог %ProgramFiles%Microsoft SQL Server90Setup BootstrapLOGFiles. Log-файлы всегда можно открыть в Notepad, просмотреть содержимое и выполнить поиск строк, содержащих сообщение об ошибке Return Value 3. Как вариант можно воспользоваться утилитами от Windows Installer, например программой Wilogutl.exe (http://msdn.microsoft.com/library/ en-us/msi/setup/wilogutl_exe.asp) для анализа содержимого log-файлов. Кроме того, при установке SQL Server 2005 сообщения регистрируются в журнале событий Windows.


Использование утилиты Upgrade Advisor

Чтобы сделать переход на SQL Server 2005 менее болезненным, Microsoft разработала новую утилиту SQL Server 2005 Upgrade Advisor Analysis Wizard. Программу Upgrade Advisor можно задействовать на фазе составления плана модернизации при проведении анализа SQL Server версий 2000 и 7.0, в том числе таких компонентов, как DTS, Analysis Services, сценарии и файлы трассировки. Утилита сообщает о потенциальных проблемах, которые могут возникнуть во время модернизации или после нее. Использование Upgrade Advisor — это очень важный шаг при выборе правильного пути обновления системы.

Upgrade Advisor — это построенный на системе правил программный процессор, который разработчики SQL Server Development написали, основываясь на результатах тестирования SQL Server в лабораторных условиях внутри Microsoft, на опыте работы с SQL Server 2005 на самых ранних этапах, обратной связи с пользователями системы и с привлечением опыта программистов — разработчиков SQL Server. Upgrade Advisor будет выпущен в производство — Released To Manufacturing (RTM) — до появления SQL Server 2005 RTM и также будет поставляться на носителе с SQL Server 2005 RTM. На заставке SQL Server 2005 Setup Microsoft предоставит специальный вариант для установки Upgrade Advisor. Кроме того, Upgrade Advisor будет доступен для загрузки с Web-сайта Microsoft. Команда разработчиков SQL Server 2005 планирует обновить утилиту Upgrade Advisor новыми правилами и функциями после выхода полноценного релиза SQL Server 2005, и обновленные версии утилиты также будут доступны для загрузки с Web-сайта Microsoft. Отметим, что Upgrade Advisor требует установки Microsoft .NET Framework 2.0.

Утилита предлагает две возможности; с помощью одной запускается Analysis Wizard, другая запускает Report Viewer. Для каждого обновленного компонента Analysis Wizard генерирует отчет, который хранится в формате XML, и просмотреть его можно в Report Viewer.

Экран A. Компоненты SQL Server 2005

Как видно из экрана А, Upgrade Advisor Analysis Wizard позволяет выбрать тот компонент, который необходимо проанализировать. Для каждого выбранного компонента Analysis Wizard предлагает свой детализированный список параметров, который надо заполнить для проведения анализа. Для Database Server можно указать, чтобы утилита проанализировала все базы данных или только указанный список. Утилита Upgrade Advisor тщательно анализирует выбранные базы данных, включая хранимые процедуры и текст T-SQL (т. е. текст в системной таблице syscomments). Также для анализа можно предложить один или несколько трасс-файлов и сценариев SQL для указанных баз данных. Upgrade Advisor может проанализировать пакеты DTS, сохраненные на диске или в указанной копии SQL Server.

По завершении анализа выбранных компонентов создается отчет, который можно просмотреть с помощью Report Viewer. Как видно из экрана В, отчет Upgrade Advisor формирует список потенциальных проблем и рекомендации, когда следует их исправить, а также описание способов исправления или обхода. Report Viewer позволяет отфильтровать отчет, отмечать проблемы как решенные, а также экспортировать данные отчета в формат CSV.

Экран Б. Утилита Upgrade Advisor

Разрешение проблем совместимости

В SQL Server 2005 произведена тщательная ревизия архитектуры, благодаря чему достигнута полная обратная совместимость со всеми предыдущими версиями SQL Server, чего раньше не было. И все же некоторые функции из предыдущих версий SQL Server более не поддерживаются. Например, вместо применения недокументированных системных хранимых процедур теперь придется использовать новые представления каталогов (catalog views) и динамические управляемые объекты (dynamic management objects). Вместо использования isql.exe и rebuildm.exe нужно задействовать sqlcmd и Setup.exe соответственно. Вместо не поддерживающих стандарты ANSI операторов внешних объединений требуется использовать аналогичные операторы, поддерживающие ANSI. Некоторые виртуальные таблицы более не существуют (например, syslocks; теперь нужно использовать динамические управляющие представления — dynamic management views). Подписчики Jet 4.0 больше не поддерживаются — вместо этого придется использовать SQL Server Express Edition. English Query и Metadata Services тоже не поддерживаются.

Против использования некоторых функций есть серьезные возражения. Так, Microsoft рекомендует задействовать Database Mail на основе SMTP вместо SQL Mail на основе MAPI; аналогично Microsoft советует заменить операторы SETUSER T-SQL операторами EXECUTE AS.

Некоторые функции по-прежнему используются, но демонстрируют при этом неожиданное поведение. Например, теперь можно будет увидеть, как работает безопасность на уровне системных метаданных. Новый встроенный уровень разрешений над уровнем доступа к метаданным может нарушить работу сценариев и приложений.

Особо отмечу одну из проблем совместимости, с которой можно столкнуться. В отличие от MSDE, SQL Server 2005 Express Edition не имеет в своем составе SQL Server Agent. Следовательно, если компонент Replication настроен, необходимо изменить среду работы так, чтобы использовать Agent для издателя (publisher), а не подписчика (subscriber). При подготовке к модернизации прочтите разделы SQL Server 2005 BOL, касающиеся проблем обратной совместимости. Чтобы идентифицировать потенциальные проблемы в работе SQL Server 2005, связанные с несовместимостью, определить пути обхода проблем или их решения, можно воспользоваться аналитической утилитой SQL Server 2005 Upgrade Advisor Analysis Wizard. Подробнее о том, как работает эта программа, рассказано во врезке «Использование утилиты Upgrade Advisor».