SQL Server: Планирование миграции на SQL Server 2008 R2Источник: oszoneru Брайен Пози
Переход на SQL Server 2008 R2 не всегда проходит без сучка и задоринки. Это серьезное обновление и огромный шаг вперед. Вместе с тем, в отличие от многих других продуктов Microsoft сервер SQL Server 2008 R2 поддерживает обновление "поверх" имеющейся версии. Такой переход поддерживается для SQL Server 2000, 2005 или 2008. Но переход на SQL Server 2008 R2 не столь прост, как загрузка установочного диска и прощелкивание страниц мастера установки. Есть ситуации, когда придется выполнять полноценную миграцию, а не простое обновление своего SQL Server. В статье рассказывается о некоторых вариантах перехода на SQL Server 2008 R2. Хороший советОчень желательно провести полную ревизию имеющейся инфраструктуры до начала обновления. В этом случае будет очень кстати Помощник по обновлению SQL Server (SQL Server Upgrade Advisor), который позволит определить, возможно ли прямое обновление SQL Server или нужна полноценная миграция. Помощник анализирует серверы SQL Server и информирует о всех проблемах, которые могут помешать успешному обновлению. Можно либо устранить эти проблемы до начала обновления, либо приступить к планированию миграции. Помощник по обновлению SQL Server - бесплатная утилита, входящая в Пакет дополнительных компонентов Microsoft SQL Server 2008 R2 (его можно загрузить из страницы Центра загрузки Microsoft). После распаковки этого пакета помощник по обновлению можно найти в папке \X64\Redist\Upgrade Advisor. Есть две версии Помощника - для x86 и Itanium, и находятся они соответственно в подпапках \X86 и \IA64. Большинство используемых серверов SQL Server критически важны для работы компании, поэтому администраторы очень опасаются запускать такую утилиту, как Помощник по обновлению, боясь, что она может помешать работе серверов. Опасения усугубляются тем, что перед запуском Помощника нужно установить несколько необходимых для его работы компонентов. К счастью, обычно Помощник по обновлению не выполняется непосредственно на SQL Server - его можно установить на машину с Windows XP (SP2 или более поздним), Windows Vista, Windows 7, Windows Server 2003 (SP2 или более поздним) или Windows Server 2008. После установки его можно использовать для анализа серверов SQL Server удаленно. Есть только одно исключение:на серверах с SQL Server Reporting Service Помощник по обновлению надо запускать на самом сервере. Хотя Помощник по обновлению сильно помогает, предупреждая о препятствиях на пути к простому обновлению, есть несколько вещей, которые он не проверяет. Например, он не "умеет" анализировать настольные приложения и шифрованные хранимые процедуры, а также не проверяет устаревшую и исключенную из последней версии функциональность. Как вы помните, SQL Server 2008 R2 поддерживает обновление со всех версий вплоть до SQL Server 2000. Но с того времени много воды утекло и в каждой версии в SQL Server добавлялось много новых функций, однако многие функции были удалены. В некоторых случаях Помощник по обновлению не сообщает о проблемах, связанных с устаревшей функциональностью. Простой пример:Помощник по обновлению не анализирует службы Notification Services, которые были удалены в SQL Server 2008. В статье Обратная совместимость SQL Server перечислены все проблемы, связанные с устаревшими и удаленными функциями SQL Server, а также выделены изменения в поведении сервера, которые могут нарушить работу приложений, взаимодействующих с SQL Server. В статье указаны лишь функции, измененные или удаленные начиная из SQL Server 2008. Если у вас более старая версия SQL Server, придется провести дополнительное исследование, чтобы узнать, что изменилось со времени выпуска вашей версии. Путь обновленияРешив выполнять обновление поверх имеющейся версии, нужно использовать рекомендованную компанией Microsoft процедуру обновления. По существу это означает, что версия и выпуск SQL Server, до которого можно выполнить обновление, определяется имеющейся версией. Допустим, у вас один сервер с SQL Server 2005 (x64) Enterprise с пакетом исправлений SP2. В такой ситуации вариантов обновления до SQL Server 2008 R2 немного:можно обновить сервер только до выпуска Enterprise Edition или Datacenter Edition. Microsoft предоставляет детальную таблицу, показывающую, какие выпуски SQL Server 2008 R2 поддерживаются в различных сценариях обновления. У процедуры обновления много нюансов, поэтому обязательно изучите эти таблицу прежде, чем покупать лицензии на SQL Server 2008 R2. В этом процессе есть несколько общих правил, применимых к большинству процедур обновления.
Помощник по обновлению замечательный инструмент для выявления возможных проблем с обновлением, но он не идеален, поэтому настоятельно рекомендуется выполнить пробное обновление, если это возможно. Создайте полную резервную копию своего SQL Server, нескольких контроллеров доменов и всех остальных серверов, необходимых для нормальной работы инфраструктуры. Восстановите резервные копии на виртуальном сервере, не связанном с производственной сетью, создав копию производственной среды SQL Server. Запустив копию среды в работу, попытайтесь обновить SQL Server до версии 2008 R2 и выполните все необходимые тесты и проверки. Некоторые среды слишком сложны для такого тестирования. В такой ситуации создайте среду, максимально точно повторяющую производственную. Помните, что неприятности возможны в любой момент процесса обновления и после него, поэтому лучше наступить на все "грабли" в тестовой, а не производственной среде. Время миграцииМиграция помогает не только в тех ситуациях, когда прямое обновление невозможно. Ее можно использовать как метод для изменения топологии серверов (например, для перехода с 32-разрядной в 64-разрядную среду) или переноса SQL Server на новое оборудование. Прежде чем мигрировать какие-либо базы данных на SQL Server 2008 R2, загрузите копию инструментария Microsoft Assessment and Planning (MAP) Toolkit for SQL Server 2008 R2. MAP служит не для самого процесса переноса, а для планирования миграции. Вот некоторые из вещей, которые MAP умеет делать.
Механика миграцииКонкретные шаги миграции на SQL 2008 R2 разнятся в зависимости от версии SQL Server, с которой выполняется переход. Тем не менее, можно предложить некоторые общие рекомендации. В самом простом случае миграция предполагает установку сервера SQL Server 2008 R2 с нуля, после чего на нем восстанавливают унаследованные базы данных из резервной копии. Но, как обычно бывает в жизни, дьявол кроется в деталях. Первая деталь - метод резервного копирования старого SQL Server. Нужно копировать сервер так, чтобы сохранить транзакции. "В идеале" нужно перевести базу данных в однопользовательский режим (Single_User) или в режим только для чтения. С этим есть одна проблема:процесс копирования-восстановления занимает слишком много времени. Сократить время миграции можно, сделав полную резервную копию заранее. Тогда будет достаточно создать разностную резервную копию непосредственно перед самой миграцией. Восстанавливая базу данных на сервере с SQL Server 2008 R2, вам придется определить некоторые параметры восстановления в SQL Server Management Studio. А именно, надо позаботиться о присвоении новой базе данных точно того же имени, что и у восстанавливаемой базы, а также не забыть выбрать параметр "Оставить базу данных готовой к использованию, выполнив откат незафиксированных транзакций" (Leave the Database Ready to Use By Rolling Back Uncommitted Transactions) в разделе "Состояние восстановления" (Recovery State). По завершении восстановления, нужно позаботиться еще о двух вещах.Во-первых, переведите базу данных в многопользовательский режим доступа, чтобы пользователи снова могли работать с ней. Во-вторых, задайте в базе данных уровень совместимости с SQL 2008 равным 100. Если опустить этот шаг, базы данных останутся работать в режиме совместимости. В определенных ситуациях режим совместимости отключит функциональность, имевшуюся в SQL Server 2005 и SQL Server 2008. Как видите, переход на SQL Server 2008 R2 не слишком сложен, но он требует выполнения ряда вполне конкретных шагов. Нужно тщательно планировать миграцию заранее, чтобы предотвратить какие-либо проблемы с совместимостью. |