Service Broker 與 AlwaysOn 可用性群組 (SQL Server)
本主題包含將 Service Broker 設定為使用 SQL Server 2014 中Always On可用性群組的相關資訊。
本主題內容:
讓可用性群組中之服務接收遠端訊息的需求
確定可用性群組擁有接聽程式。
如需詳細資訊,請參閱建立或設定可用性群組接聽程式 (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 的優先權低於明確指定與遠端執行個體通訊之特定服務的路由。
如需建立路由的詳細資訊,請參閱《線上叢書》) SQL Server 2008 R2 版本中的Service Broker 路由 (範例和CREATE ROUTE (Transact-SQL) 。
將訊息傳送至可用性群組中之遠端服務的需求
建立目標服務的路由。
依照下列方式設定路由:
將 ADDRESS 設定為裝載服務資料庫之可用性群組的接聽程式 IP 位址。
將 PORT 設定為您在每個遠端 SQL Server 執行個體之 Service Broker 端點中指定的通訊埠。
下列範例會針對
RouteToTargetService
服務建立名為ISBNLookupRequestService
的路由。 此路由會以使用通訊埠 4022 的可用性群組接聽程式MyAgListener
做為目標。CREATE ROUTE [RouteToTargetService] WITH SERVICE_NAME = 'ISBNLookupRequestService', ADDRESS = 'TCP://MyAgListener:4022';
如需詳細資訊,請參閱 CREATE ROUTE (Transact-SQL) 的相關資訊。
確定 msdb 包含 AutoCreatedLocal 路由或特定服務的路由。 (如需詳細資訊,請參閱本主題稍早的 讓可用性群組中之服務接收遠端訊息的需求。)
相關工作
另請參閱
AlwaysOn 可用性群組概觀 (SQL Server)
可用性群組接聽程式、用戶端連線及應用程式容錯移轉 (SQL Server)
SQL Server Service Broker