演练:群集单台服务器部署

本方案显示如何使用 Microsoft Windows 身份验证在故障转移群集上部署 Notification Services 实例。此配置与以前讨论的单台服务器部署方案相似,但它具有故障转移群集所提供的更高的可用性。此方案通常用于要求高可用性的中小型应用程序。有关故障转移群集和 Notification Services 的详细信息,请参阅在 Notification Services 中使用故障转移群集

ms171407.note(zh-cn,SQL.90).gif注意:
本演练提供了在故障转移群集上部署 Notification Services 的示例,并假设用户已熟悉故障转移群集。所用服务器的名称和数量只用作举例。使用本主题中的过程作为开发和测试您自己的部署说明的指南。

下图显示了此部署方案的硬件配置。此配置包含两台名为 NS1NS2 的服务器,每台服务器都安装了 Notification Services 和 SQL Server 数据库引擎。运行 Notification Services 引擎的 NS$instanceName Windows 服务被配置为群集一般服务,使其可在需要时故障转移到其他服务器。

此配置使用共享驱动器存放群集仲裁资源、所有数据库文件和所有操作文件。共享驱动器使群集能够访问独立于群集中活动服务器的驱动器。

单服务器群集配置

必备项

在故障转移群集上部署 Notification Services 实例之前,确认已满足所有先决条件:

  • 熟悉 Windows 群集和 SQL Server 在故障转移群集上的使用。

  • NS1NS2 上已安装了支持故障转移群集的 Windows Server 操作系统,并且应用了所有可应用的 Service Pack 和更新。

  • NS1NS2 上安装并运行 Windows 群集服务。

  • 具备一个供此演练使用的、名为 NSGroup 的群集组资源,其中包含下列资源:

    NSGroup 资源 说明

    网络名称:NSCluster

    服务器群集的网络名称。

    IP 地址

    群集 IP 地址。

    物理磁盘 K

    包含 Notification Services 源文件和通知应用程序的数据文件的磁盘。

    如果 SQL Server 资源在同一群集组中,则定义附加磁盘(请参阅上图中的 G、H 和 J)。

    ms171407.note(zh-cn,SQL.90).gif注意:
    上面显示的驱动器映射是为了实现本演练的教学目的。可以选择自己的名称和驱动器映射。
  • 在群集的两个节点上都安装了 SQL Server 数据库引擎 实例,并创建了 SQL Server 虚拟服务器。SQL Server 安装的群集资源可位于与 Notification Services 资源相同的群集组中或位于其他群集组中。
    有关在故障转移群集上安装数据库引擎 的详细信息,请参阅故障转移群集
    如上面的关系图所示,群集仲裁、数据库文件、日志文件和 tempdb 文件应位于单独的磁盘中。

  • 运行这些过程的帐户对服务器具有管理权限,并且是 SQL Server 中的 sysadmin 固定服务器角色的成员。

  • 您或域管理员已经创建了 Notification Services 引擎的帐户。对于本演练,此帐户名为 DOMAIN\NSService。

  • 已经为部署和运行 Notification Services 实例所需的文件创建了必要的文件共享。
    已授予您的帐户和 DOMAIN\NSService 帐户对这些共享的必要权限。

  • 如果在远程服务器上具有任何 Notification Services 引擎组件或客户端应用程序,请确保在数据库引擎 中启用了 TCP/IP 或命名管道网络协议。在 Microsoft SQL Server 2005 中,默认情况下将禁用这些网络协议。有关详细信息,请参阅 SQL Server 外围应用配置器

部署概述

在此部署演练中,将在主服务器 NS1 上执行下列操作:

  1. 安装 Notification Services。
  2. 映射网络驱动器,并为部署和实时文件创建群集文件共享资源。
  3. 授予 NSService 帐户 Windows 权限。
  4. 创建并启用 Notification Services 实例。
  5. 注册 Notification Services 实例,该实例创建运行 Notification Services 引擎的 Windows 服务。
  6. 使用群集管理器创建在故障转移群集上运行 Windows 服务的一般服务。
  7. 授予 Windows 帐户数据库权限。
    ms171407.note(zh-cn,SQL.90).gif注意:
    Notification Services 还支持 SQL Server 身份验证。 请尽可能使用 Windows 身份验证。

然后在群集中的其他服务器中执行下列步骤,本示例中的其他服务器为单台服务器 NS2

  1. 安装 Notification Services。
  2. 将网络驱动器映射到部署和实时文件。
  3. 将 Notification Services 引擎的帐户添加到本地用户组中。
  4. 注册 Notification Services 实例,该实例创建运行 Notification Services 引擎的 Windows 服务。

准备在群集中启动 Notification Services 实例时,启动一般服务群集资源。

第一台服务器 (NS1) 上的任务

在群集中的服务器 NS1 上执行下列任务。

步骤 1:将群集组移动到 NS1

  1. 在“控制面板”中,打开“管理工具”,再打开“群集管理器”。

  2. 在左窗格中,展开**“组”**。

  3. 选择 NSGroup,然后查看右窗格中的**“所有者”**列。

  4. 如果**“所有者”列指示另一台服务器拥有此群集组,则右键单击 NSGroup,再单击“移动”**。

    现在 NSGroup 资源已经在 NS1 中了。

步骤 2:安装 Notification Services

  1. 安装 Notification Services。可以安装其他组件,但并不要求必须安装这些组件。

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

步骤 3:创建文件共享资源并映射网络驱动器

  1. 使用群集管理器为源文件和数据文件创建文件共享资源。有关详细信息,请参阅群集管理器文档。

  2. 将网络驱动器映射到这些文件共享。有关映射网络驱动器的详细信息,请参阅 Windows 文档。

步骤 4:授予 DOMAIN\NSService 帐户 Windows 权限

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

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

    net localgroup users DOMAIN\NSService /add

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

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

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

    nscontrol create -in "Path\ICFName"

    根据配置文件,可能需要提供其他命令行变量和参数。

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

    nscontrol enable -nameinstanceName-servervirtualDatabaseServer

步骤 6:注册 Notification Services 的实例

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

    nscontrol register -name instanceName -server virtualDatabaseServer

        -service -serviceusername DOMAIN\NSService-servicepassword****"password"**

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

ms171407.note(zh-cn,SQL.90).gif注意:
如果使用 SQL Server 身份验证,则需在注册实例时提供 SQL Server 登录名和密码,然后对此 SQL Server 登录授予权限。有关详细信息,请参阅 nscontrol register 命令

步骤 7:创建一般服务资源

  1. 在“控制面板”中,打开“管理工具”,然后打开“群集管理器”。

  2. 打开**“组”**。

  3. 右键单击 NSGroup,指向**“新建”,再单击“资源”**。

  4. 在**“新建资源”**页上,输入下列信息:

    名称:instanceName

    资源类型:Generic Service

    组:NSGroup

  5. 在**“可能的所有者”页上的“可用节点”列表中,选中 NS1NS2,然后单击“添加”将其移动到“可能的所有者”**列表中。

  6. 在**“依存关系”页的“可用资源”列表中,选中 NSCluster 网络命名资源,然后单击“添加”将其移动到“资源依存关系”**列表中。

  7. 在**“一般服务参数”**页上,键入下列信息:

    服务名:**NS$**instanceName

  8. 选中**“将网络名用作计算机名”**复选框。

  9. 在**“注册表复制”页上,单击“完成”**。

步骤 8:授予数据库权限

  1. 键入下列命令创建 DOMAIN\NSService 帐户的一个 SQL Server 登录。

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

  2. 键入下列命令授予 DOMAIN\NSService 帐户对实例数据库的访问权限,并向 NSRunService 数据库角色中添加此帐户:

    sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;

    CREATE USER [DOMAIN\NSService];

    EXEC sp_addrolemember N'NSRunService', N'DOMAIN\NSService';"

  3. 键入下列命令授予 DOMAIN\NSService 帐户对应用程序数据库的访问权限,并向 NSRunService 数据库角色中添加此帐户:

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

    **    CREATE USER [DOMAIN\NSService];**

    EXEC sp_addrolemember N'NSRunService', N'DOMAIN\NSService';"

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

  4. 关闭命令提示符窗口。

ms171407.note(zh-cn,SQL.90).gif重要提示:
此时不要将一般服务联机;配置 NS2 之后再将一般服务联机。

其他服务器 (NS2) 上的任务

在服务器 NS2 上执行下列任务。

步骤 1:将群集组移动到 NS2

  1. 在“控制面板”中,打开“管理工具”,再打开“群集管理器”。

  2. 在左窗格中,展开**“组”**。

  3. 选择 NSGroup,然后查看右窗格中的**“所有者”**列。

  4. 如果**“所有者”列指示 NS1 拥有此群集组,则右键单击 NSGroup,再单击“移动”**。

现在 NSGroup 资源已经在 NS2 中了。

步骤 2:安装 Notification Services

  1. 安装 Notification Services。可以安装其他组件,但这些组件并不是部署所必需的。

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

步骤 3:映射网络驱动器

  1. 将网络驱动器映射到 NSSourceFiles 和 NSDataFiles,与在 NS1 上执行的网络驱动器映射相同。有关映射网络驱动器的详细信息,请参阅 Windows 文档。

步骤 4:授予 DOMAIN\NSService 帐户 Windows 权限

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

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

    net localgroup users DOMAIN\NSService /add

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

步骤 5:注册 Notification Services 的实例

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

  2. 在命令提示符窗口中,键入下列命令:

    nscontrol register -name instanceName -server virtualDatabaseServer

        -service -serviceusername DOMAIN\NSService-servicepassword****"password"**

现在群集中已经部署并启用了 Notification Services 实例。可以添加订阅方和订阅并提交事件,但在将一般服务联机之前,此实例不会生成通知。下面讨论如何将一般服务联机。

启动 Notification Services 实例

当您为实例启动生成通知的准备工作就绪时,便可以将一般服务联机。

将一般服务联机

  1. 在“控制面板”中,打开“管理工具”,再打开“群集管理器”。

  2. 在左窗格中,展开**“组”**。

  3. 选中 NSGroup

  4. 如果要将此群集组移回 NS1,请右键单击 NSGroup,然后选择**“移动”**。

  5. 在右窗格中,右键单击**“一般服务”,再单击“联机”**。

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

疑难解答

如果应用程序不生成通知,则请从 Notification Services 命令提示符运行下列命令,以检查实例的状态:

nscontrol status-name instanceName

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

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

请参阅

概念

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

其他资源

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

帮助和信息

获取 SQL Server 2005 帮助