Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

2.4. Обновление предыдущих версий SQL Server и миграция с Microsoft Access

SQL Server 2005 - обновление (upgrade) с предыдущих версий, возможные проблемы, способы обновления, Upgrade Advisor, уровень совместимости баз данных, миграция баз данных с Microsoft Access

Большинство администраторов и разработчиков стараются не использовать обновление старых серверов до более новых версий, и автор полностью разделяет их мнение. Проблема заключается в том, что очень часто после обновления старое приложение начинает работать некорректно. Нередко такое бывает, если приложение напрямую обращается к системным таблицам SQL Server или использует какие-либо нестандартные возможности. Могут также перестать работать пакетные задания (job) SQL Server Agent, пакеты DTS, скрипты резервного копирования, репликация, расширенные хранимые процедуры и т. п. В SQL Server 2005 изменений и неподдерживаемых возможностей предыдущих версий очень много, поэтому риск еще больше.

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

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

Еще один "мягкий" вариант — установить SQL Server 2005 на другой компьютер (или как другой именованный экземпляр) и перенести на него базы данных с предыдущих версий с одновременным обновлением. При этом вы, по крайней мере, гарантируете, что старый сервер на всякий случай у вас останется в неприкосновенности. Перенос баз данных с обновлением проще всего произвести так:

q      для баз данных SQL Server 7.0 и 2000 перенос можно выполнить при помощи Copy Database Wizard (Мастера копирования баз данных). Для этого достаточно подключиться к старому серверу из SQL Server Management Studio, щелкнуть правой кнопкой мыши по объекту переносимой базы данных в контейнере Databases (Базы данных) и в контекстном меню Tasks (Задачи) выбрать пункт Copy Database (Скопировать базу данных);

q      для баз данных SQL Server 6.0 и 6.5 (а также баз данных Access, FoxPro, Oracle, книг Excel, текстовых файлов) рекомендуется использовать SSIS Import and Export Wizard (Мастер импорта и экспорта SSIS), который в предыдущих версиях назывался DTS Import and Export Wizard. Его можно запустить из Business Intelligence Development Studio, а можно и при помощи файла DTSWizard.exe, который нужно найти в программных файлах SQL Server 2005.

После такого переноса с обновлением для перенесенной базы данных можно настроить режим совместимости с предыдущими версиями: от уровня 60 (т. е. совместимость с SQL Server версии 6.0) до 90 (т. е. SQL Server 2005). В зависимости от того, какой уровень совместимости выбран, в базах данных будут доступны разные возможности, и команды Transact-SQL тоже будут вести себя по-разному. Установить уровень совместимости баз данных можно при помощи графического интерфейса SQL Server Management Studio (из окна свойств базы данных на вкладке Options (Настройки)) или при помощи хранимой процедуры sp_dbcmptlevel. Полную справку о различиях в поведении баз данных с разными уровнями совместимости ищите в справке по этой хранимой процедуре в Books Online.

Однако предположим, что вам все-таки предписано произвести обновление вашего существующего сервера до SQL Server 2005. Что при этом стоит учесть?

Во-первых, напрямую можно обновить только SQL Server версий 7.0 и 2000 (с любым сервис-паком). Если вам необходимо произвести обновление SQL Server 4.2, 6.0 или 6.5, то придется вначале обновить эти версии до SQL Server 7.0 или 2000.

Во-вторых, с сайта Microsoft можно скачать приложение, которое называется Upgrade Advisor (SQLUAsetup.msi). Эта утилита анализирует существующие серверы SQL Server 7.0 и 2000 и установленные на них базы данных на предмет потенциальных проблем, которые могут возникнуть при обновлении до SQL Server 2005. По итогам обследования генерируется отчет со списком проблем и рекомендациями по их исправлению. Альтернатива Upgrade Advisor — утилита Best Practices Analyzer, которую также можно скачать с сайта Microsoft. Эта утилита проверяет ваш сервер и установленные базы данных на соответствие определенным правилам и рекомендациям. Часть правил относится к совместимости с SQL Server 2005. Подробно про работу с Best Practices Analyzer будет рассказываться в разд. 11.5.3.

Рекомендуется также не полагаться только на эти утилиты, но и прочитать статьи из раздела Backward Compatibility (Обратная совместимость) в Books Online, особенно раздел "Breaking Changes to Database Engine Features in SQL Server 2005" ("Важнейшие изменения в ядре базы данных в SQL Server 2005").

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

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

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

В принципе, для переноса таблиц вместе с данными можно использовать те же Integration Services (т. е. новые DTS), например, SSIS Import and Export Wizard, о котором говорилось ранее. Однако при его использовании возникает существенная проблема — он не переносит связи между таблицами (например, отношения первичный/внешний ключ). Если в вашей базе данных десятки и сотни таблиц, то этот недостаток может оказаться существенным: создавать руками каждую из связей долго и неудобно. Поэтому для переноса на SQL Server 2005 (или 2000) лучше всего использовать специальное средство, которое встроено непосредственно в Access. В русскоязычной версии Access оно называется "Мастер преобразования в формат Microsoft Access", а в английской — Upsizing Wizard. Кроме корректного переноса таблиц с данными, индексов, связей между таблицами, проверок и значений по умолчанию, этот мастер умеет автоматически переориентировать существующие формы и отчеты приложения Access на использование таблиц SQL Server. Мастер из Access 2003 вполне корректно работает с SQL Server 2005.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru