nscontrol disable 命令

更新日期: 2005 年 12 月 5 日

禁用指定的 Microsoft SQL Server Notification Services 实例、应用程序或组件。

语法

nscontrol disable 
    [-nologo]
    [-help]
    [<component> [...n ]]
        -name instanceName
    [-server databaseServer]
    [-application applicationName]
    [-sqlusername sqlUserName -sqlpassword sqlPassword]

< component > ::=
    -events [systemName]
    | -generator
    | -distributor [systemName]
    | -subscriptions
    | -subscribers 

参数

  • -nologo
    取消运行 nscontrol 命令时显示的产品和版本声明。
  • -help
    显示命令的语法。
  • <component>
    代表要禁用的组件。运行 nscontrol disable 时,可以不指定组件,也可以指定多个组件。

    如果不指定组件,则禁用实例或应用程序的所有组件。如果指定了组件,但未使用 -application 参数指定应用程序名称,则会禁用该实例承载的所有应用程序中的所有匹配组件。

    <component> 可以是以下任意参数:

    参数 说明

    -distributor [systemName]

    禁用实例或应用程序的分发。如果指定了分发服务器系统名称,则只禁用该系统上的分发服务器。否则,将禁用实例或应用程序的所有分发服务器。

    -events [systemName]

    禁用实例或应用程序的宿主事件提供程序。如果指定了系统名称,则只禁用该系统上的宿主事件提供程序。否则,将禁用实例或应用程序的所有宿主事件提供程序。

    -generator

    禁用生成器。

    -subscriptions

    禁用订阅管理。

    -subscribers

    禁用 Notification Services 实例的订阅服务器管理。

  • -nameinstanceName
    指定受 nscontrol disable 影响的实例名称。如果指定 -name 参数而不指定 -application 或组件,则 nscontrol 将禁用所有实例应用程序和组件。

    有关将 -name 参数与 -server 参数一起使用的信息,请参阅 -server 参数。

  • -serverdatabaseServer
    指定承载实例和应用程序数据库的服务器的名称。如果使用 SQL Server 命名实例承载数据库,则必须按如下格式指定服务器和实例的名称:<服务器名称>\<实例名称>

    在先前已经使用 nscontrol register 命令注册了实例的系统上运行 nscontrol disable 时,请使用 -name 参数,而不要使用 -server 参数。nscontrol 实用工具可以通过读取实例的注册表信息来确定 SQL Server 实例的名称。

    在未注册实例的系统上运行 nscontrol disable 时,必须同时使用 -name-server 参数,这是因为 nscontrol 实用工具同时需要 Notification Services 实例名和 SQL Server 实例名才能定位实例数据库。

    指定 -server 参数时,nscontrol 实用工具会忽略实例的所有注册表值。

  • -applicationapplicationName
    指定您要禁用其中的一个或多个组件的应用程序的名称。如果未指定应用程序名称,将禁用该实例承载的所有应用程序的组件。
  • -sqlusernamesqlUserName
    指定用于连接到 SQL Server 的 SQL Server 登录名。

    如果使用 SQL Server 身份验证连接到 SQL Server,则请使用此参数指定登录名。也可以使用 -sqlpassword 参数指定密码。

    如果使用的是 Windows 身份验证,则无需指定 -sqlusername-sqlpassword 参数。

    ms162841.note(zh-cn,SQL.90).gif重要提示:
    请尽可能使用 Windows 身份验证。
  • -sqlpasswordsqlPassword
    指定与 -sqlusername 登录名相关联的密码。此参数必须与 -sqlusername 参数一起使用。

备注

通过更新数据库中的值,nscontrol disable 命令可将指定组件的状态更改为“禁用挂起”。实例状态存储在实例数据库中。单个组件状态存储在应用程序数据库中。

运行 nscontrol disable 时,Notification Services 会将所需的状态更改广播到所有组件。在所有运行组件都已响应更改之后,状态将从“禁用挂起”更改到“禁用”。除订阅服务器和订阅组件以外,实例必须正在运行,组件状态才能从“禁用挂起”更改为“禁用”。但是,如果将状态从“启用挂起”更改为“禁用”或从“禁用挂起”更改为“启用”,则不需要运行服务,因为这些操作只是取消挂起操作。

nscontrol disable 修改数据库之后,它将显示实例、应用程序和组件的当前状态。有关状态值的说明,请参阅查看实例、应用程序和组件的状态

当引擎(通常是 NS$instance_name Windows 服务)启动时,它会确定自己的运行位置(它的主机名),然后将该值与每个分发服务器、宿主事件提供程序和生成器的 SystemName 值进行比较。如果主机名与 SystemName 值匹配,则服务将检查组件状态。如果该组件已启用,它将在服务器中运行。如果组件已禁用,则该组件不运行。

在服务运行时,它会每隔 30 秒检查一次数据库,以确定宿主事件提供程序、生成器和分发服务器的状态。因此,如果更改了这些组件中的任何一个组件的状态,则可能需要等待 30 秒的时间来使更改生效。

订阅方和订阅状态存储在数据库服务器中,在订阅管理对象执行订阅或订阅方操作之前,会检查该状态。

权限

用来运行 nscontrol disable 的帐户(或由 -sqlusername 参数所指定的 SQL Server 登录 ID)可以通过各个应用程序和实例数据库中的 NSAdmin 数据库角色的成员身份来获得适当的权限。db_owner 数据库角色的成员及 sysadmindbcreator 固定服务器角色的成员也可以运行 nscontrol disable

该帐户还必须拥有执行 Notification Services 二进制文件的权限;Administrators 和 SQLServerNotificationServicesUser Windows 组的成员会被授予该权限。

示例

A. 禁用整个 Notification Services 实例

以下示例禁用一个名为 StockInstance 的整个 Notification Services 实例。nscontrol 命令使用 Windows 身份验证连接到 SQL Server。实例必须在运行该命令的计算机上进行注册。

nscontrol disable -name StockInstance

B. 禁用单个应用程序

以下示例禁用由 Notification Services 的 StockInstance 实例承载的 Stock 应用程序的所有组件。nscontrol 命令使用 Windows 身份验证连接到 SQL Server。实例必须在运行该命令的计算机上进行注册。

nscontrol disable -name StockInstance -application Stock

C. 禁用所有宿主事件提供程序

以下示例禁用在 Notification Services 的 StockInstance 实例中的所有应用程序的所有事件集合。nscontrol 命令使用 Windows 身份验证连接到 SQL Server。实例必须在运行该命令的计算机上进行注册。

nscontrol disable -name StockInstance -events

D. 从管理计算机禁用实例

如果从未注册 StockInstance 的计算机上运行 nscontrol disable,则必须使用 -server 参数提供 SQL Server 实例名。以下示例显示数据库位于名为 nsuetest 的 SQL Server 实例中时,如何禁用实例。nscontrol 命令使用 Windows 身份验证连接到 SQL Server。

nscontrol disable -name StockInstance -server nsuetest

E. 使用 SQL Server 身份验证禁用实例

ms162841.note(zh-cn,SQL.90).gif重要提示:
请尽可能使用 Windows 身份验证。

以下示例禁用名为 StockInstance 的整个 Notification Services 实例。nscontrol 命令使用 SQL Server 身份验证连接到 SQL Server。实例必须在运行该命令的计算机上进行注册。

nscontrol disable -name StockInstance -sqlusername SqlUser 
    -sqlpassword sQl-P@sWd

请参阅

参考

nscontrol 实用工具

其他资源

启用和禁用实例、应用程序或组件

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2005 年 12 月 5 日

新增内容:
  • 添加了有关 SQLServerNotificationServicesUser Windows 组的信息。