nscontrol update 命令
更新日期: 2005 年 12 月 5 日
更新 SQL Server Notification Services 现有实例的实例数据库和应用程序数据库。
语法
nscontrol update
[-nologo]
[-help]
-in configFile
[-verbose]
[-force]
[-sqlusername sqlUserName -sqlpassword sqlPassword]
[-argumentkey key]
[-timeout seconds]
[param=value ...]
参数
- -nologo
取消运行 nscontrol 命令时显示的产品和版本声明。
- -help
显示命令的语法。
- -inconfigFile
定义实例的实例配置文件 (ICF) 的路径和文件名。如果该文件位于当前目录,则无需提供路径。
- -verbose
如果在 ICF 和应用程序定义文件 (ADF) 中发现某些信息已经更改,则显示所有这些信息。这对调试或准确了解 nscontrol update 将执行的操作非常有用。
- -force
在 NSControl Update 显示了将要执行的操作之后,强制该命令继续执行,而不发出审批提示。
-sqlusernamesqlUserName
用于连接到 SQL Server 的 SQL Server 登录名。重要提示: Windows 身份验证比 SQL Server 身份验证更加安全。应该尽可能使用 Windows 身份验证。 如果使用 SQL Server 身份验证连接到 SQL Server,则必须同时指定 -sqlusername 和 -sqlpassword 参数。
如果使用的是 Windows 身份验证,则无需指定 -sqlusername 和 -sqlpassword 参数。
- -sqlpasswordsqlPassword
与 -sqlusername 登录名相关联的密码。应仅在使用 SQL Server 身份验证进行连接时指定密码。
- -argumentkeykey
使用 nscontrol register 和 nscontrol create 指定的同一注册表项值。如果 ICF 中的 EncryptArguments 值为 true,则需要使用此参数。nscontrol update 命令可以解密参数值,以查看该注册表项是否使用了 nscontrol create 指定的同一个注册表项。如果注册表项值相同,则继续更新。创建了实例后,将无法更改该注册表项。
- -超时 seconds
完成每个更新操作(如创建或删除索引)的超时时间(秒)。默认超时时间为 30 秒。如果任何单个操作所用的时间都可能超过 30 秒,则可以设置一个较长的超时值。
param=value
用于通过命令提示符向配置文件传递参数的“名称/值”对。如果配置文件包含可替换参数(如 %DBSystem%),则在命令提示符下指定参数名称和值。例如,如果配置文件中包含下列 XML 代码:
<SqlServerSystem>%DBSystem%</SqlServerSystem>
按如下方式使用 nscontrol update 指定名称和值:
nscontrol create -in config.xml DBSystem=MySQLServer
在命令提示符下提供的参数值应用于 ICF 中的参数,但不应用于 ADF 中的参数。若要将参数值传递给 ADF,请将 Parameters 子部分添加到配置文件中的 Application 部分。可以使用可替换参数作为该节点中的值。可以在命令提示符下提供这些参数的值。
除了在命令提示符下指定参数以外,还可以在 ICF 中使用环境变量,如 %COMPUTERNAME%。如果在 ICF 中使用环境变量,请注意,具有相同名称的命令提示符名称/值对优先于环境变量。
备注
nscontrol update 命令将 ICF 和 ADF 中的 XML 与数据库进行比较。对于每个有效更改,nscontrol update 将按照 XML 文件中的指定设置更新数据库。
并非 ICF 和 ADF 中的所有元素都可以更新。这些文件中的有些元素指定了一些选项,如果不将实例删除并重新创建,将无法更改这些选项。有关详细信息,请参阅Instance Configuration File Reference和Application Definition File Reference部分。每个主题都包含一个更新行,指示字段是否可以更新。
重要提示: |
---|
我们极力建议您在更新实例之前备份实例和应用程序数据库。更新操作可能会中途失败。如果出现这种情况,实例和应用程序可能处于不一致状态,这意味着实例和应用程序可能不可操作,且可能丢失数据。 |
注意: |
---|
在运行 nscontrol update 之前,请检查所有 ADF 和 ICF 以降低错误风险。如果文件真的出错,请先修复文件,再重新运行 nscontrol update。 |
如果使用了 Notification Services Standard Edition,并在 ADF 中指定 Standard Edition 不支持的选项,则 nscontrol update 将停止,而不更新实例。
如果更改 ADF 中的订阅类元数据,nscontrol update 会将现有的订阅类表 NS<*subscription_class>*Subscriptions 重命名为 NS<*subscription_class>*SubscriptionsOld,以保存订阅数据。以后更新同一个订阅类时,如果 NS<*subscription_class>*SubscriptionsOld 仍然存在,则 nscontrol update 重命名该表时会失败。有关详细信息,请参阅更新应用程序。
如果 ADF 中的事件类或通知类发生变化,nscontrol update 将删除这些类现有的表。
在执行更新时,nscontrol update 命令通常会显示对 ICF 和 ADF 的所有更改。但是,如果实例使用了参数加密,则 nscontrol update 将不显示加密后的参数。
更新实例前,请确保创建了表、视图、索引或其他 SQL Server 对象的任何代码检查并删除(或重命名)了所有同名的现有对象。这一点非常重要,因为 nscontrol update 不会自动删除同名的现有用户定义 SQL Server 对象。通过显式删除或重命名 SQL Server 对象,可以避免重复对象错误。有关详细信息,请参阅定义事件历史记录表。
权限
用于运行 nscontrol update 的帐户或在 -sqlusername 参数中指定的 SQL Server 登录名,必须是 nscontrol update 命令影响到的所有实例数据库和应用程序数据库中的 db_owner 数据库角色的成员,或者必须是 sysadmin 固定服务器角色的成员。
该帐户还必须拥有执行 Notification Services 二进制文件的权限;Administrators 和 SQLServerNotificationServicesUser Windows 组的成员会被授予该权限。
示例
以下示例阐释了如何更新实例。
A. 更新实例,查看所有差异
此示例显示了如何使用 ICF 命名的 InstanceConfig.xml 来更新实例。nscontrol update
命令可以显示已更新的配置文件和 ADF 中的所有差异。在继续更新之前,系统将会提示您回答 yes 或 no。
nscontrol
命令使用 Windows 身份验证连接到 SQL Server。
nscontrol update -in "C:\NS\Stock\InstanceConfig.xml"
-verbose
B. 在 ICF 包含参数时更新实例
此示例阐释了如何在更新实例时为 BaseDirectoryPath
、NSHost
和 SqlServer
参数提供值。nscontrol
命令使用 Windows 身份验证连接到 SQL Server。
nscontrol update -in "C:\NS\Stock\InstanceConfig.xml"
BaseDirectoryPath=C:\NS\Samples\Stock NSHost=nsuetest
SqlServer=nsuetest
C. 在使用参数加密时更新实例
此实例阐释了如何在使用参数加密时更新实例。nscontrol
命令使用 Windows 身份验证连接到 SQL Server。
nscontrol update -in "C:\NS\Stock\InstanceConfig.xml"
-argumentkey "MyArgumentKey"
D. 强制执行无提示更新
此示例阐释了如何更新实例而不提示审批更新。nscontrol
命令使用 Windows 身份验证连接到 SQL Server。
nscontrol update -in "C:\NS\Stock\InstanceConfig.xml" -force
E. 使用 SQL Server 身份验证更新实例
重要提示: |
---|
请尽可能使用 Windows 身份验证。 |
此示例阐释了如何使用 SQL Server 身份验证连接到 SQL Server 来更新实例。nscontrol update
命令可以显示已更新配置文件和 ADF 中的所有差异。在继续更新之前,系统将会提示您回答 yes 或 no。
nscontrol update -in "C:\NS\Stock\InstanceConfig.xml"
-sqlusername SqlUser -sqlpassword sQl-P@sWd
请参阅
参考
其他资源
更新实例和应用程序
EncryptArguments Element (ICF)
帮助和信息
更改历史记录
版本 | 历史记录 |
---|---|
2005 年 12 月 5 日 |
|