Service Broker 與 AlwaysOn 可用性群組 (SQL Server)
本主題包含將 SQL Server 2012 Service Broker 設定為使用 AlwaysOn 可用性群組 的相關資訊。
本主題內容:
讓可用性群組中之服務接收遠端訊息的需求
將訊息傳送至可用性群組中之遠端服務的需求
讓可用性群組中之服務接收遠端訊息的需求
確定可用性群組擁有接聽程式。
如需詳細資訊,請參閱<建立或設定可用性群組接聽程式 (SQL Server)>。
確定 Service Broker 端點存在而且設定正確。
在裝載可用性群組之可用性複本的每個 SQL Server 執行個體上,依照下列方式設定 Service Broker 端點:
將 LISTENER_IP 設定為 'ALL'。 這項設定會針對繫結至可用性群組接聽程式的任何有效 IP 位址啟用連接。
將所有主機伺服器執行個體的 Service Broker PORT 設定為相同的通訊埠編號。
提示 若要檢視給定伺服器執行個體之 Service Broker 端點的通訊埠編號,請查詢 sys.tcp_endpoints 目錄檢視的 port 資料行,其中 type_desc = 'SERVICE_BROKER'。
下列範例會建立使用預設 Service Broker 通訊埠 (4022) 並且接聽所有有效 IP 位址的 Windows 驗證 Service Broker 端點。
CREATE ENDPOINT [SSBEndpoint] STATE = STARTED AS TCP (LISTENER_PORT = 4022, LISTENER_IP = ALL ) FOR SERVICE_BROKER (AUTHENTICATION = WINDOWS)
如需詳細資訊,請參閱<CREATE ENDPOINT (Transact-SQL)>。
授與端點的 CONNECT 權限。
將 Service Broker 端點的 CONNECT 權限授與 PUBLIC 或登入。
下列範例會將名為 broker_endpoint 之 Service Broker 端點的連接授與 PUBLIC。
GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]
如需詳細資訊,請參閱<GRANT (Transact-SQL)>。
確定 msdb 包含 AutoCreatedLocal 路由或特定服務的路由。
[!附註]
根據預設,每個使用者資料庫 (包括 msdb) 都包含 AutoCreatedLocal 路由。 此路由會比對所有服務名稱和 Broker 執行個體,並指定訊息應在目前執行個體內傳遞。 AutoCreatedLocal 的優先權低於明確指定與遠端執行個體通訊之特定服務的路由。
如需有關建立路由的詳細資訊,請參閱<Service Broker 路由範例>(在 SQL Server 2008 R2 版本的線上叢書中) 和<CREATE ROUTE (Transact-SQL)>。
將訊息傳送至可用性群組中之遠端服務的需求
建立目標服務的路由。
依照下列方式設定路由:
將 ADDRESS 設定為裝載服務資料庫之可用性群組的接聽程式 IP 位址。
將 PORT 設定為您在每個遠端 SQL Server 執行個體之 Service Broker 端點中指定的通訊埠。
下列範例會針對 ISBNLookupRequestService 服務建立名為 RouteToTargetService 的路由。 此路由會以使用通訊埠 4022 的可用性群組接聽程式 MyAgListener 做為目標。
CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
如需詳細資訊,請參閱<CREATE ROUTE (Transact-SQL)>。
確定 msdb 包含 AutoCreatedLocal 路由或特定服務的路由 (如需詳細資訊,請參閱本主題稍早的<讓可用性群組中之服務接收遠端訊息的需求>)。
[Top]
相關工作
[Top]