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) 之後,顯示 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 所指定的金鑰相同。如果金鑰值相同,便會繼續更新。建立好執行個體之後,就無法再變更金鑰。
- -timeout seconds
這是完成各項更新動作 (如建立或移除索引) 的逾時值 (以秒為單位)。預設的逾時值是 30 秒。如果有任何單一動作可能需要超出 30 秒,請設定較大的逾時值。
param=value
這是在命令提示字元之下,用來將參數值傳給組態檔的名稱/值組。如果組態檔包含可取代的參數 (如 %DBSystem%),請在命令提示字元中指定參數名稱和值。例如,如果組態檔包含下列 XML:
<SqlServerSystem>%DBSystem%</SqlServerSystem>
請依照下列方式,利用 nscontrol update 來指定名稱和值:
nscontrol create -in config.xml DBSystem=MySQLServer
ICF 中的參數會套用您在命令提示字元之下提供的參數值,但 ADF 中的參數不會套用這些參數值。若要將參數值傳給 ADF,請在組態檔的 Application 區段中加入 Parameters 子區段。您可以利用可取代的參數來作為這個節點內的值。您可以在命令提示字元之下提供這些參數的值。
除了在命令提示字元之下指定參數,您也可以在 ICF 中使用環境變數,如 %COMPUTERNAME%。如果您在 ICF 中使用環境變數,請注意,在命令提示字元之下同名的名稱/值組比環境變數優先。
備註
nscontrol update 命令會比較資料庫與 ICF 和 ADF 中的 XML。對於每一項有效的變更,nscontrol update 都會依照 XML 檔所指定來更新資料庫。
ICF 和 ADF 中的元素並非全部都能更新。這些檔案中的部份元素會指定一些「在沒有刪除和重新建立執行個體的情況下,便無法變更」的選項。如需詳細資訊,請檢閱<Instance Configuration File Reference>和<Application Definition File Reference>這兩節。每個主題都包含一個 Updates 資料列,指出欄位是否可以更新。
重要事項: |
---|
強烈建議您先備份執行個體和應用程式資料庫,再更新執行個體。更新作業有可能在完成之前失敗。如果發生這個情況,執行個體和應用程式資料庫可能會停留在不一致的狀態中,這表示執行個體和應用程式可能無法運作,資料可能會遺失。 |
附註: |
---|
在執行 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,來儲存訂閱資料。如果您後來又更新相同的訂閱類別,當 nscontrol update 嘗試重新命名資料表時,如果 NS<*subscription_class>*SubscriptionsOld 仍存在,重新命名會失敗。如需詳細資訊,請參閱<更新應用程式>。
如果 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. 更新執行個體,檢視所有差異
這個範例會顯示如何利用名稱為 InstanceConfig.xml 的 ICF 來更新執行個體。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 日 |
|