如何将 Notification Services 2.0 实例迁移到 SQL Server 2005 (SQL Server Management Studio)

更新日期: 2006 年 4 月 14 日

如果现有的 Notification Services 2.0 实例在 Microsoft SQL Server 2000 上运行,则可以升级数据库和 Notification Services,然后将 Notification Services 实例迁移到 Microsoft SQL Server 2005。

下列过程显示如何使用 SQL Server Management Studio 升级实例。

ms143756.note(zh-cn,SQL.90).gif重要提示:
Notification Services 实例可以在许多不同配置下部署。请使用下列过程作为开发和测试您自己的迁移过程的指南。

升级服务器之前的准备工作

  1. 使用 Notification Services 2.0 版的 nscontrol 命令提示实用工具禁用 Notification Services 实例:

    1. 在**“开始”菜单上,指向“程序”\“Microsoft SQL Server Notification Services”,再单击“Notification Services 命令提示”**。
    2. 键入以下命令,禁用实例:
      nscontrol disable -nameinstance_name
  2. 在每个运行 NS$instanceName Windows 服务的服务器上,停止该服务:

    1. 在**“开始”菜单上,指向“程序”\“Microsoft SQL Server Notification Services”,再单击“Notification Services 命令提示”**。
    2. 键入以下命令,停止实例:
      **net stop NS$**instanceName
  3. 在每个具有事件提供程序、生成器、分发服务器或订阅管理界面的服务器上,撤消注册该实例。

    1. 在打开的 Notification Services 命令提示窗口中键入以下内容:
      nscontrol unregister -nameinstance_name
    2. 关闭命令提示窗口。

升级数据库引擎并安装 Notification Services

  1. 使用 SQL Server 2005 安装程序,将数据库引擎从 SQL Server 2000 升级到 SQL Server 2005。有关详细信息,请参阅升级数据库引擎

  2. 在每个运行事件提供程序、生成器、分发服务器或订阅管理界面的服务器上,安装 SQL Server 2005 Notification Services。

    如果 Notification Services 和数据库位于同一台服务器上,则可以同时升级数据库并安装 Notification Services。

迁移 Notification Services 实例

  1. 打开 SQL Server 2005 Notification Services 命令提示符窗口,将实例信息添加到系统数据库:

    1. 在**“开始”菜单上,指向“所有程序”\“Microsoft SQL Server 2005”\“配置工具”,再单击“Notification Services 命令提示”**。
    2. 键入以下命令修复实例元数据:
      nscontrol repair -nameinstance_name-databaseinstanceDatabaseName-schemainstanceDatabaseSchema-serverdatabaseServer
  2. 使用 SQL Server Management Studio 升级实例和应用程序数据库数据:

    1. 在**“开始”**菜单上,指向 “程序”\“Microsoft SQL Server”,然后单击 SQL Server Management Studio
    2. 连接到承载实例和应用程序数据库的 SQL Server 实例。
    3. 在对象资源管理器中,展开 Notification Services
    4. 右键单击实例,指向**“任务”,然后选择“升级”**。
      这样便可升级数据库架构、存储过程以及在实例和应用程序数据库中的版本号。
  3. 为实例承载的每个应用程序修改应用程序定义文件 (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 中的版本号。(可选)

    • 如果移动了该实例,请更新 ADF 中的 SystemName 值和 ICF 中的 SqlServerSystem 值。这些值可能为参数,这意味着这些值位于 ParameterDefaults 节点中,或者在创建实例时提供。

  4. 在对象资源管理器中,右键单击 Notification Services 实例,指向**“任务”,然后选择“更新”**。

    在**“更新”**对话框中提供请求的信息。更新实例及其应用程序的过程将 ADF 和 ICF 更改应用到数据库。

    确保选中**“更新实例后启用它”**。

  5. 在以前注册实例的每个服务器上,注册实例。

    SQL Server Management Studio 只在本地计算机上注册实例。若要使用 SQL Server Management Studio 注册实例,请右键单击实例,指向**“任务”,再选择“注册”**。

    如果必须在未安装 SQL Server Management Studio 的服务器上注册实例,请使用 SQL Server 2005 nscontrol register 命令行实用工具来注册实例。

  6. 将任何自定义组件替换为使用 SQL Server 2005 程序集和 Microsoft .NET Framework 2.0 编译的新组件。

  7. 如果使用的是 COM interop,请重新注册核心 Notification Services 程序集。有关详细信息,请参阅如何为 COM Interop 注册核心 Notification Services 程序集

  8. 在对象资源管理器中,右键单击实例,然后选择**“启动”**。

请参阅

任务

将 Notification Services 2.0 实例迁移到 SQL Server 2005
如何将 Notification Services 2.0 实例迁移到 SQL Server 2005(命令提示符)

其他资源

管理实例和应用程序帮助主题 (Notification Services)
nscontrol register 命令

帮助和信息

获取 SQL Server 2005 帮助