Как выполнить миграцию экземпляров служб Notification Services 2.0 на SQL Server 2005 (командная строка)
Изменения: 14 апреля 2006 г.
При наличии существующего экземпляра служб Notification Services 2.0, выполняющегося под управлением Microsoft SQL Server 2000, его можно обновить до Microsoft SQL Server 2005. Для этого необходимо обновить базы данных и экземпляр служб Notification Services. Ниже описано, как обновить экземпляр с помощью программ командной строки.
Важно! |
---|
Экземпляры служб Notification Services можно развертывать во многих различных конфигурациях. Используйте приведенную ниже процедуру в качестве рекомендации для выработки собственных методов миграции. |
Подготовка серверов к обновлению
На сервере, на котором зарегистрирован экземпляр, отключите экземпляр служб Notification Services при помощи входящей в службы Notification Services 2.0 программы командной строки nscontrol:
- В меню Пуск последовательно выберите пункты Все программы, Microsoft SQL Server 2005, Средства настройки и выберите пункт Командная строка служб Notification Services.
- Чтобы отключить экземпляр, введите следующую команду:
nscontrol disable -nameinstance_name
На каждом из серверов, на котором выполняется служба Windows NS$имяЭкземпляра, остановите ее.
- Откройте окно командной строки служб Notification Services 2.0 и введите следующую команду, чтобы остановить экземпляр:
**net stop NS$**instanceName
- Откройте окно командной строки служб Notification Services 2.0 и введите следующую команду, чтобы остановить экземпляр:
На каждом из серверов, имеющем интерфейсы поставщика событий, генератора, распространителя или управления подпиской, отмените регистрацию экземпляра.
- Введите в открытом окне командной строки служб Notification Services:
nscontrol unregister -nameinstance_name - Закройте окно командной строки.
- Введите в открытом окне командной строки служб Notification Services:
Обновление версии ядра СУБД и установка службы Notification Services
При помощи программы установки SQL Server 2005 обновите Database Engine с SQL Server 2000 до SQL Server 2005. Дополнительные сведения см. в разделе Обновление компонента Database Engine.
На каждом из серверов, имеющем интерфейсы поставщика событий, генератора, распространителя или управления подпиской, установите службы SQL Server 2005 Notification Services.
Если службы Notification Services и базы данных расположены на одном и том же сервере, можно одновременно обновлять базы данных и устанавливать службы Notification Services.
Установки служб Notification Services 2.0 в процессе обновления остаются неизменными.
Выполнение миграции экземпляра служб Notification Services
На каждом из серверов, где экземпляр был зарегистрирован, зарегистрируйте экземпляр:
- В меню Пуск последовательно выберите пункты Все программы, Microsoft SQL Server 2005, Средства настройки и выберите пункт Командная строка служб Notification Services.
- Зарегистрируйте экземпляр с помощью команды nscontrol register. Следующая команда показывает, как зарегистрировать экземпляр и создать службу Windows, которая подключается к серверу базы данных с помощью проверки подлинности Windows:
nscontrol register -nameinstanceName-serverdatabaseServer -service****-serviceusername** username -servicepassword password
Для получения дополнительных сведений введите nscontrol register -? или см. раздел Команда nscontrol register.
Чтобы восстановить метаданные экземпляра, на одном из серверов введите следующую команду:
nscontrol repair -nameinstance_name-databaseinstanceDatabaseName-schemainstanceDatabaseSchema
Чтобы обновить экземпляр и данные приложений, введите следующую команду:
nscontrol upgrade -nameinstanceName
Измените правила уведомлений в файле определения приложения (ADF) для каждого из приложений, содержащихся в данном экземпляре.
Измените все правила формирования уведомлений, в которых используется функция Notify(), для использования синтаксиса INSERT INTO. Например, изменим правило служб Notification Services 2.0:
SELECT dbo.FlightNotificationsNotify(S.SubscriberId, S.DeviceName, S.SubscriberLocale, E.Carrier, E.LeavingFrom, E.GoingTo, E.Price, E.Conditions) FROM FlightEvents E, FlightSubscriptions S WHERE E.LeavingFrom = S.LeavingFrom AND E.GoingTo = S.GoingTo AND ( (E.Carrier = S.Carrier) OR (S.Carrier = '*') ) AND E.Price < S.Price
На следующий синтаксис, который не вызывает функцию Notify(), а выбирает данные и вставляет их в представление, имеющее имя класса уведомления (FlightNotifications):
INSERT INTO FlightNotifications(SubscriberId, DeviceName, SubscriberLocale, Carrier, LeavingFrom, GoingTo, Price, Conditions) SELECT S.SubscriberId, S.DeviceName, S.SubscriberLocale, E.Carrier, E.LeavingFrom, E.GoingTo, E.Price, E.Conditions FROM FlightEvents E, FlightSubscriptions S WHERE E.LeavingFrom = S.LeavingFrom AND E.GoingTo = S.GoingTo AND ( (E.Carrier = S.Carrier) OR (S.Carrier = '*') ) AND E.Price < S.Price
Измените номера версий в ADF и ICF. (Необязательно)
Если экземпляр был перемещен, измените значения SystemName в ADF и значение SqlServerSystem в ICF. Эти значения могут быть параметрами, указывающими, что значения находятся в узле ParameterDefaults, либо указываются при создании экземпляра.
Чтобы обновить экземпляр служб Notification Services, введите следующую команду:
nscontrol update -inICFPath\ICFName.xml
Конкретные значения аргументов зависят от режима проверки подлинности.
Чтобы включить экземпляр служб Notification Services, введите следующую команду:
nscontrol enable -nameinstanceName
Конкретные значения аргументов зависят от режима проверки подлинности.
Замените все пользовательские компоненты новыми, скомпилированными с использованием сборок SQL Server 2005 и платформы Microsoft .NET Framework 2.0.
Если используется COM-взаимодействие, перерегистрируйте базовую сборку служб Notification Services. Дополнительные сведения см. в разделе Как зарегистрировать сборку ядра служб Notification Services для взаимодействия COM.
После запуска экземпляра введите следующую команду для каждого сервера, на котором выполняются компоненты ядра служб Notification Services:
**net start NS$**instanceName
См. также
Задачи
Миграция экземпляров служб Notification Services 2.0 на SQL Server 2005
Как выполнить миграцию экземпляров служб Notification Services 2.0 в SQL Server 2005 (среда SQL Server Management Studio)