共用方式為


Service Broker 與 AlwaysOn 可用性群組 (SQL Server)

本主題包含將 Service Broker 設定為使用 SQL Server 2014 中Always On可用性群組的相關資訊。

本主題內容:

讓可用性群組中之服務接收遠端訊息的需求

  1. 確定可用性群組擁有接聽程式。

    如需詳細資訊,請參閱建立或設定可用性群組接聽程式 (SQL Server)

  2. 確定 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)

  3. 授與端點的 CONNECT 權限。

    將 Service Broker 端點的 CONNECT 權限授與 PUBLIC 或登入。

    下列範例會將名為 broker_endpoint 之 Service Broker 端點的連接授與 PUBLIC。

    GRANT CONNECT ON ENDPOINT::[broker_endpoint] TO [PUBLIC]  
    

    如需詳細資訊,請參閱 GRANT (Transact-SQL)

  4. 確定 msdb 包含 AutoCreatedLocal 路由或特定服務的路由。

    注意

    根據預設,每個使用者資料庫 (包括 msdb) 都包含 AutoCreatedLocal路由。 此路由會比對所有服務名稱和 Broker 執行個體,並指定訊息應在目前執行個體內傳遞。 AutoCreatedLocal 的優先權低於明確指定與遠端執行個體通訊之特定服務的路由。

    如需建立路由的詳細資訊,請參閱《線上叢書》) SQL Server 2008 R2 版本中的Service Broker 路由 (範例CREATE ROUTE (Transact-SQL)

將訊息傳送至可用性群組中之遠端服務的需求

  1. 建立目標服務的路由。

    依照下列方式設定路由:

    • 將 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) 的相關資訊。

  2. 確定 msdb 包含 AutoCreatedLocal 路由或特定服務的路由。 (如需詳細資訊,請參閱本主題稍早的 讓可用性群組中之服務接收遠端訊息的需求。)

相關工作

另請參閱

AlwaysOn 可用性群組概觀 (SQL Server)
可用性群組接聽程式、用戶端連線及應用程式容錯移轉 (SQL Server)
SQL Server Service Broker