設定負載平衡器與可用性群組接聽程式 (Azure VM 上的 SQL Server)

適用於:Azure VM 上的 SQL Server

提示

有許多方法可部署可用性群組。 在相同 Azure 虛擬網路內的多個子網路中建立 SQL Server 虛擬機器 (VM),您的 Always On 可用性群組就可以簡化部署,而且不再需要 Azure Load Balancer 或分散式網路名稱 (DNN)。 如果您已在單一子網路中建立可用性群組,您可以將它移轉至多子網路環境

本文說明如何在使用 Azure Resource Manager 執行的單一子網路中,建立 Azure 虛擬機器中 SQL Server Always On 可用性群組的負載平衡器。 當 SQL Server 執行個體位於 Azure 虛擬機器時,可用性群組會需要負載平衡器。 負載平衡器會儲存可用性群組接聽程式的 IP 位址。 如果可用性群組跨越多個區域,則每個區域都需要負載平衡器。

若要完成此工作,您必須在使用 Resource Manager 執行的 Azure VM 中,部署 SQL Server Always On 可用性群組。 這兩部 SQL Server 虛擬機器必須屬於相同的可用性設定組。 您可以使用 Microsoft 範本在 Resource Manager 中自動建立可用性群組。 此範本會自動為您建立內部負載平衡器。

如果您想要的話,也可以 手動設定可用性群組

本文會要求您已經設定可用性群組。

檢視相關文章:

依照本文逐步執行,在 Azure 入口網站中建立和設定負載平衡器。 此程序完成之後,您會設定叢集,以將來自負載平衡器的 IP 位址使用於可用性群組接聽程式。

建立並設定負載平衡器

在這部分的工作中,執行下列步驟:

  1. 在 Azure 入口網站中,建立負載平衡器和設定 IP 位址。
  2. 設定後端集區。
  3. 建立探查。
  4. 設定負載平衡規則。

注意

如果 SQL Server 執行個體位於多個資源群組和區域中,請執行每個步驟兩次,在每個資源群組中各一次。

重要

Azure Load Balancer 的基本 SKU 將於 2025 年 9 月 30 日淘汰。 如需詳細資訊,請參閱官方公告。 如果您目前使用的是 Basic Load Balancer,則請在淘汰日前升級至 Standard Load Balancer。 如需指導,請檢閱升級負載平衡器

步驟 1:建立負載平衡器和設定 IP 位址

首先,建立負載平衡器。

  1. 在 Azure 入口網站中,開啟包含 SQL Server 虛擬機器的資源群組。

  2. 在資源群組中選取 [+ 建立新的]。

  3. 搜尋 負載平衡器。 在搜尋結果中,選擇 [負載平衡器] (由 Microsoft 所發佈)。

  4. 在 [負載平衡器] 窗格上,選取 [建立]

  5. 設定負載平衡器的下列參數。

    設定 欄位
    訂用帳戶 使用與虛擬機器相同的訂用帳戶。
    資源群組 使用與虛擬機器相同的資源群組。
    名稱 使用負載平衡器的文字名稱,例如 sqlLB
    區域 使用與虛擬機器相同的區域。
    SKU 標準
    型別 內部

    Azure 入口網站的窗格看起來應該會像這樣:

    Screenshot of the Azure portal, Create Load Balancer page.

  6. 選取 [下一步:前端 IP 設定]

  7. 選取 [新增前端 IP 設定]

    Screenshot of Azure portal, Create load balancer page, showing frontend IP configuration tab

  8. 使用下列值來設定前端 IP:

    • 名稱:可識別前端 IP 設定的名稱
    • 虛擬網路:與虛擬機器相同的網路。
    • 子網路︰與虛擬機器的子網路。
    • IP 位址指派:靜態。
    • IP 位址:使用子網路中可用的位址。 將此位址用於您的可用性群組接聽程式。 請注意這與您的叢集 IP 位址不同。
    • 可用性區域:選擇性地選擇要部署 IP 的可用性區域。

    下圖顯示 [新增前端 IP 設定] UI:

    Screenshot of Azure portal, add frontend IP configuration page.

  9. 選取 [新增] 以建立前端 IP。

  10. 選擇 [檢閱 + 建立] 以驗證組態,然後選擇 [建立] 以建立負載平衡器和前端 IP。

Azure 會建立負載平衡器。 此負載平衡器屬於特定的網路、子網路、資源群組和位置。 Azure 完成工作之後,請確認 Azure 中的負載平衡器設定。

若要設定負載平衡器,您必須建立後端集區、探查,並設定負載平衡規則。 請在 Azure 入口網站中執行這些操作。

步驟 2︰設定後端集區

Azure 會呼叫後端位址集區 backend pool。 在此情況下,後端集區是您的可用性群組中兩部 SQL Server 執行個體的位址。

  1. 在 Azure 入口網站中,移至您的可用性群組。 您可能需要重新整理檢視,才能看到新建立的負載平衡器。

    Screenshot of Azure portal, resource group page, searching for the Load Balancer.

  2. 選取負載平衡器,選取 [後端集區],然後選取 [+ 新增]。

  3. 提供後端集區的名稱

  4. 為 [後端集區設定] 選取 [NIC]。

  5. 選取 [新增],以將後端集區關聯至包含 VM 的可用性設定組。

  6. 在 [虛擬機器] 下方,選擇將裝載可用性群組複本的 SQL Server 虛擬機器。

    注意

    如果未指定這兩個虛擬機器,則只能成功連線至主要複本。

  7. 選取 [新增],以將虛擬機器新增至後端集區。

  8. 選取 [儲存] 以建立後端集區。

Azure 更新後端位址集區的設定。 您的可用性設定組現在有包含兩個 SQL Server 執行個體的集區。

步驟 3:建立探查

探查會定義 Azure 如何確認哪一個 SQL Server 執行個體目前擁有可用性群組接聽程式。 Azure 會根據在建立探查時定義的連接埠上的 IP 位址來探查服務。

  1. 選取負載平衡器,選擇 [健全狀態探查],然後選取 [+ 新增]。

  2. 依照下列方式設定接聽程式健康情況探查:

    設定 描述 範例
    名稱 Text SQLAlwaysOnEndPointProbe
    通訊協定 選擇 [TCP] TCP
    通訊埠 任何未使用的連接埠 59999
    間隔 探查嘗試間隔的時間長度 (秒) 5
  3. 選取 [新增] 以設定健全狀態探查。

注意

確定您指定的連接埠會在兩個 SQL Server 執行個體的防火牆上開啟。 這兩個執行個體需要您所用 TCP 通訊埠的輸入規則。 如需詳細資訊,請參閱新增或編輯防火牆規則

Azure 會建立探查,然後使用它來測試那一個 SQL Server 執行個體具有可用性群組的接聽程式。

步驟 4:設定負載平衡規則

負載平衡規則會設定負載平衡器如何將流量路由到 SQL Server 執行個體。 對此負載平衡器,您會啟用伺服器直接回傳,因為兩個 SQL Server 執行個體中一次只有一個會擁有可用性群組接聽程式資源。

  1. 選取負載平衡器,選擇 [負載平衡規則],然後選取 [+ 新增]。

  2. 依照下列方式接聽程式負載平衡規則。

    設定 描述 範例
    名稱 Text SQLAlwaysOnEndPointListener
    前端 IP 位址 選擇一個位址 使用您建立負載平衡器時所建立的位址。
    後端集區 選擇後端集區 選取後端集區,其中包含以負載平衡器為目標的虛擬機器。
    通訊協定 選擇 [TCP] TCP
    通訊埠 使用可用性群組接聽程式的連接埠 1433
    後端連接埠 如果已為伺服器直接回傳設定浮動 IP,則不會使用此欄位 1433
    健全狀態探查 您為探查指定的名稱 SQLAlwaysOnEndPointProbe
    工作階段持續性 下拉式清單 None
    閒置逾時 讓 TCP 連線保持開啟的分鐘數 4
    浮動 IP (伺服器直接回傳) 流程拓撲和 IP 位址對應配置 Enabled

    警告

    伺服器直接回傳是在建立時設定。 無法予以變更。

    注意

    您可能必須向下捲動窗格,以檢視所有設定。

  3. 選取 [儲存] 以設定接聽程式負載平衡規則。

Azure 會設定負載平衡規則。 負載平衡器現已設定成將流量路由傳送到裝載可用性群組接聽程式的 SQL Server 執行個體。

此時,資源群組有一個連接到這兩部 SQL Server 電腦的負載平衡器。 負載平衡器也包含 SQL Server AlwaysOn 可用性群組接聽程式的 IP 位址,以便電腦回應對可用性群組的要求。

注意

如果您的 SQL Server 執行個體位於兩個不同的區域,請在另一個區域中重複執行步驟。 每個區域都需要負載平衡器。

新增 Windows Server 容錯移轉叢集 (WSFC) 的叢集核心 IP 位址

WSFC IP 位址也必須位於負載平衡器上。 如果您使用 Windows Server 2019,請略過此程序,由於叢集會建立分散式伺服器名稱,而不是叢集網路名稱

  1. 在 Azure 入口網站中,移至相同的 Azure 負載平衡器。 選取 [前端 IP 組態],然後選取 [+ 新增]。 在叢集核心資源中,使用您為 WSFC 設定的 IP 位址。 將 IP 位址設為靜態。

  2. 在負載平衡器上,選取 [健全狀態探查],然後選取 [+ 新增]。

  3. 依照下列所述設定 WSFC 叢集核心 IP 位址健康情況探查:

    設定 描述 範例
    名稱 Text WSFCEndPointProbe
    通訊協定 選擇 [TCP] TCP
    通訊埠 任何未使用的連接埠 58888
    間隔 探查嘗試間隔的時間長度 (秒) 5
  4. 選取 [新增] 以設定健全狀態探查。

  5. 設定負載平衡規則。 選取 [負載平衡規則],然後選取 [+ 新增]。

  6. 依照下列所述設定叢集核心 IP 位址負載平衡規則。

    設定 描述 範例
    名稱 Text WSFCEndPoint
    前端 IP 位址 選擇一個位址 使用您在設定 WSFC IP 位址時所建立的位址。 這與接聽程式 IP 位址不同
    後端集區 選擇後端集區 選取後端集區,其中包含以負載平衡器為目標的虛擬機器。
    通訊協定 選擇 [TCP] TCP
    通訊埠 使用叢集 IP 位址的連接埠。 這個可用的連接埠不用於接聽程式探查連接埠。 58888
    後端連接埠 如果已為伺服器直接回傳設定浮動 IP,則不會使用此欄位 58888
    探查 您為探查指定的名稱 WSFCEndPointProbe
    工作階段持續性 下拉式清單 None
    閒置逾時 讓 TCP 連線保持開啟的分鐘數 4
    浮動 IP (伺服器直接回傳) 流程拓撲和 IP 位址對應配置 Enabled

    警告

    伺服器直接回傳是在建立時設定。 無法予以變更。

  7. 選取 [確定] 以設定負載平衡規則。

設定叢集以使用負載平衡器 IP 位址

下一個步驟是在叢集上設定接聽程式,並且讓接聽程式上線。 請執行下列步驟:

  1. 在容錯移轉叢集上建立可用性群組接聽程式。

  2. 使接聽程式連線。

步驟 5:在容錯移轉叢集上建立可用性群組接聽程式

在此步驟中,您會在容錯移轉叢集管理員和 SQL Server Management Studio 中手動建立可用性群組接聽程式。

可用性群組接聽程式是一個 IP 位址及網路名稱,可供 SQL Server 可用性群組接聽。 若要建立可用性群組接聽程式:

  1. 取得叢集網路資源名稱:

    a. 使用 RDP 連接到裝載主要複本的 Azure 虛擬機器。

    b. 開啟 [容錯移轉叢集管理員]。

    c. 選取 [網路]節點,然後記下叢集網路名稱。 請在 PowerShell 指令碼的 $ClusterNetworkName 變數中使用這個名稱。 下圖中的叢集網路名稱為 [叢集網路 1]:

    Screenshot that shows a cluster network name in Failover Cluster Manager.

  2. 新增用戶端存取點。 用戶端存取點是一個網路名稱,應用程式可用來連線到可用性群組中的資料庫。

    a. 在 [容錯移轉叢集管理員] 中,展開叢集名稱,然後選取 [角色]。

    b. 在 [角色] 窗格上,以滑鼠右鍵按一下可用性群組名稱,然後選取 [新增資源]>[用戶端存取點]。

    Screenshot of Failover Cluster Manager that shows selecting the Client Access Point command on the shortcut menu for the availability group.

    c. 在 [名稱] 方塊中,建立新接聽程式的名稱。 新接聽程式的名稱是應用程式將用來連線到 SQL Server 可用性群組中資料庫的網路名稱。

    d. 若要完成建立接聽程式,請選取 [下一步] 兩次,然後選取 [完成]。 此時請勿讓接聽程式或資源上線。

  3. 讓可用性群組的叢集角色離線。 在 [容錯移轉叢集管理員] 的 [角色] 下方,以滑鼠右鍵按一下角色,然後選取 [停止角色]。

  4. 為可用性群組設定 IP 資源:

    a. 選取 [資源] 索引標籤,然後展開您建立的用戶端存取點。 用戶端存取點離線。

    Screenshot of Failover Cluster Manager that shows an offline status for a client access point.

    b. 以滑鼠右鍵按一下 IP 資源,然後選取 [屬性]。 記下 IP 位址的名稱,並將它使用於 PowerShell 指令碼的 $IPResourceName 變數中。

    c. 在 [IP 位址] 下方,選取 [靜態 IP 位址]。 將 [IP 位址] 設為與您在 Azure 入口網站中設定負載平衡器的相同地址。

    Screenshot of Failover Cluster Manager that shows the selection of an IP address.

  5. 讓 SQL Server 可用性群組依存於用戶端存取點:

    a. 在 [容錯移轉叢集管理員] 中,選取 [角色],然後選取您的可用性群組。

    b. 在 [資源] 索引標籤的 [其他資源] 下方,以滑鼠右鍵按一下可用性群組資源,然後選取 [屬性]。

    c. 在 [相依性] 索引標籤上,新增用戶端存取點 (接聽程式) 的名稱。

    Screenshot of Failover Cluster Manager that shows adding a name on the Dependencies tab.

    d. 選取 [確定]。

  6. 讓用戶端存取點依存於 IP 位址:

    a. 在 [容錯移轉叢集管理員] 中,選取 [角色],然後選取您的可用性群組。

    b. 在 [資源] 索引標籤中,以滑鼠右鍵按一下 [伺服器名稱] 下方的用戶端存取點,然後選取 [屬性]。

    Screenshot of Failover Cluster Manager that shows the Properties menu option for the listener's name.

    c. 選取 [相依性] 索引標籤。請確認 IP 位址具有相依性。 否則,請在 IP 位址上設定相依性。 如果列出多個資源,請確認 IP 位址具有 [OR] (而非 [AND]) 相依性。 然後選取 [確定]。

    Screenshot of the Dependencies tab that shows an IP resource for an availability group.

    提示

    您可以驗證相依性是否已正確設定。 在 [容錯移轉叢集管理員] 中,移至 [角色],並以滑鼠右鍵按一下可用性群組,再選取 [其他動作],然後選取 [顯示相依性報告]。 正確設定相依性後,可用性群組會相依於網路名稱,而網路名稱則相依於 IP 位址。

  7. 在 PowerShell 中設定叢集參數:

    a. 將下列 PowerShell 指令碼複製到您的其中一個 SQL Server 執行個體。 請更新您環境的變數。

    • $ClusterNetworkName 會在 [容錯移轉叢集管理員] 中選取 [網路],並以滑鼠右鍵按一下網路,然後選取 [屬性],以找到該名稱。 $ClusterNetworkName 位於 [一般] 索引標籤的 [名稱] 下方。

    • $IPResourceName 是在 [容錯移轉叢集管理員] 中指定給 IP 位址資源的名稱。 請在 [容錯移轉叢集管理員] 中選取 [角色]、選取 [SQL Server AG 或 FCI 名稱]、選取 [伺服器名稱] 下方的 [資源] 索引標籤,以滑鼠右鍵按一下 IP 位址資源,然後選取 [屬性],即可找到它。 正確的值在一般索引標籤的 [名稱] 底下。

    • $ListenerILBIP 是您在 Azure 負載平衡器上為可用性群組接聽程式所建立的 IP 位址。 在 [容錯移轉叢集管理員] 中,於與 SQL Server AG/FCI 接聽程式資源名稱相同的屬性頁面上,尋找 $ListenerILBIP

    • $ListenerProbePort 是您已在 Azure 負載平衡器上針對可用性群組接聽程式所設定的連接埠,例如 59999。 任何未使用的 TCP 連接埠都有效。

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<IPResourceName>" # The IP address resource name.
    $ListenerILBIP = "<n.n.n.n>" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ListenerProbePort = <nnnnn>
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. 在其中一個叢集節點中執行 PowerShell 指令碼,以設定叢集參數。

    注意

    如果您的 SQL Server 執行個體位於不同的區域中,您需要執行 PowerShell 指令碼兩次。 第一次請使用第一個區域中的 $ListenerILBIP$ListenerProbePort 值。 第二次則請使用第二個區域中的 $ListenerILBIP$ListenerProbePort 值。 每個區域的叢集網路名稱和叢集 IP 資源名稱也會不同。

  8. 讓可用性群組的叢集角色上線。 在 [容錯移轉叢集管理員] 的 [角色] 下方,以滑鼠右鍵按一下角色,然後選取 [啟動角色]。

必要時,請重複上述步驟,為 Windows Server 容錯移轉叢集的 IP 位址設定叢集參數:

  1. 取得 Windows Server 容錯移轉叢集的 IP 位址名稱。 在 [容錯移轉叢集管理員] 的 [叢集核心資源] 下方,尋找 [伺服器名稱]。

  2. 以滑鼠右鍵按一下 [IP 位址],然後選取 [屬性]。

  3. 從 [名稱] 複製 IP 位址的名稱。 該名稱可能是 [叢集 IP 位址]。

  4. 在 PowerShell 中設定叢集參數:

    a. 將下列 PowerShell 指令碼複製到您的其中一個 SQL Server 執行個體。 請更新您環境的變數。

    • $ClusterCoreIP 是您在 Azure 負載平衡器上為 Windows Server 容錯移轉叢集的核心叢集資源所建立的 IP 位址。 此位址與可用性群組接聽程式的 IP 位址不同。

    • $ClusterProbePort 是您在 Azure 負載平衡器上為 Windows Server 容錯移轉叢集健全狀態探查所設定的連接埠。 此探查與可用性群組接聽程式的探查不同。

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name.
    $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener.
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. 在其中一個叢集節點中執行 PowerShell 指令碼,以設定叢集參數。

如果任何 SQL 資源設定為使用 49152 到 65536 (TCP/IP 的預設動態連接埠範圍) 之間的連接埠,請新增每個連接埠的排除項目。 這類資源可能包含:

  • SQL Server 資料庫引擎
  • Always On 可用性群組接聽程式
  • 容錯移轉叢集執行個體的健全狀態探查
  • 資料庫鏡像端點
  • 叢集核心 IP 資源

新增排除項目,以防止將其他系統程序動態指派給相同的連接埠。 在此情況下,請在所有叢集節點上設定下列排除項目:

  • netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
  • netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

請務必在連接埠未使用時設定連接埠排除項目。 否則,命令將會失敗,並出現訊息:「程序無法存取檔案,因為檔案正由另一個程序使用」。若要確認排除項目已正確設定,請使用下列命令:netsh int ipv4 show excludedportrange tcp

警告

可用性群組接聽程式健全狀態探查的連接埠必須與叢集核心 IP 位址健全狀態探查的連接埠不同。 在這些範例中,接聽程式連接埠是 59999,而叢集核心 IP 位址健全狀態探查的連接埠是 58888。 這兩個連接埠都需要「允許輸入」防火牆規則。

驗證接聽程式的組態

如果已正確設定叢集資源和相依性,您應該能夠檢視 SQL Server Management Studio 中的接聽程式。 若要設定接聽程式連接埠,請執行下列步驟:

  1. 啟動 SQL Server Management Studio,然後連線到主要複本。

  2. 移至 [Always On 高可用性]>[可用性群組]>[可用性群組接聽程式]。

    您現在應該會看到在容錯移轉叢集管理員中建立的接聽程式名稱。

  3. 以滑鼠右鍵按一下接聽程式名稱,然後選取 [屬性]。

  4. 在 [連接埠] 方塊中,使用之前使用的 $EndpointPort (預設為 1433),指定可用性群組接聽程式的連接埠號碼,然後選取 [確定]。

現在,您在以 Resource Manager 模式執行的 Azure 虛擬機器中,已有一個可用性群組。

測試接聽程式的連線

藉由下列步驟來測試連線:

  1. 使用遠端桌面通訊協定 (RDP) 連線至位於相同虛擬網路,但沒有複本的 SQL Server 執行個體。 此伺服器可以是叢集中的其他 SQL Server 執行個體。

  2. 使用 sqlcmd 公用程式來測試連線。 例如,下列指令碼會透過接聽程式搭配 Windows 驗證,建立與主要複本的 sqlcmd 連線︰

    sqlcmd -S <listenerName> -E
    

SQLCMD 連線會自動連線到裝載主要複本的 SQL Server 執行個體。

建立其他可用性群組的 IP 位址

每個可用性群組都會使用個別的接聽程式。 每個接聽程式有其自己的 IP 位址。 使用相同的負載平衡器為其他接聽程式保存 IP 位址。 僅將 VM 的主要 IP 位址新增至負載平衡器的後端集區,因為次要 VM IP 位址不支援浮動 IP

若要透過 Azure 入口網站將 IP 位址新增至負載平衡器,請執行下列步驟:

  1. 在 Azure 入口網站中,開啟包含負載平衡器的資源群組,然後選取負載平衡器。

  2. 在 [設定] 下方選取 [前端 IP 設定],然後選取 [+新增]。

  3. 在 [新增前端 IP 位址] 下指派前端的名稱。

  4. 請確定虛擬網路子網路與 SQL Server 執行個體相同。

  5. 設定接聽程式的 IP 位址。

    提示

    您可以設定為靜態 IP 位址,並輸入目前未在子網路中使用的位址。 或者,您可以設定動態 IP 位址,並儲存新的前端 IP 集區。 當您這樣做時,Azure 入口網站會自動將可用的 IP 位址指派給集區。 然後您可以重新開啟前端 IP 集區,並將指派變更為靜態。

  6. 選取 [新增],以儲存接聽程式的 IP 位址。

  7. 在 [設定] 下方選取 [健全狀態探查] 來新增健全狀態探查,並使用下列設定:

    設定
    名稱 用於識別探查的名稱。
    通訊協定 TCP
    通訊埠 未使用的 TCP 通訊埠,其必須可在所有虛擬機器上使用。 不能用於其他用途。 兩個接聽程式不可使用相同的探查連接埠。
    間隔 探查嘗試間隔的時間長度。 使用預設值 (5)。
  8. 選取 [新增] 以儲存探查。

  9. 建立負載平衡規則。 在 [設定] 下選取 [負載平衡規則],然後選取 [+ 新增]。

  10. 使用下列設定,設定新的負載平衡規則:

    設定
    名稱 用於識別負載平衡規則的名稱。
    前端 IP 位址 選取您所建立的 IP 位址。
    後端集區 包含虛擬機器和 SQL Server 執行個體的集區。
    通訊協定 TCP
    通訊埠 使用 SQL Server 執行個體正在使用的連接埠。 預設的執行個體會使用連接埠 1433,除非您有進行變更。
    後端連接埠 使用相同的值作為連接埠
    健康狀態探查 選擇您所建立的探查。
    工作階段持續性 None
    閒置逾時 (分鐘) 預設值 (4)
    浮動 IP (伺服器直接回傳) 啟用

設定可用性群組以使用新的 IP 位址

若要完成設定叢集,請重複您建立第一個可用性群組時遵循的步驟。 也就是,設定叢集以使用新的 IP 位址

新增接聽程式的 IP 位址之後,請執行下列步驟以設定其他可用性群組:

  1. 確認新 IP 位址的探查連接埠都已經在兩部 SQL Server 虛擬機器上開啟。

  2. 在叢集管理員中,新增用戶端存取點

  3. 為可用性群組設定 IP 資源

    重要

    當您建立 IP 位址時,請使用您在負載平衡器中新增的 IP 位址。

  4. 讓 SQL Server 可用性群組資源依存於用戶端存取點

  5. 讓用戶端存取點資源依存於 IP 位址

  6. 在 PowerShell 中設定叢集參數

如果您使用次要複本 VM,且無法連線至接聽程式,則可能未正確設定探查連接埠。

您可以使用下列指令碼來驗證已針對可用性群組正確設定探查埠:

Clear-Host
Get-ClusterResource `
| Where-Object {$_.ResourceType.Name -like "IP Address"} `
| Get-ClusterParameter `
| Where-Object {($_.Name -like "Network") -or ($_.Name -like "Address") -or ($_.Name -like "ProbePort") -or ($_.Name -like "SubnetMask")}

新增分散式可用性群組的負載平衡規則

如果可用性群組加入分散式可用性群組中,負載平衡器會需要額外的規則。 此規則會儲存分散式可用性群組接聽程式所使用的連接埠。

重要

只有在可用性群組加入分散式可用性群組時,才適用此步驟。

  1. 在加入分散式可用性群組的每個伺服器上,對分散式可用性群組接聽程式的 TCP 連接埠建立輸入規則。 在許多範例中,文件會使用 5022。

  2. 在 Azure 入口網站中,選取 [負載平衡器] 並選取 [負載平衡規則],然後選取 [+ 新增]。

  3. 使用下列設定來建立負載平衡規則:

    設定
    名稱 用來識別分散式可用性群組之負載平衡規則的名稱。
    前端 IP 位址 使用和可用性群組相同的前端 IP 位址。
    後端集區 包含虛擬機器和 SQL Server 執行個體的集區。
    通訊協定 TCP
    通訊埠 5022 - 分散式可用性群組端點接聽程式的連接埠。
    可以是任何可用的連接埠。
    後端連接埠 5022 - 使用和 [連接埠] 相同的值。
    健康狀態探查 選擇您所建立的探查。
    工作階段持續性 None
    閒置逾時 (分鐘) 預設值 (4)
    浮動 IP (伺服器直接回傳) 啟用

針對其他加入分散式可用性群組之可用性群組上的負載平衡器重複這些步驟。

若使用 Azure 網路安全性群組限制存取,請確定允許下列規則:

  • 後端 SQL Server VM IP 位址
  • AG 接聽程式的負載平衡器浮動 IP 位址
  • 叢集核心 IP 位址 (若適用)。

後續步驟

若要深入了解,請參閱: