逐步解說:向外延展部署
這個案例顯示如何在多部伺服器上部署 Notification Services 執行個體。在這個案例中,資料庫位於遠端伺服器,引擎元件向外延展跨三部伺服器。這個部署案例是針對需要多部伺服器來有效率地格式化及散發大量通知的大型應用程式。
附註: |
---|
所有 Notification Services 部署都是唯一的。請使用這個主題的程序作為開發及測試部署指示的方針。 |
下列圖片顯示這個部署案例的硬體組態。案例使用四部伺服器:NS1、NS2、NS3 和 SQL1。Notification Services 引擎執行於伺服器 NS1、NS2 和 NS3;NS1 執行事件提供者和產生器,而 NS2 和 NS3 則執行散發者。SQL1 會主控執行個體和應用程式資料庫。
NS1、NS2 和 NS3 可以使用一或兩個磁碟機;磁碟機數目在這些伺服器上不是關鍵。然而,SQL1 具有多個磁碟機,各供 Database Engine、資料檔、記錄檔和 tempdb 使用,以改善資料庫的效能。
必要條件
在部署 Notification Services 的執行個體之前,請確認已符合所有必要條件:
- 您先前已在 NS1、NS2 和 NS3 上安裝了作業系統,並已套用所有適用的 Service Pack 和更新。
- 您先前已經在 SQL1 上安裝了 Microsoft Windows 和 Microsoft SQL Server 2005 Database Engine,且已套用所有適用的 Service Pack 和更新。
- 執行這些程序所使用的帳戶具有伺服器的管理員權限,且是 SQL Server 中系統管理員 (sysadmin) 固定伺服器角色的成員。
- 您或您的網域管理員已為 Notification Services Windows 服務建立帳戶。針對這個逐步解說,主控的事件提供者和產生器執行所在伺服器 NS1 的帳戶是 DOMAIN\NSEPGen,而散發者執行所在伺服器 NS2 和 NS3 的帳戶是 DOMAIN\NSDist。建立分開的帳戶可以對權限有更大的控制。
- 已為事件和通知資料建立必要的檔案共用,且已授與存取到您帳戶、事件收取帳戶 DOMAIN\NSEPGen 及通知散發帳戶 DOMAIN\NSDist 之檔案的必要權限。
- Database Engine 上啟用了 TCP/IP 或具名管道網路通訊協定。在 SQL Server 2005 中,依預設會停用這些網路通訊協定。如需詳細資訊,請參閱<SQL Server 介面區組態>。
部署概觀
在這個部署逐步解說中,會在執行 Notification Services 引擎的伺服器 NS1 執行下列工作:
- 安裝 Notification Services。
- 授與 Windows 權限給 NSEPGen 帳戶。
- 建立和啟用 Notification Services 執行個體。
- 註冊 Notification Services 的執行個體,此舉會建立執行 Notification Services 引擎元件的 Windows 服務。
- 準備好要啟動產生通知時,請啟動 Notification Services 執行個體。
您在執行其他 Notification Services 引擎元件的 NS2 和 NS3 執行下列工作:
- 安裝 Notification Services。
- 授與 Windows 權限給 NSDist 帳戶。
- 註冊 Notification Services 的執行個體,此舉會建立執行 Notification Services 引擎元件的 Windows 服務。
- 準備好要啟動產生通知時,請啟動 Notification Services 執行個體。
您在主控資料庫的伺服器 SQL1 執行下列工作:
- 授與資料庫權限給 Windows 帳戶。
附註: Notification Services 也支援 SQL Server 驗證。 可能的話,請使用「Windows 驗證」。
下列指示使用 Notification Services 命令提示字元,來顯示如何利用指令碼進行部署。您也可以利用 SQL Server Management Studio 來部署 Notification Services 執行個體。如需使用 SQL Server Management Studio 的單一伺服器部署指示,請參閱<SQL Server Notification Services 範例>。
NS1 工作
步驟 1:安裝軟體
安裝 Notification Services。您可以安裝其他元件,但這些元件不是這個逐步解說的步驟所必需。
如需有關安裝元件的詳細資訊,請參閱<安裝 SQL Server Notification Services>。
步驟 2:授與 Windows 權限給 DOMAIN\NSEPGen 帳戶
在 [開始] 功能表上,依序指向 [程式集]、[Microsoft SQL Server 2005] 和 [Notification Services],然後按一下 [Notification Services 命令提示字元] 來開啟 Notification Services [命令提示字元] 視窗。
將 DOMAIN\NSEPGen 帳戶加入本機使用者群組中。在命令提示字元下,輸入下列 net localgroup 命令:
net localgroup users DOMAIN\NSEPGen /add
如需有關將帳戶加入本機群組的詳細資訊,請參閱您的 Windows 文件集。
步驟 3:建立和啟用 Notification Services 執行個體
在命令提示字元下,輸入下列命令來建立執行個體和應用程式資料庫:
nscontrol create -in "Path\ICFName"
依據 ICF,您可能需要提供其他命令提示字元引數和參數。
輸入下列命令來啟用執行個體:
nscontrol enable -nameinstanceName-serverdatabaseServer
因為尚未安裝和啟動 Notification Services 引擎,引擎元件是處於「啟用暫止」狀態。
如果您是在註冊執行個體之後啟用它,就可以省略 -server 引數。
步驟 4:註冊 Notification Services 執行個體
在開啟的 [命令提示字元] 視窗中,輸入下列命令:
nscontrol register -nameinstanceName-serverdatabaseServer-service
-serviceusername DOMAIN\NSEPGen
-servicepassword"password"
這個命令完成時,本機電腦上就會出現一個名叫 NS$instanceName 的 Windows 服務。
附註: |
---|
如果您是使用 SQL Server 驗證,則在註冊執行個體時,必須提供 SQL Server 驗證登入和密碼,然後再將權限授與這個登入。 |
NS2 和 NS3 的程序
NS2 和 NS3 在這個向外延展案例中執行散發者。您必須在這些伺服器中註冊執行個體,它會建立 Windows 服務。註冊執行個體之前,您必須先安裝 Notification Services 並授與 Windows 權限給服務帳戶。
步驟 1:安裝軟體
安裝 Notification Services。您可以安裝其他元件,但這些元件不是這個逐步解說的步驟所必需。
如需有關安裝元件的詳細資訊,請參閱<安裝 SQL Server Notification Services>。
步驟 2:授與 Windows 權限給 DOMAIN\NSDist 帳戶。
在 [開始] 功能表中,依序指向 [程式集]、[Microsoft SQL Server 2005] 和 [Notification Services],再按一下 [Notification Services 命令提示字元] 來開啟 [Notification Services 命令提示字元] 視窗。
將 DOMAIN\NSDist 帳戶加入本機使用者群組中。在命令提示字元下,輸入下列 net localgroup 命令:
net localgroup users DOMAIN\NSDist /add
如需有關將帳戶加入本機群組的詳細資訊,請參閱您的 Windows 文件集。
步驟 3:註冊 Notification Services 執行個體
在開啟的 [命令提示字元] 視窗中,輸入下列命令:
nscontrol register -nameinstanceName-serverdatabaseServer-service
-serviceusername DOMAIN\NSDist
-servicepassword"[password]"
這個命令完成時,本機電腦上就會出現一個名叫 NS$instanceName 的 Windows 服務。
附註: |
---|
如果您是使用 SQL Server 驗證,則在註冊執行個體時,必須提供 SQL Server 驗證登入和密碼,然後再將權限授與這個登入。 |
SQL1 工作
您必須授與 SQL Server 和資料庫權限給 Notification Services 引擎。如果 NS1、NS2 或 NS3 有安裝工作站元件,可以在這些伺服器之一執行這個工作而不需要登入 SQL1。
授與 SQL Server 和資料庫權限
開啟 [命令提示字元] 視窗。
輸入下列命令來為 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;"
在命令提示字元下,輸入下列命令在執行個體資料庫中建立 DOMAIN\NSEPGen 和 DOMAIN\NSDist 使用者,將 DOMAIN\NSEPGen 使用者加入 NSEventProvider 和 NSGenerator 資料庫角色中,將 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';"**
如果有獨立的應用程式資料庫,輸入下列命令在應用程式資料庫中建立 DOMAIN\NSEPGen 和 DOMAIN\NSDist 使用者,將 DOMAIN\NSEPGen 使用者加入 NSEventProvider 和 NSGenerator 資料庫角色中,將 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 服務。針對這個逐步解說,在伺服器 NS1、NS2 和 NS3 上開啟 [命令提示字元] 視窗,輸入下列命令:
**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 公用程式