(Возврат на основную страницу)
Editorial
Майкл Оти
Нужен ли вам SQL Server 2008 R2?
Programming
Дмитрий Артемов
Перевод приложений в среду SQL Server 2008,
инструменты и подходы. Часть 1
Other
Томас Грохсер, Линдсей Аллен
Вариант стратегии быстрого и надежного резервного
копирования/восстановления VLDB по сети. Часть 2
Нужен ли вам SQL Server 2008 R2?
Учитывая, что выход SQL Server 2008 R2 совсем не за горами, как решить, нужен ли вам переход на эту версию? Решение может зависеть от того, на какой версии SQL Server вы работаете в настоящее время. Или от того, какие потребности в настоящее время испытывает ваша организация и какие болевые точки у вас имеются. В теперешних тяжелых условиях многие организации решили оставаться на проверенных решениях, построенных на базе SQL Server 2005 и даже SQL Server 2000. Как говорится, «если не сломалось…» Однако ваш бизнес может отстать, если вы слишком долго будете оставаться на старой версии. Практический опыт ИТ-специалистов устаревает, команда теряет связи с новыми технологиями. Даже хуже того, организация упускает возможности, предоставляемые новой функциональностью. Это означает, что проблемы бизнеса остаются нерешенными. Или что новые проекты и требования пользователей никогда не будут реализованы. Если ваша компания неспособна предоставить такой же уровень услуг, как ваши конкуренты, вы можете проиграть в конкурентной борьбе.
Преимущества SQL Server 2008 R2
Выпуск SQL Server 2008 R2 строится на функционале SQL Server 2008 и включает все пакеты обновления, выпущенные для SQL Server 2008. Кроме того, SQL Server 2008 R2 предлагает целый набор новой функциональности, большая часть которой сконцентрирована вокруг самоуправляемой управляемой business intelligence (BI). Эта технология, названная PowerPivot, предоставляет богатые возможности конечным пользователям, но оставляет контроль за сопровождением приложений в руках ИТслужбы. Еще одно существенное новшество, заявленное в SQL Server 2008 R2 — поддержка до 256 процессоров, установка с использованием slipstream, новые средства Master Data Services, расширенное управление группами серверов и зеркалирование с горячим резервированием серверов (hotstandby database mirroring).
Обновление с 2008: простое решение
Если сейчас вы используете SQL Server 2008, тогда решение о переходе на SQL Server 2008 R2 в основном определяется полезностью для вас новой функциональности в рамках managed self service BI (наверное, это можно перевести как «управляемая Business Intelligence с самообслуживанием», где «управляемая» подразумевает контроль со стороны ИТслужб, а «самообслуживание» — возможность конечного пользователя самостоятельно создавать средства анализа. — Прим. ред.), и в меньшей степени, насколько вам необходимо многосерверное управление. (Следует иметь в виду, что в настоящее время (ноябрьская CTP3) требования к средствам многосерверного управления формулируются как «SQL Server must be version 10.50 or higher» (http://msdn.microsoft.com/enus/library/ee210548(SQL.105).aspx). — Прим. ред.)
Обновление с 2005: расширение функциональности
Если вы используете SQL Server 2005, тогда переход предоставит вам массу новой функциональности. SQL Server 2008 R2 включает новую функциональность в области BI, равно как и целый набор новшеств, появившихся с выходом SQL Server 2008, включая сжатие данных (самой БД и резервных копий), прозрачное шифрование данных, новые типы дат, времени, поддержку географических и геометрических данных, новый тип данных filestream, управление ресурсами средствами Resource Governor и управление на базе политик.
Обновление с 2000: возврат в высшую лигу
Если ваши бизнесприложения все еще используют SQL Server 2000, тогда при переходе на SQL Server 2008 R2 вы получите огромный набор новой функциональности. Многие подсистемы, которые пользователями более свежих версий рассматриваются как данность, были введены с появлением SQL Server 2005. К ним относятся SQL Server Integration Services (SSIS), SQL Service Broker и SQL CLR. Что также важно, хотя обновление с Веба предлагает SQL Server Reporting Services (SSRS) для SQL Server 2000, в стандартной комплектации SQL Server 2000 не предлагает SSRS, а только немногие организации принимают обновления напрямую из Интернета.
Переход на SQL Server 2008 R2 дает пользователям SQL Server 2000 впечатляющий набор средств, представленный в SQL Server 2005, плюс все нововведения SQL Server 2008 и 2008 R2. Кроме того, большинство инсталляций SQL Server 2000 установлены на устаревшем оборудовании, нуждающемся в обновлении. При переходе на более современное оборудование, самое время обновить и версию СУБД.
Перевод приложений в среду SQL Server 2008, инструменты и подходы. Часть 1
В жизни любой организации наступает момент, когда проверенная и вполне работоспособная платформа устаревает и требует замены. Причин тут может быть множество, поставщик прекратил поддержку текущей версии, современное железо не в состоянии выдать максимальную производительность, потому что платформенное ПО не умеет с ним работать, бизнес требует таких решений, которые либо невозможно, либо слишком затруднительно реализовать средствами ПО десятилетней давности, данных слишком много стало… Список можно продолжать долго.
И вот, принимается решение о переходе на новый программный продукт, т. е. наступает миграция или обновление ПО.
Если существующая платформа действительно имеет десятилетнюю историю, то может возникнуть искушение перейти не на самую последнюю версию, а на ту, то была выпущена до нее. Она вроде бы и пакетами обновления уже обложена и опыт внедрения и эксплуатации накоплен, есть возможность поинтересоваться у коллег из других контор или почитать в Интернете. Хочу предостеречь от такого подхода.
Под термином «платформа» мы подразумеваем Microsoft SQL Server. Мы будем вести разговор о переходе с версий 2000 (8.0) и 2005 (9.0) на 2008 (10.0).
Итак, почему не стоит переходить на SQL Server 2005, если сейчас установлена версия 2000? Причин тому несколько:
1. SQL Server 2005 вышел в 2005 году, следовательно из отпущенного ему срока поддержки уже истрачено более четырех лет. SQL Server 2008 вышел в 2008 году и находиться в зоне полной поддержки ему гораздо дольше.
2. Переход с 2000 на 2005 по трудоемкости примерно равен переходу сразу на 2008. Потом все равно придется переходить на 2008 или на следующую версию, так зачем удваивать трудозатраты на переход?
3. Если посмотреть на функциональность версий SQL Server, то хорошо просматривается парность версий 6.06.5, 7.02000, 20052008. В первой версии пары, как правило, появлялся богатый новый функционал или происходило существенное изменение ядра и основных подсистем. Вторая версия строилась на основе, заложенной ранее, и предлагала расширение разработанного ранее функционала (в том числе и скрытого, например, структур хранения данных). Так что если протянуть, то после выхода SQL 2011, окажется, что все настолько изменилось, что переход окажется гораздо более болезненным (а может быть прямого перехода вообще не получится, как сейчас невозможно перевести SQL Server 7.0 в среду SQL Server 2008). А так, есть время подтянуть систему до нужного уровня и спокойно (более или менее) перейти на очередную версию.
Я не стану вдаваться в детали внесенных новшеств, равно как истории развития продукта. Если есть желание покопаться в анналах, то могу адресовать пытливых читателей к замечательному документу «The Evolution of Microsoft SQL Server: 1989 to 2000» (http://insidesqlserver.com/companion/History%20of%20SQL%20Server.pdf) и статье в блоге «SQL MythBusters — SQL Server is really a Sybase product not a Microsoft one» (http://blogs.msdn.com/euanga/archive/2006/01/19/514479.aspx).
А мы начнем рассмотрение процесса миграции, инструментов, которые могут помочь в этом и возможных проблемах на непростом пути перехода на новую версию СУБД.
Сделаю только еще одно отступление. При переходе чтото может работать хуже, чем было, я сам сталкивался с такими ситуациями на проектах. Нужно отдавать себе отчет, что SQL Server очень сильно изменился за последние 10 лет и ожидать от него поведения, полностью соответствующего тому, что было создано две версии назад, просто не стоит.
С чего следует начать? С планирования. Редко какая серьезная система работает изолированно. Уж клиентская часть у нее всегда найдется. Она также может взаимодействовать с другими системами, поведение или характер использования которых может оказать существенное влияние на сам процесс перехода или хотя бы на то окно, в течение которого переход должен быть завершен.
Часто бывает, что ядро прикладной системы зависит от периферийных компонентов, таких как DTS пакеты, SSAS, службы отчетов и тому подобного. Все это следует учитывать как с точки зрения времени на переход, так и с точки зрения работоспособности элементов «окружающей среды» совместно с новым реляционным движком БД.
Следует тщательно изучить разделы документации, которые описывают несовместимости предыдущих версий. Причем изучение следует начинать со сравнения версии 2000 с версией 2005 (если вы переходите с SQL Server 2000). Дело в том, что документация описывает отличия между 2005 и 2008. Но их не так много, а вот отличий между 2000 и 2005 гораздо больше, помните, 2005 — первая версия новой пары, а именно эти версии являются революционными. Итак, читаем об изменениях 20002005 по адресу http://technet.microsoft.com/ruru/library/ms143532(SQL.90).aspx, а 20052008 — по адресу http://technet.microsoft.com/ruru/library/cc280407.aspx. Вся документация на русском языке.
После того как выяснилось, что таких отличий, которые делают переход невозможным, нет, следует ознакомиться с руководством по переходу. Адрес я не привожу, он может поменяться, приведу название документов: «SQL Server 2008 Upgrade Technical Reference Guide» и «SQL Server 2005 Upgrade Technical Reference Guide». Два документа, каждый по 350 страниц (на английском). Посмотрите их в той части, которая описывает используемые в вашем приложении подсистемы и компоненты.
Скачайте утилиту, которая называется Microsoft SQL Server 2008 Upgrade Advisor, она есть на дистрибутиве, но, возможно на сайте Microsoft есть более свежая версия. Утилита предназначена для распознавания несовместимостей. Ее возможности довольно ограничены, но она способна распознать явные несоответствия, снимая с вас работу по поиску конструкций типа «*=» или подобных. Помощник по обновлению может проанализировать существующую БД (ему не нужны данные, только код и объекты, так что можно дать ему пустую БД с полноценной схемой). Если часть кода создается непосредственно клиентским приложением и посылается на сервер не в виде вызовов хранимых процедур, а в виде индивидуальных команд, то можно передать ему на анализ файл трассировки, созданный профайлером (SQL Profiler). Как готовить файл трассировки я скажу чуть позже, а пока хочу предупредить, что читает их «помощник» довольно медленно, ему ведь нужно проверить большое число зашитых правил, поэтому наберитесь терпения.
Если помощник находит чтото, он выводит эту информацию в отчет и предлагает дополнительное описание, позволяющее понять, можно ли с корректировками потерпеть до окончания перехода или несовместимости настолько серьезны, что сначала их нужно устранять и только потом затевать переход.
После всех выше описанных мероприятий можно начать собственно планирование перехода. И первым пунктом в нем должно быть тестирование. Чем тщательнее и ближе к реальной жизни будет проведено тестирование, тем больше шансов, что и в промышленной эксплуатации система будет работать, как ожидалось. Верно и обратное утверждение.
Вариант стратегии быстрого и надежного резервного копирования/восстановления VLDB по сети. Часть 2*
Проверка восстанавливаемости резервной копии
Следующим логическим шагом после создания резервной копии должна быть проверка на возможность воспользоваться файлами резервной копии для восстановления базы данных. Лучшим способом проверить это является восстановление базы данных из сохраненного файла резервной копии.