Как выполнить миграцию экземпляров служб Notification Services 2.0 на SQL Server 2005 (командная строка)

Изменения: 14 апреля 2006 г.

При наличии существующего экземпляра служб Notification Services 2.0, выполняющегося под управлением Microsoft SQL Server 2000, его можно обновить до Microsoft SQL Server 2005. Для этого необходимо обновить базы данных и экземпляр служб Notification Services. Ниже описано, как обновить экземпляр с помощью программ командной строки.

ms143519.note(ru-ru,SQL.90).gifВажно!
Экземпляры служб Notification Services можно развертывать во многих различных конфигурациях. Используйте приведенную ниже процедуру в качестве рекомендации для выработки собственных методов миграции.

Подготовка серверов к обновлению

  1. На сервере, на котором зарегистрирован экземпляр, отключите экземпляр служб Notification Services при помощи входящей в службы Notification Services 2.0 программы командной строки nscontrol:

    1. В меню Пуск последовательно выберите пункты Все программы, Microsoft SQL Server 2005, Средства настройки и выберите пункт Командная строка служб Notification Services.
    2. Чтобы отключить экземпляр, введите следующую команду:
      nscontrol disable -nameinstance_name
  2. На каждом из серверов, на котором выполняется служба Windows NS$имяЭкземпляра, остановите ее.

    1. Откройте окно командной строки служб Notification Services 2.0 и введите следующую команду, чтобы остановить экземпляр:
      **net stop NS$**instanceName
  3. На каждом из серверов, имеющем интерфейсы поставщика событий, генератора, распространителя или управления подпиской, отмените регистрацию экземпляра.

    1. Введите в открытом окне командной строки служб Notification Services:
      nscontrol unregister -nameinstance_name
    2. Закройте окно командной строки.

Обновление версии ядра СУБД и установка службы Notification Services

  1. При помощи программы установки SQL Server 2005 обновите Database Engine с SQL Server 2000 до SQL Server 2005. Дополнительные сведения см. в разделе Обновление компонента Database Engine.

  2. На каждом из серверов, имеющем интерфейсы поставщика событий, генератора, распространителя или управления подпиской, установите службы SQL Server 2005 Notification Services.

    Если службы Notification Services и базы данных расположены на одном и том же сервере, можно одновременно обновлять базы данных и устанавливать службы Notification Services.

    Установки служб Notification Services 2.0 в процессе обновления остаются неизменными.

Выполнение миграции экземпляра служб Notification Services

  1. На каждом из серверов, где экземпляр был зарегистрирован, зарегистрируйте экземпляр:

    1. В меню Пуск последовательно выберите пункты Все программы, Microsoft SQL Server 2005, Средства настройки и выберите пункт Командная строка служб Notification Services.
    2. Зарегистрируйте экземпляр с помощью команды nscontrol register. Следующая команда показывает, как зарегистрировать экземпляр и создать службу Windows, которая подключается к серверу базы данных с помощью проверки подлинности Windows:
      nscontrol register -nameinstanceName-serverdatabaseServer -service****-serviceusername** username -servicepassword password
      Для получения дополнительных сведений введите nscontrol register -? или см. раздел Команда nscontrol register.
  2. Чтобы восстановить метаданные экземпляра, на одном из серверов введите следующую команду:

    nscontrol repair -nameinstance_name-databaseinstanceDatabaseName-schemainstanceDatabaseSchema

  3. Чтобы обновить экземпляр и данные приложений, введите следующую команду:

    nscontrol upgrade -nameinstanceName

  4. Измените правила уведомлений в файле определения приложения (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, либо указываются при создании экземпляра.

  5. Чтобы обновить экземпляр служб Notification Services, введите следующую команду:

    nscontrol update -inICFPath\ICFName.xml

    Конкретные значения аргументов зависят от режима проверки подлинности.

  6. Чтобы включить экземпляр служб Notification Services, введите следующую команду:

    nscontrol enable -nameinstanceName

    Конкретные значения аргументов зависят от режима проверки подлинности.

  7. Замените все пользовательские компоненты новыми, скомпилированными с использованием сборок SQL Server 2005 и платформы Microsoft .NET Framework 2.0.

  8. Если используется COM-взаимодействие, перерегистрируйте базовую сборку служб Notification Services. Дополнительные сведения см. в разделе Как зарегистрировать сборку ядра служб Notification Services для взаимодействия COM.

  9. После запуска экземпляра введите следующую команду для каждого сервера, на котором выполняются компоненты ядра служб Notification Services:

    **net start NS$**instanceName

См. также

Задачи

Миграция экземпляров служб Notification Services 2.0 на SQL Server 2005
Как выполнить миграцию экземпляров служб Notification Services 2.0 в SQL Server 2005 (среда SQL Server Management Studio)

Другие ресурсы

Программа nscontrol

Справка и поддержка

Получение помощи по SQL Server 2005