Sql-Server

如何將應用程序重新連接到 SQL Server 分佈式可用性組中的不同偵聽器

  • August 13, 2021

我創建了一個 SQL Server 分佈式可用性組 (AG),它跨越兩個底層 AG,每個 AG 都部署在不同位置的 Windows 群集上。我還為每個“本地”AG 創建了一個監聽器。我的應用程序使用其偵聽器連接到主 AG。但是,如果此 AG 出現故障並且我需要故障轉移到另一個位置(具有自己的偵聽器)的輔助 AG,則應用程序不會自動重新連接到第二個 AG,因為它具有不同的偵聽器。有沒有辦法配置應用程序,以便在第一個 AG 出現故障並故障轉移時重新連接到輔助 AG?

謝謝你。Ĵ

參考:

  1. 配置 Always On 分佈式可用性組
  2. Rajendra Gupta的分佈式 SQL Server Always On 可用性組概述
  3. 設置和實施 SQL Server 2016 Always On 分佈式可用性組,作者 Edwin Sarmiento

確保端點可以在分佈式可用性組中的不同可用性組之間進行通信。如果一個可用性組設置為端點上的特定網路,分佈式可用性組將無法正常工作。在託管分佈式可用性組中的副本的每台伺服器上,將偵聽器設置為偵聽所有 IP 地址 (LISTENER_IP = ALL)。

然後,您創建一個包含兩個偵聽器的分佈式可用性組。例子:

CREATE AVAILABILITY GROUP [distributedag]  
  WITH (DISTRIBUTED)   
  AVAILABILITY GROUP ON  
     'ag1' WITH    
     (   
        LISTENER_URL = 'tcp://ag1-listener.contoso.com:5022',    
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,   
        FAILOVER_MODE = MANUAL,   
        SEEDING_MODE = AUTOMATIC   
     ),   
     'ag2' WITH    
     (   
        LISTENER_URL = 'tcp://ag2-listener.contoso.com:5022',   
        AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,   
        FAILOVER_MODE = MANUAL,   
        SEEDING_MODE = AUTOMATIC   
     );    
GO

它沒有支持多個集群之間自動故障轉移的機制。分佈式可用性組僅支持使用 FORCE_FAILOVER_ALLOW_DATA_LOSS 參數的手動故障轉移

您不能為分佈式可用性組配置偵聽器。在這種情況下,您的應用程序無法自動將連接重定向到另一個集群(主集群)。它需要在應用程序連接字元串中進行顯式配置

引用自:https://dba.stackexchange.com/questions/298035