演练:扩展部署

本方案演示了如何在多台服务器上部署 Notification Services 实例。在本方案中,数据库位于远程服务器上,引擎组件扩展到了三台服务器中。本部署方案适用于需要多台服务器来有效地格式化和分发大量通知的大型应用程序。

ms166428.note(zh-cn,SQL.90).gif注意:
Notification Services 的所有部署都是唯一的。请将本主题中的过程用作开发和测试您自己的部署指令的准则。

下图显示了本部署方案的硬件配置。本方案使用四台服务器:NS1NS2NS3SQL1。Notification Services 引擎在服务器 NS1NS2NS3 上运行;NS1 运行事件提供程序和生成器,NS2NS3 运行分发服务器。SQL1 承载实例和应用程序数据库。

扩展配置

NS1NS2NS3 可以使用一个或两个磁盘驱动器,这些服务器上的驱动器数量不存在问题。但是,SQL1 有多个磁盘驱动器,它们分别用于数据库引擎、数据文件、日志文件以及 tempdb,以提高数据库的性能。

必备项

部署 Notification Services 实例之前,请确保满足以下所有前提条件:

  • NS1NS2NS3 已事先安装了操作系统,并且应用了所有可用的 Service Pack 和更新。
  • SQL1 已事先安装了 Microsoft Windows 和 Microsoft SQL Server 2005 数据库引擎,并且应用了所有可用的 Service Pack 和更新。
  • 运行这些过程的帐户对服务器具有管理权限,并且是 SQL Server 中的 sysadmin 固定服务器角色的成员。
  • 您或您的域管理员已经为 Notification Services Windows 服务创建了一个帐户。在本演练中,运行宿主事件提供程序和生成器的服务器 NS1 的帐户为 DOMAIN\NSEPGen,运行分发服务器的服务器 NS2NS3 的帐户为 DOMAIN\NSDist。创建单独的帐户可以更好地控制权限。
  • 您已经为事件和通知数据创建了所有必需的文件共享,并且已经向您的帐户授予了访问这些文件所必需的权限,向 DOMAIN\NSEPGen 帐户授予了事件拾取权限,向 DOMAIN\NSDist 帐户授予了通知分发权限。
  • 对数据库引擎 启用了 TCP/IP 协议或命名管道网络协议。在 SQL Server 2005 中,默认情况下禁用这些网络协议。有关详细信息,请参阅 SQL Server 外围应用配置器

部署概述

在本次部署演练中,您将对 NS1 执行以下任务,随后,该服务器将运行 Notification Services 引擎:

  1. 安装 Notification Services。
  2. 向 NSEPGen 帐户授予 Windows 权限。
  3. 创建并启用 Notification Services 实例。
  4. 注册 Notification Services 实例,该实例将创建运行 Notification Services 引擎组件的 Windows 服务。
  5. 准备好开始生成通知时,启动 Notification Services 实例。

对运行其他 Notification Services 引擎组件的 NS2NS3 执行以下任务:

  1. 安装 Notification Services。
  2. 向 NSDist 帐户授予 Windows 权限。
  3. 注册 Notification Services 实例,该实例将创建运行 Notification Services 引擎组件的 Windows 服务。
  4. 准备好开始生成通知时,启动 Notification Services 实例。

对承载数据库的服务器 SQL1 执行以下操作:

  • 向 Windows 帐户授予数据库权限。
    ms166428.note(zh-cn,SQL.90).gif注意:
    Notification Services 还支持 SQL Server 身份验证。 请尽可能使用 Windows 身份验证。

以下说明使用 Notification Services 命令提示符来演示如何编写部署脚本。您也可以使用 SQL Server Management Studio 来部署 Notification Services 实例。对于使用 SQL Server Management Studio 的单个服务器部署说明,请参阅 SQL Server Notification Services 示例

NS1 任务

步骤 1:安装软件

  1. 安装 Notification Services。您可以安装其他组件,但是本演练的步骤中不需要这些组件。

    有关安装组件的详细信息,请参阅安装 SQL Server Notification Services

步骤 2:授予 DOMAIN\NSEPGen 帐户 Windows 权限

  1. 在**“开始”菜单上,依次指向“所有程序”Microsoft SQL Server 2005Notification Services,再单击“Notification Services 命令提示”**以打开 Notification Services 命令提示符窗口。

  2. 将 DOMAIN\NSEPGen 帐户添加到本地 Users 用户组。在命令提示符处,键入以下 net localgroup 命令:

    net localgroup users DOMAIN\NSEPGen /add

    有关将帐户添加到本地组的详细信息,请参阅 Windows 文档。

步骤 3:创建并启用 Notification Services 的实例

  1. 在命令提示符处,键入下列命令以创建实例和应用程序数据库:

    nscontrol create -in "Path\ICFName"

    根据 ICF 的不同,可能需要提供其他命令提示符参数。

  2. 键入下列命令以启用实例:

    nscontrol enable -nameinstanceName-serverdatabaseServer

    由于尚未安装和启动 Notification Services 引擎,因此引擎组件处于启用挂起状态。

    如果在注册实例后启用实例,则可省略 -server 参数。

步骤 4:注册 Notification Services 的实例

  1. 在打开的命令提示符窗口中,键入下列命令:

    nscontrol register -nameinstanceName-serverdatabaseServer-service

        -serviceusername DOMAIN\NSEPGen

        -servicepassword"password"

    此命令完成后,本地计算机上将存在一个名为 NS$instanceName 的 Windows 服务。

ms166428.note(zh-cn,SQL.90).gif注意:
如果使用 SQL Server 身份验证,请在注册该实例时提供 SQL Server 身份验证登录名和密码,然后向该登录名授予权限。

针对 NS2 和 NS3 的过程

在此扩展方案中,NS2NS3 运行分发服务器。在这两个服务器上,必须注册创建 Windows 服务的实例。注册实例前,必须安装 Notification Services,并向服务帐户授予 Windows 权限。

步骤 1:安装软件

  1. 安装 Notification Services。您可以安装其他组件,但是本演练的步骤中不需要这些组件。

    有关安装组件的详细信息,请参阅安装 SQL Server Notification Services

步骤 2:向 DOMAIN\NSDist 帐户授予 Windows 权限

  1. 在**“开始”菜单上,依次指向“所有程序”Microsoft SQL Server 2005Notification Services,再单击“Notification Services 命令提示”**以打开 Notification Services 命令提示符窗口。

  2. 将 DOMAIN\NSDist 帐户添加到本地 Users 组。在命令提示符处,键入以下 net localgroup 命令:

    net localgroup users DOMAIN\NSDist /add

    有关将帐户添加到本地组的详细信息,请参阅 Windows 文档。

步骤 3:注册 Notification Services 的实例

  1. 在打开的命令提示符窗口中,键入下列命令:

    nscontrol register -nameinstanceName-serverdatabaseServer-service

        -serviceusername DOMAIN\NSDist

        -servicepassword"[password]"

    此命令完成后,本地计算机上将存在一个名为 NS$instanceName 的 Windows 服务。

ms166428.note(zh-cn,SQL.90).gif注意:
如果使用 SQL Server 身份验证,请在注册该实例时提供 SQL Server 身份验证登录名和密码,然后向该登录名授予权限。

SQL1 任务

必须将 SQL Server 权限和数据库权限授予 Notification Services 引擎。如果在 NS1NS2NS3 上安装了工作站组件,则可对其中的某台服务器执行此任务,从而不必登录到 SQL1

授予 SQL Server 权限和数据库权限

  1. 打开命令提示符窗口。

  2. 键入以下命令,为 DOMAIN\NSEPGen 和 DOMAIN\NSDist 帐户创建 SQL Server 登录名:

    sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\NSEPGen] FROM WINDOWS;"

    sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\NSDist] FROM WINDOWS;"

  3. 在命令提示符处,键入以下命令,在实例数据库中创建 DOMAIN\NSEPGen 和 DOMAIN\NSDist 用户,并将 DOMAIN\NSEPGen 用户添加到 NSEventProviderNSGenerator 数据库角色中,将 DOMAIN\NSDist 用户添加到 NSDistributor 数据库角色中:

    sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;

    EXEC CREATE USER [DOMAIN\NSEPGen];

    EXEC CREATE USER [DOMAIN\NSDist];

    EXEC sp_addrolemember N'NSEventProvider', N'DOMAIN\DOMAIN\NSEPGen';"

    EXEC sp_addrolemember N'NSGenerator', N'DOMAIN\DOMAIN\NSEPGen';"

    EXEC sp_addrolemember N'NSDistributor', N'DOMAIN\DOMAIN\Dist';"

  4. 如果拥有单独的应用程序数据库,则键入以下命令,在应用程序数据库中创建 DOMAIN\NSEPGen 和 DOMAIN\NSDist 用户,并将 DOMAIN\NSEPGen 用户添加到 NSEventProviderNSGenerator 数据库角色中,将 DOMAIN\NSDist 用户添加到 NSDistributor 数据库角色中:

    sqlcmd -E -S databaseServer -Q "USE applicationDatabase**;**

    EXEC CREATE USER [DOMAIN\NSEPGen];

    EXEC CREATE USER [DOMAIN\NSDist];

    EXEC sp_addrolemember N'NSEventProvider', N'DOMAIN\DOMAIN\NSEPGen';"

    EXEC sp_addrolemember N'NSGenerator', N'DOMAIN\DOMAIN\NSEPGen';"

    EXEC sp_addrolemember N'NSDistributor', N'DOMAIN\DOMAIN\Dist';"

    如果实例承载了多个应用程序,则对每个应用程序数据库重复以上步骤。

现在,您已经部署了 Notification Services 实例。您应该能够加载订阅方和订阅数据,并可将事件提交给应用程序。在启动 Windows 服务之前,Notification Services 不处理数据。下面将介绍如何启动 Windows 服务。

启动 Notification Services 实例。

如果已经准备好让实例开始生成通知,请在所有运行引擎组件的服务器上启动 Windows 服务。在本次演练中,请在服务器 NS1NS2NS3 上打开命令提示符窗口,然后键入以下命令:

**net start NS$**instance_name

有关详细信息,请参阅启动和停止 Notification Services 实例

您可以使用 SQL Server Management Studio 立即启动所有服务。有关详细信息,请参阅如何启动 Notification Services 实例 (SQL Server Management Studio)

疑难解答

如果应用程序未生成通知,请在 Notification Services 命令提示符处运行以下命令来检查实例的状态:

nscontrol status-name instanceName

请确保所有组件都在预期的服务器上运行,并处于启用状态。有关详细信息,请参阅查看实例、应用程序和组件的状态

此外,请检查 Windows 应用程序日志看是否存在错误。有关详细信息,请参阅对 Notification Services 进行故障排除

请参阅

概念

部署 Notification Services 实例
部署非宿主事件提供程序
部署订阅管理界面

其他资源

nscontrol create 命令
nscontrol enable 命令
nscontrol register 命令
sqlcmd 实用工具

帮助和信息

获取 SQL Server 2005 帮助