將 SQL Server 可用性群組移轉至多重子網路 – Azure VM 上的 SQL Server
本文章將教導您將 Always On 可用性群組 (AG) 從單一子網路移轉至多個子網路,以簡化使用 Azure 虛擬機器 (VM) 上的 SQL Server 連線至 Azure 中的接聽程式。
提示
有許多方法可部署可用性群組。 在相同 Azure 虛擬網路內的多個子網路中建立 SQL Server 虛擬機器 (VM),您的 Always On 可用性群組就可以簡化部署,而且不再需要 Azure Load Balancer 或分散式網路名稱 (DNN)。 如果您已在單一子網路中建立可用性群組,您可以將它移轉至多子網路環境。
概觀
在 Azure 虛擬機器上執行 SQL Server 的客戶可以在單一子網路或多個子網路 (多重子網路) 中實作 Always On 可用性群組 (AG)。 多重子網路組態無需使用 Azure Load Balancer 或分散式網路名稱 (DNN) 將流量路由至 Azure 網路上的接聽程式,進而簡化了可用性群組環境。 雖然建議使用多重子網路方法,但它需要連接字串才能讓應用程式使用 MultiSubnetFailover = true
,由於應用程式層級變更,這可能無法立即實現。
如果最初在單一子網路中建立可用性群組,並將 Azure Load Balancer 或 DNN 用於接聽程式,現在希望透過移至多重子網路組態來降低複雜性,則可以透過一些手動步驟來實現。
在開始移轉現有環境之前,先權衡變更使用中環境的風險。
請考慮下列兩種方法將可用性群組移轉至多重子網路:
- 建立新的環境以執行並排測試
- 手動移動現有可用性群組
警告
執行任何移轉都會涉及一些風險,因此在移至生產環境之前一律在非生產環境中進行徹底測試。
進行並排測試的新環境
移至多重子網路可用性群組的第一種方法是設定新的環境。 如果這是所選路由,則您需要:
- 建立新的虛擬機器
- 在多重子網路組態中建立新的可用性群組
- 備份您目前的資料庫,然後將其還原至新環境
最初在新的多重子網路環境中,使用與現有單一子網路環境不同的名稱建立接聽程式。 新可用性群組中新命名的接聽程式允許對應用程式進行並排測試 (使用多重子網路和目前負載平衡器或 DNN 進行測試)。
一旦多重子網路環境經過徹底驗證,您就可以完全移轉至新的基礎結構。 根據環境 (生產、測試),使用維護時段來完成變更。 在維護時段期間,將資料庫還原至新的主要複本,移除兩個環境中的可用性群組接聽程式,然後在多重子網路環境中使用與應用程式連接字串中使用的前一個接聽程式相同的名稱重新建立接聽程式。
現在,透過 Azure 入口網站部署體驗,可以更輕鬆地在多重子網路組態中設定新環境。
手動移動現有可用性群組
另一個選項是手動從單一子網路環境移至多重子網路環境。 為了使用此方法進行移轉,您需要下列必要條件:
- 新子網路中每個機器的 IP 位址
- 已使用
MultiSubnetFailover = true
的連接字串
若要將您的可用性群組移轉至多重子網路組態,請執行下列步驟:
為每個次要伺服器建立一個新的子網路,因為所有虛擬機器目前都在相同子網路中。
判定 AG 中所有伺服器的叢集 IP 和接聽程式 IP。 例如,如果您具有包含兩個節點的可用性群組,則有下列項目:
虛擬機器名稱 子網路 叢集 IP 接聽程式 IP VM1 (主要) 10.1.1.0/24 (現有子網路) 10.1.1.15 10.1.1.16 VM2 (次要) 10.1.2.0/24 (新子網路) 10.1.2.15 10.1.2.16 將叢集 IP 和接聽程式 IP 新增至主要複本伺服器。 新增這些 IP 位址是線上作業。
在 Azure 入口網站 中,將次要伺服器移至新的子網路,方式是前往虛擬機器>網路 > 網路介面 > IP 組態。 將伺服器移至新的子網路會重新啟動次要複本伺服器。
將叢集 IP 和接聽程式 IP 新增至次要複本伺服器。 新增這些 IP 位址是線上作業。
此時,因為 IP 位址和子網路已就緒,因此您可以刪除負載平衡器。
卸除接聽程式。
如果使用 Windows Server 2019 或更新版本,請略過此步驟。 如果您使用 Windows Server 2016,請手動將叢集 IP 新增至 FCI。
使用新的接聽程式 IP 重新建立接聽程式。
使用 ipconfig
/flushdns
排清所有伺服器上的 DNS。