Если до сих пор с модернизацией старых баз данных SQL Server 6.5 можно было и подождать, то теперь настало время решительно шагнуть в двадцать первое столетие. Версию SQL Server 7.0 можно пропустить, так как SQL Server 2000 - официально поддерживаемая, самая современная версия с большим количеством дополнительных функций. Переход с SQL Server 6.5 на 2000, минуя SQL Server 7.0, поможет выполнить мастер модернизации SQL Server 2000 Upgrade Wizard. А перейти с SQL Server 7.0 на SQL Server 2000 будет еще проще (см. врезку «Переход на SQL Server 2000 с версии 7.0»).

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

Различия между SQL Server 2000 и 6.5 действительно велики, поэтому мы рекомендуем установить на компьютер SQL Server 2000 Books Online (BOL) и ознакомиться с новыми функциями. BOL можно загрузить с компакт-диска отдельно от остального программного обеспечения. Кроме того, BOL можно установить на компьютеры с Windows 2000 Professional, Windows NT Workstation 4.0 или Windows 98. И стандартная, и корпоративная версии выдадут сообщения об ошибке, указывая на невозможность установки, но клиентские программы установить можно. Необходимо выбрать соответствующий компонент и убрать флажки напротив остальных - будет установлен только компонент BOL.

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

На старт...

С помощью некоторых изменений в настройках SQL Server 6.5 можно сделать процесс перехода более гладким. Если средства позволяют, стоит произвести модернизацию и аппаратных средств, и операционной системы. Для более точной оценки расходов следует принять во внимание, что установка SQL Server 2000 на новый компьютер позволит эксплуатировать базы данных обеих версий параллельно. SQL Server 2000 и 6.5 можно запускать на одном и том же компьютере, но не в одно и то же время, пока не будут создаваться именованные экземпляры SQL Server 2000. Правда, это усложняет процесс модернизации, поскольку Up-grade Wizard создает экземпляр по умолчанию, а не именованный экземп-ляр SQL Server 2000. Возможно, для перехода с SQL Server 6.5 понадобится выполнить модернизацию серверного оборудования в соответствии с требованиями SQL Server 2000. Если имеется два сервера, то базы данных можно перемещать поочередно и не модернизировать их все сразу. А если этого недостаточно, чтобы убедить руководство купить еще один сервер, то чуть позже мы расскажем, как использовать старый компьютер.

Перед началом любой модернизации необходимо выполнить резервное копирование баз данных. Также следует запустить какие-либо утилиты контроля целостности базы данных (DBCC commands), например DBCC CHECKDB, чтобы не пытаться модернизировать поврежденную или испорченную базу данных. Если это еще не сделано, мы рекомендуем использовать для каждой базы данных мастер Generate SQL Script Wizard для создания сценариев SQL, содержащий все объекты во всех базах. Для этого требуется перейти в Enterprise Manager, выбрать базу данных, затем щелкнуть в меню Options, Generate SQL Scripts. В отличие от SQL Server 2000, генератор сценариев в SQL Server 6.5 создает объекты в пределах конкретной базы данных. Он не способен генерировать код на языке SQL, необходимый для создания базы данных, но его всегда можно добавить вручную. Также следует сгенерировать пользовательские настройки и настройки безопасности.

В SQL Server 2000 и 7.0 используется отличный от SQL Server 6.5 подход к индексации данных. В результате некоторые ничего не подозревающие администраторы баз данных (DBA) во время модернизации обнаруживают, что их базы данных стали слишком большими. В SQL Server 6.5 и раньше традиционные некластеризованные индексы использовали указатели на физические строки для привязки к реальной записи данных. В SQL Server 2000 и 7.0 некластеризованные индексы применяют ключ кластеризованного индекса для указания определенной записи данных при условии, что таблица кластеризована. Разработчики Microsoft сделали это для улучшения качества работы приложений во время модификации данных. Тем не менее такой подход может замедлить поиск данных, поэтому следует тщательно выбирать те столбцы, которые используются для построения кластеризованного ключа. Если значения в поле ключа короткие, например входящий номер или регистрационный номер покупателя, то рост базы данных вряд ли будет слишком большим. Однако если кластеризованный ключ относится к полю или комбинации полей, занимающих 20 байт или больше, необходимо пересмотреть стратегию индексации. Даже если значения в поле, которое является некластеризованным ключом, не занимают много места, каждый индекс SQL Server 2000 связан с кластеризованным ключом, указывающим на данные. Следовательно, общий объем индекса теперь будет больше, чем в предыдущих версиях.

Поскольку построение индексов в SQL Server 2000 и SQL Server 6.5 существенно различаются, даже если нет желания менять свою модель индексов, мы рекомендуем перед модернизацией все индексы отключить, а затем, после переноса данных в среду SQL Server 2000, восстановить их. Это ускорит процесс модернизации. Задача будет еще проще, если есть SQL-сценарии, созданные Generate SQL Script Wizard, которые подскажут, что следует восстановить.

Если в среде SQL Server 6.5 настроена репликация, в процессе модернизации на SQL Server 2000 будет перенесено все, в том числе репликация, при условии, что модернизация выполняется на месте, т. е. на том же компьютере. При переносе баз данных на другой компьютер придется отменить репликацию на SQL Server 6.5 и установить ее заново на SQL Server 2000. В системе репликаций SQL Server 2000 содержится несколько значительных изменений. Например, в подписке по запросу в SQL Server 2000 основная нагрузка ложится на подписчика, так как теперь со стороны подписчика запускается Distribution Agent. В SQL Server 6.5 управление множеством подписчиков осуществляет Distribution Server. То же справедливо и для подписки на рассылку в SQL Server 2000, но, что касается подписки по запросу, здесь работу должен выполнять подписчик. Одна из дополнительных функций включает репликацию слиянием, позволяющую выполнять двустороннее обновление. Подписка на отдельные статьи в SQL Server 2000 не приветствуется, следует подписываться на целую публикацию. Принимая во внимание большое количество новых функций репликации в SQL Server 2000, на этапе подготовки следует отменить все существую-щие сценарии репликации. В этом случае, восстанавливая репликацию после модернизации, можно будет в полной мере воспользоваться расширенной функциональностью, предоставляемой SQL Server 2000. Поэтому, прежде чем запустить процесс модернизации, следует отменить все задания для подписчиков, публикации и издателей, а также удалить задания на репликацию в базе данных SQL Server 6.5.

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

На имеющийся SQL Server 6.5 должен быть установлен пакет исправлений. Если производится модернизация «на месте» (на том же компьютере), то должен быть установлен SQL Server 6.5 Service Pack 5 (SP5). Если планируется модернизация посредством перемещения баз данных на SQL Server 2000, установленный на новом компьютере, то для версии 6.5 потребуется по крайней мере SP3. Если не установить соответствующий пакет исправлений, процесс модернизации будет прерван и появится сообщение об ошибке. Чтобы определить, установлен ли подходящий пакет исправлений, нужно открыть Query Analyzer (ISQL/w в SQL Server 6.5) и запустить

SELECT @@version

Первоначальный выпуск SQL Server 6.5 имел номер версии 6.50.201. SP3 модернизировал его до 6.50.258, SP5 до 6.50.415, а SP5a - до 6.50.416.

Внимание...

Но прежде, чем начать процесс модернизации, нужно позаботиться еще о некоторых деталях. База данных tempdb на сервере SQL Server 6.5 теоретически должна иметь размер не меньше 10 Мбайт (в Microsoft рекомендуют 25 Мбайт). На самом же деле объем tempdb уже должен превышать 25 Мбайт. Если это не так, при наличии свободного дискового пространства следует расширить ее объем до 50 или 100 Мбайт.

Главная база данных master должна иметь по меньшей мере 3 Мбайт свободного пространства. Если есть подозрение, что она не имеет такого количества свободного пространства, следует добавить 10 Мбайт. В любом случае ее придется скоро удалить, и, возможно, это последний момент, когда нужно увеличивать пространство для устройства и базы данных.

Далее необходимо отключить все хранимые процедуры, настроенные на автоматический запуск при начальной загрузке. Для предотвращения запуска этих процедур можно использовать хранимую процедуру sp_unmakestartup. Службы SQL Server останавливаются и запускаются в процессе модернизации несколько раз, поэтому не нужно, чтобы в это время работали какие-либо посторонние процедуры. Определить, какие процедуры запускаются при начальной загрузке, можно с помощью sp_helpstartup.

В BOL говорится: «Важно убедиться, что @@SERVERNAME определено на SQL Server 2000». Оказывается, нуж-но убедиться в том, что значение @@SERVERNAME определено, т. е. не NULL, как на SQL Server 2000, так и на SQL Server 6.5. Проверить, определено ли значение @@SERVERNAME можно, открыв Query Analyzer (в SQL Server 2000) или ISQL/w (в SQL Server 6.5) и выполнив команду

SELECT @@servername

Если результатом будет NULL, нужно выполнить команду

EXEC sp_addserver server_name, local

где server_name - имя сервера. Далее придется снова остановить и перезапустить службу SQL Server для того, чтобы сделанные изменения вступили в силу.

Перед началом модернизации следует проверить количество свободного пространства. Разработчики Microsoft рекомендуют иметь по меньшей мере в 1,5 раза больше свободного пространства, чем занимают базы данных SQL Server 6.5. Кроме того, нужно убедиться в наличии до 200 Мбайт свободного пространства на системном диске, т. е. на диске, где расположена папка Program Files. Установка SQL Server 2000 требует на системном диске больше пространства, чем на том диске, куда планируется установить SQL Server (в документации об этом не сказано). Проверить расположение системного диска можно в реестре, в разделе HKEY_LOCAL_MA-SHINESOFTWARE MicrosoftWindowsCurrentVersion ProgramFilesDir. Можно также проверить переменную окружения ProgramFiles в Windows 2000. Если принять во внимание легкость резервного копирования, прос-тоту модернизации операционной системы и ее производительность, становится очевидно, что располагать операционные системы и приложения на одном и том же диске нежелательно. Отсутствие выбора в данном случае является одним из немногих недостатков SQL Server 2000.

Прежде чем устанавливать SQL Server 2000, на сервере требуется инсталлировать Microsoft Internet Explorer (IE) версии 5.00.2314.0 или выше. Если модернизируется «старушка NT» с проработавшим пару лет SQL Server 6.5, может понадобиться IE 5.0. Напоминаем, что версия IE на оригинальном компакт-диске с NT 4.0 была 2.0.

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

Марш!

Инсталляция SQL Server 2000 начинается с поиска уже установленных версий SQL Server - 7.0 или 6.5. Если таковая найдена, программа переключается с варианта установки на модернизацию. В процессе установки есть возможность изменить сортировку по умолчанию и использовать либо сортировку Windows, либо сортировку SQL. Менять параметры сортировки по умолчанию Windows имеет смысл только в том случае, если приходится согласовывать их с другим экземпляром SQL Server или Windows на другом компьютере. Параметры сортировки SQL предназначены для совместимос-ти с предыдущими версиями SQL Server. Как бы то ни было, на время установки можно сохранить настройки по умолчанию, поскольку в SQL Server 2000 есть возможность, для обратной совместимости, поменять параметры сортировки каждой базы данных отдельно.

Часть времени процесса модернизации «по месту» занимает автоматичес-кая остановка служб SQL Server 6.5, установка SQL Server 2000, построение новой программной группы - Microsoft SQL Server - Switch- и запуск экземпляра SQL Server 2000. Новая программа Switch позволяет переключиться обратно на работу с SQL Server 6.5 на этом компьютере, удалить SQL Server 6.5 или запустить мастер модернизации SQL Server Upgrade Wizard. Обращаем внимание читателей, что в случае какой-либо проблемы и если работа Upgrade Wizard не будет завершена успешно, утилита Switch нормально работать не будет. В Program Manager могут появиться обе версии - SQL Server 2000 и SQL Server 6.5, при этом не все элементы из группы SQL Server 2000 могут оказаться активизированы. Однако если выполнить несколько последовательных переключений между версиями, то группа SQL Server 2000 исчезнет.

Чтобы настроить перенос баз данных SQL Server 6.5 на SQL Server 2000 минуя Upgrade Wizard, следует использовать Data Transformation Services (DTS). При этом придется установить две версии на разные компьютеры или использовать именованные экземпляры SQL Server 2000, поскольку для работы DTS должны быть запущены обе версии одновременно.

Модернизация «на месте» не включает в себя автоматическую модернизацию пользовательских баз данных. Чтобы модернизировать пользовательские базы данных нужно воспользоваться мастером Upgrade Wizard. Предложение задействовать Upgrade Wizard после выполнения модернизации «на месте» означает, что процесс перехода происходит быстрее, и базы данных можно перевести за один раз. Поскольку приходится выбирать меж-ду запуском SQL Server 2000 и 6.5 (они не могут работать в одно и то же время на одном и том же компьютере), понятно желание администратора конвертировать все базы данных сразу. Мастер Upgrade Wizard рекомендует модернизировать все базы данных за одну операцию. Если между базами данных имеются ссылки, то необходим именно такой вариант. Если же подобных ссылок нет, можно выбрать и другой способ.

Upgrade Wizard потребует аутентификации SQL Server, но по умолчанию для SQL Server 2000 используется аутентификация типа Windows NT Only. Эту настройку можно изменить во время установки SQL Server 2000 или в Enterprise Manager перед запуском Upgrade Wizard. В Enterprise Manager нужно выбрать сервер, щелкнуть на его имени правой кнопкой мыши и выбрать Properties, чтобы открыть диалоговое окно с закладками. Затем следует перейти на закладку Security и выбрать режим безопасности SQL Server и Windows. Когда пользователь нажимает OK, программа модернизации предлагает остановить и перезапустить службу SQL Server. Изменения настроек безопасности не вступят в силу до тех пор, пока не будет выполнен перезапуск. Нужно иметь в виду, что при установке SQL Server 2000 в режиме безопасности NT и последующем изменении режима безопасности SQL Server в учетной записи системного администратора будет иметь пустой пароль. Для ввода нового пароля после изменения режима безопасности требуется открыть в Enterprise Manager закладку Security и выбрать Logins. Затем нужно дважды щелкнуть по паролю администратора (sa) в списке паролей и ввести пароль.

Upgrade Wizard в процессе модернизации запускает и останавливает службы SQL Server, поэтому следует убедиться, что ни один пользователь не подключен к базе данных. Кроме того, необходимо проверить, отключены ли другие приложения, такие, как Enterprise Manager и Query Analyzer. Не стоит во время модернизации пытаться активизировать какие-либо элементы SQL Server, например Enterprise Manager. В этом случае программа модернизации, скорее всего, зависнет. Если нужно проверить какую-либо информацию, следует приостановить работу Upgrade Wizard, с помощью утилиты переключения версий перезапустить все службы, проверить данные и заново запустить Upgrade Wizard.

Экран 1. Выбор метода переноса данных.

Если пользователь запустил Upgrade Wizard и продвинулся дальше окна приветствия, он должен указать метод передачи данных (см. Экран 1). В типичной настройке при модернизации «на месте» используются именованные каналы с локальным соединением, а если выполняется перенос с сервера на сервер - именованные каналы с сетевым соединением. При модернизации «на месте» необходимо убедиться в наличии достаточного количества свободного пространства для добавления на сервер новых баз данных. Вот один из доводов в пользу модернизации по одной базе данных за раз: после каждой конвертации можно проверять, сколько остается свободного пространства. Если при модернизации «на месте» на компьютере недостаточно свободного пространства для двух экземпляров SQL Server и двух наборов баз данных, потребуется провести перенос данных с использованием магнитной ленты. Скопировав данные на ленту, можно с помощью Upgrade Wizard удалить все компоненты SQL Server 6.5, поэтому в операции резервного копирования важно не потерять ни одной подлежащей модернизации базы данных.

По окончании модернизации Upgrade Wizard проверяет, насколько успешно выполнен перенос объектов базы данных. Кроме того, он может выполнить полномасштабную проверку целостности данных, вычисляя контрольные суммы по всем столбцам во всех таблицах и сверяя итоговые значения с полученными до модернизации.

Экран 2. Указание регистрационной информации для нового и старого серверов.

Независимо от того, сколько компьютеров участвует в модернизации - один или два, нужно иметь учетные записи и для SQL Server 2000, и для 6.5. Соответствующее окно показано на Экране 2. Заметим, что в этом окне невозможно выбрать сервер импорта (Import Server), поскольку Import Server - это компьютер, на котором запущен Upgrade Wizard.

Экран 3. По умолчанию мастер Upgrade Wizard настроен на одновременную модернизацию всех баз данных.

По умолчанию, базы данных модернизируются все сразу (см. Экран 3). При желании модернизировать базы данных по одной или группами, часть из них можно исключить из общего списка. Upgrade Wizard поможет правильно расположить новые базы данных. SQL Server 2000 позволяет указать местоположение файлов с данными и журналов. Обычно файлы с данными и файлы журналов размещаются на разных физических дисках. Конвертировав базы данных, можно поменять местоположение файлов, их имена, а можно добавить файлы, расширив базу данных более чем на один диск. Для изменения местоположения файла следует выбрать в окне Database Creation параметр Edit (см. Экран 4). При выборе пункта Advanced в следую-щем окне выводится список файлов, дисков, сведения о наличии свободного пространства и другая информация. Если модернизируемая база данных SQL Server 6.5 располагалась на нескольких устройствах, то в этом списке для новой базы данных имеется несколько файлов. Большую часть данных Upgrade Wizard поместит в первый из них. Советуем воспользоваться предлагаемой возможностью и уменьшить размер файла. Гораздо проще выполнить эту работу по обслуживанию файлов на данном этапе, чем в тот момент, когда модернизация закончена и файлы уже содержат данные.

Экран 4. Выбор местоположения баз данных на компьютере с SQL Server

Нужно иметь в виду, что при модернизации базы данных SQL Server 6.5 ее можно перевести в созданную ранее базу данных SQL Server 2000. Правда, выбирать такой вариант (см. Экран 4) разработчики не рекомендуют. Базы данных должны иметь одинаковые имена, а созданная ранее база данных должна иметь подходящий размер, чтобы вместить переносимые данные. Те же требования будут предъявляться и в том случае, если запустить сценарий для построения баз данных - имена ранее созданной и новой баз данных должны совпадать, а размер должен соответствовать требованиям набора данных.

В процессе модернизации с помощью Upgrade Wizard можно перенести конфигурацию сервера, любые настройки репликации (даже если они отменены на этапе подготовки) и настройки SQL Executive. Конфигурация сервера включает в себя пароли, регистрационные данные для удаленного доступа и другие настраиваемые пользователем параметры, которые переносятся на SQL Server 2000. Многие серверные настройки либо не переносятся, либо не автоматизированы в SQL Server 2000; мастер игнорирует эти настройки. Если решено модернизировать, а не восстанавливать репликацию заново, то Upgrade Wizard перенесет настройки репликации в SQL Server 2000. При модернизации SQL Executive производятся перенос и модернизация всех назначенных заданий, но их реконфигурация происходит без учета новых возможностей, таких, как потоковая работа и мультисерверные задачи.

Если модернизировать базы данных по очереди, то во время работы со второй (и третьей, и четвертой) базой данных, все еще есть выбор - переносить или не переносить серверную конфигурацию. Однако на этот раз данная возможность не выбирается по умолчанию. При второй и последующих модернизациях включить перенос настроек репликации и настроек SQL Executive нельзя. Если решено переносить настройки репликации с SQL Server 6.5 на 2000, то нужно позаботиться о том, чтобы все вовлеченные в репликацию базы данных модернизировались во время первого цикла. Upgrade Wizard предупредит и о том, что нежелательно откладывать на последующие циклы модернизацию модельной базы данных. Модельную базу данных следует модернизировать либо во время первого цикла, либо не модернизировать совсем. До тех пор пока модельная база данных в SQL Server 6.5 не изменена: например, не добавлены некоторые пользовательские типы данных, которые желательно сохранить в SQL Server 2000, модернизировать модельную базу данных не нужно.

Upgrade Wizard позволяет менять установки ANSI Nulls и Quoted Identifiers. Обращаем внимание читателей на следующий важный момент: настройка ANSI Nulls в новой базе данных не влияет на настройку NULL/NOT NULL в столбцах модернизированной базы данных. Свойство NULL/NOT NULL модернизированных столбцов определяется настройкой ANSI Nulls в базе данных SQL Server 6.5 так, чтобы не нарушить существующих функций, процедур или задач.

Сложнее обстоит дело с установкой Quoted Identifiers. Если все объекты в базе данных SQL Server 6.5 были созданы единым способом, т. е. либо со значением On, либо со значением Off установки Quoted Identifiers, то в процессе модернизации следует выбрать ту же самую установку. Если настройки параметра Quoted Identifiers точно не известны или если объекты SQL Server 6.5 были созданы с различными настройками, лучше выбрать вариант Mixed (or don't know). В таком случае Upgrade Wizard будет искать объекты с двойными кавычками и конвертировать их, присвоив параметру Quoted Identifiers значение ON. Затем он конвертирует оставшиеся объекты и присваивает их установке Quoted Identifiers значение OFF.

На заключительном этапе Upgrade Wizard создает полный список выбранных настроек, с необходимыми предупреждениями. Просмотреть список можно в соответствующем окне или в редакторе Notepad. В последнем случае стоит не только просмотреть отчет о сделанных настройках, но и сохранить его в файле для дальнейшего использования. Экран содержит дополнительную инструкцию Click Finish to begin your upgrade («Для начала модернизации нажмите Finish»). По мере прохождения этапов модернизации в экран состояния добавляется по одной строке за шаг, чтобы можно было контролировать процесс. О завершении модернизации сообщается в отдельном окне. Теперь можно переключить внимание на более тонкую настройку баз данных в среде SQL Server 2000. Можно даже начать использовать новые функции SQL Server 2000.

Вторая жизнь

Итак, если выполняется переход на новый сервер, то вот как можно использовать старый сервер. Сначала удалите с него все базы данных после их переноса на новый сервер. Естественно, нужно убедиться, что старые файлы SQL Server 6.5 больше не понадобятся. Затем необходимо модернизировать старый сервер также до SQL Server 2000. Теперь нужно определить те базы данных и таблицы, которые чаще всего применяются для составления отчетов, и те, которые аналитики и менеджеры используют для просмотра данных при принятии решений. Далее следует выполнить репликацию этих баз данных целиком или по частям, как удобно, на старый сервер. Пользователей, делающих запросы, но не обновляющих базы данных, нужно перенаправить на реплицированные базы данных на старом сервере. Поскольку эти пользователи только запрашивают данные, их запросы могут содержать параметр WITH NOLOCK, поэтому они будут выполняться быстрее, невзирая ни на какие операции обновления (за исключением репликации, которая происходит быстро и с промежутками). Для дополнительного повышения скорости работы можно поэкспериментировать с уровнем изоляции транзакции read uncommitted. Кроме того, на разных серверах можно создать разные индексы. Пользователи, имеющие дело со входными данными, хотят, чтобы количество индексов было небольшим, но достаточным для операций обновления. Аналитики же для ускорения выполнения своих сложных запросов рады бы индексировать все. Если решить этот классический конфликт, предоставив каждой группе отдельную копию базы данных, то можно выглядеть благодетелем в глазах и тех и других. Нужно иметь в виду, что необходимы соответствующие лицензии для SQL Server 2000 и клиентские лицензии (CAL), так что затраты могут оказаться неоправданными. И уж во всяком случае можно использовать старый компьютер как файловый сервер MP3.

Майкл Рейли - редактор журналов SQL Server Magazine и Windows & .NET Magazine. С ним можно связаться по адресу: mdreilly@sqlmag.com

МИШЕЛЬ ПУЛЕ - редактор журнала SQL Server Magazine. С ней можно связаться по адресу: mapoolet@sqlmag.com


Переход на SQL Server 2000 с версии 7.0

При модернизации SQL Server 7.0 до SQL Server 2000 изменений происходит значительно меньше, чем при переходе с SQL Server 6.5. Структуры хранения данных одни и те же, а значит, базы данных конвертируются легко. Большинство новшеств в SQL Server 2000 являются дополнительными функциями, и проблемы совместимости минимальны, поскольку основы этих функций заложены в SQL Server 7.0.

Существует три подхода к процессу модернизации. Во-первых, можно просто модернизировать «на месте», заменяя SQL Server 7.0 установкой SQL Server 2000, так что все базы данных обновляются и продолжают работать. Во-вторых, можно установить на сервер именованный экземпляр SQL Server 2000 и запустить его совместно с SQL Server 7.0 (запускать в одно и то же время на одном и том же компьютере SQL Server 7.0 и установленный по умолчанию экземпляр SQL Server 2000 нельзя). Затем следует перенести базы данных в SQL Server 2000 по отдельности. Третий подход - установить SQL Server 2000 на новый компьютер и перенести на него базы данных. Можно перейти и на другую версию SQL Server, например с SQL Server 7.0 Standard Edition на SQL Server 2000 Enterprise Edition.

Первый вариант модернизации, «на месте», предполагает удаление SQL Server 7.0, поэтому необходимо позаботиться о том, чтобы под рукой были резервные копии баз данных и установки SQL Server 7.0 - просто так, на всякий случай. Новый экземпляр SQL Server 2000 - это экземпляр, устанавливаемый по умолчанию.

Второй и третий варианты позволяют поддерживать SQL Server 7.0 в рабочем состоянии без риска простоя и потери производительности баз данных. Можно перенести базы данных и пользователей, сохраняя версии, принадлежавшие SQL Server 7.0, как запасной экземпляр. Базы данных можно перенести вручную, применяя стратегию отсоединения/повторного присоединения, но мастер копирования баз данных Database Copy Wizard упрощает эту задачу. Он составляет задания на отсоединение и повторное присоединение в пакете Data Transformation Services (DTS). С его помощью можно скопировать не только базы данных, но и регистрационные данные, пользователей и настройки безопасности.

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

Если прибегнуть к методу модернизации, который позволяет запускать именованный экземпляр SQL Server 2000 совместно с SQL Server 7.0, такие инструменты, как Enterprise Manager и Query Analyzer, будут модернизированы до версии 8.0 (что соответствует SQL Server 2000). Меню Start будет показывать две группы программ - одну для SQL Server 2000 и одну для SQL Server 7.0. Многие элементы в группе SQL Server 7.0 будут обновлены до уровня 8.0. Пункт Books Online (BOL) в программной группе SQL Server 7.0 будет по-прежнему указывать на BOL от SQL Server 7.0.

Если имеется репликация, то придется выбрать модернизацию «по месту».

В противном случае придется удалять, а затем восстанавливать свои настройки репликации.

По окончании модернизации

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

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

назад

Поделитесь материалом с коллегами и друзьями