使用 Azure 入口網站,以針對 Azure VM 上的 SQL Server,設定多子網路可用性群組

適用於:Azure VM 上的 SQL Server

提示

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

本文說明如何使用 Azure 入口網站 ,藉由建立下列項目,在多個子網路中為 Azure 虛擬機器 (VM) 上的 SQL Server 設定 Always On 可用性群組

  • 使用 SQL Server 的新虛擬機器。
  • Windows Server 容錯移轉叢集。
  • Always On 可用性群組。
  • 傾聽者。

注意

此部署方法支援 SQL Server 2016 及更新版本在 Windows Server 2016 及更新版本上運行。

透過 Azure 入口網站部署多子網路可用性群組,可為使用者提供簡單的端對端體驗。 它會遵循 高可用性及災難回復 (HADR) 的最佳作法來配置虛擬機器。

雖然本文使用 Azure 入口網站來設定可用性群組環境,但您也可以手動執行此動作。

注意

可以使用 Azure Migrate,將可用性群組解決方案搬遷到 Azure VM 上的 SQL Server。 若要深入了解,請參閱移轉可用性群組

必要條件

若要使用 Azure 入口網站設定 Always On 可用性群組,您必須具有下列必要條件:

  • Azure 訂用帳戶

  • 資源群組

  • 設定自訂 DNS 伺服器 IP 位址的虛擬網路

  • 相同虛擬網路中的網域控制伺服器 VM

  • 下列帳戶權限

    • 在網域中具有 [建立電腦物件] 權限的網域使用者帳戶。 使用此帳戶來建立叢集和可用性群組,並安裝 SQL Server。

      例如,網域使用者帳戶 (account@domain.com) 通常會有足夠的權限。 此帳戶也應該屬於建立叢集的每個 VM 上的本機系統管理員群組一部分。

    • 用於管理 SQL Server 的網域 SQL Server 服務帳戶。 對於您要新增至可用性群組的每個 SQL Server VM,此帳戶都應該相同。

注意

本教學課程會假設 DNS 伺服器和網域控制站都位於相同的虛擬機器上。 如果 DNS 伺服器設定在與網域控制站 VM 不同的 VM 上,同步處理物件時的延遲可能會導致自動化部署問題。

選擇 Azure 映像

使用 Azure 入口網站從資源庫中選擇多個預先設定的映像檔之一。 有兩個進入點可在 Azure 入口網站中啟動可用性群組部署:

第一個選項是在 Azure Marketplace 中搜尋SQL Server High Availability,並找到 高可用性的 SQL Server 磁貼:

Azure 入口網站的螢幕擷取畫面,其中顯示具有高可用性的 SQL Server Marketplace 圖格。

選取圖格上的 [建立] 以繼續。

或者,請依照以下步驟從 Azure SQL 中樞開始可用性群組部署:

  1. 移至 Azure SQL 中樞 aka.ms/azuresqlhub

  2. SQL Server,選擇 SQL Server on Azure VMs 以開啟 SQL Server on Azure VMS 頁面。

  3. Azure 虛擬機器上的 SQL Server 頁面,選擇 + Create 以開啟 SQL Server on Azure 虛擬機器 頁面。

    Azure 入口網站 Azure SQL hub 頁面中 SQL Server on Azure VM 頁面的截圖,顯示 +Create 按鈕。

  4. Azure 虛擬機上的 SQL Server 頁面,從下拉選單中選擇一個映像服務,然後選擇「 高可用性 」旁邊的選項以啟用可用性群組設定。 使用 Create virtual machine 開啟 Azure 虛擬機上 SQL Server 的 Create Always On 可用性群組 頁面。

    來自 Azure SQL 中樞 Azure 入口網站的螢幕擷取畫面,顯示 [顯示選項] 按鈕和 [建立 SQL 受控執行個體] 按鈕。

選擇基本設定

在 [基本] 索引標籤上,選取訂用帳戶和資源群組。 此外,請提供您要針對可用性群組所建立的 SQL Server 執行個體詳細資料。

  1. 從下拉式清單中,選擇包含網域控制站的訂用帳戶和資源群組,以及您想要部署可用性群組的位置。

    Azure 入口網站的螢幕擷取畫面:顯示用於指定訂用帳戶和資源群組的方塊。

  2. 使用滑桿,以選取您想要為可用性群組所建立的虛擬機器數目。 最小值為 2,而最大值為 9。 虛擬機器名稱已預先填入,但您可以選取編輯名稱來修改它們。

    Azure 入口網站的螢幕擷取畫面:顯示用於選取虛擬機器數目的滑桿,以及編輯名稱的選項。

  3. 針對 [區域],選取區域。 所有虛擬機器都會部署至相同的區域。

  4. 針對可用性選項,選取 [可用性區域] 或 [可用性設定組]。 如需可用性選項的詳細資訊,請參閱可用性。 當您選擇 [可用區域] 時,每個虛擬機器都會指派給區域中的區域,但稍後可以在 [ 網路] 索引標籤下自訂指派。

  5. 針對 [安全性類型],選取 [標準] 或 [可信啟動]

  6. 在 [映像] 清單中,選取具有您所需 SQL Server 和作業系統版本的映像。 使用下拉式清單來變更要部署的映像。 選取 [設定 VM 世代] 以選擇 VM 世代。 如果您針對 [安全性類型] 選取 [可信啟動],則 VM 世代必須是 [Gen 2]

  7. 選取 [查看所有大小] 以查看虛擬機器的大小。 所有虛擬機器的大小都相同。 如需生產工作負載,請參閱 VM 大小中的建議機器大小和設定: Azure VM 上 SQL Server 的效能最佳做法

  8. 在 [虛擬機器管理員帳戶] 下方,提供使用者名稱和密碼。 密碼至少必須有 12 個字元,而且符合定義的複雜度需求。 此帳戶將會是 VM 管理員。

  9. [授權] 底下,您可以啟用 Azure Hybrid Benefit ,將現有的 Windows Server 授權配置給 Azure。 只有在您是軟體保證客戶時,才能使用此選項。

    如果您想要啟用 Azure Hybrid Benefit,則請選取 [是],然後選取對應的核取方塊以確認您具有軟體保證。 如果您已選取其中一個免費 SQL Server 映像 (例如開發人員版本),則無法使用此選項。

  10. [SQL Server 授權] 底下,您可以啟用 Azure 混合式權益 ,以取得配置您自己的 SQL Server 授權的折扣。 只有在您是軟體保證客戶時,才能使用此選項。

    如果您想要啟用 Azure Hybrid Benefit,則請選取 [是],然後選取對應的核取方塊以確認您具有軟體保證。 如果您已選取其中一個免費 SQL Server 映像 (例如開發人員版本),則無法使用此選項。

    Azure 入口網站的螢幕擷取畫面:顯示 SQL Server 授權和 Azure Hybrid Benefit 的相關資訊。

  11. 選取 下一步:網路

選擇網路設定

在 [網路] 索引標籤上,設定網路選項:

  1. 從下拉式清單中,選取虛擬網路。 清單會根據您先前在 [基本] 索引標籤上選擇的區域和資源群組預先填入。選取的虛擬網路應該包含網域控制站 VM。

    警告

    如果網域控制站不存在於選取的虛擬網路中,則部署會失敗。

  2. 在 [NIC 網路安全性群組] 下方,選取基本安全性群組,或進階安全性群組。 選擇基本選項可讓您選取 SQL Server VM 的輸入連接埠。 選取進階選項可讓您選擇現有的網路安全性群組,或建立新的網路安全性群組。

  3. 如有需要,選擇「允許所選連接埠」,以設定「公用輸入連接埠」。 然後使用下拉式清單來選取允許的常見連接埠。

  4. 選擇 [公用 IP SKU] 類型。 所有機器都將會使用此公用 IP 類型。

  5. 您建立的每個虛擬機器都必須位於其自己的子網路中。

    在 [建立子網路] 下方,選取 [管理子網路設定] 以開啟虛擬網路的 [子網路] 窗格。 然後,針對每個虛擬機器,建立子網路 ([+子網路]),或驗證您想要為可用性群組建立的每個虛擬機器都可以使用子網路。

    完成時,請使用 X 關閉子網路管理窗格,然後返回可用性群組部署頁面。

    Azure 入口網站的螢幕擷取畫面:顯示虛擬網路的子網路管理窗格。

  6. 使用下拉式清單,將子網路、公用 IP 位址和接聽程式 IP 位址指派給您要建立的每個 VM。 如果您要使用 Windows Server 2016 映像,則也需要指派叢集 IP 位址。 如果您在 [基本] 索引標籤下選取 [可用性區域] 作為可用性選項,則每個 VM 都會指派給不同的區域。 如有需要,請將每個 VM 重新指派給區域,但請注意,VM 無法放置在相同的可用性區域中。

    當您將子網路指派給虛擬機器時,接聽程式和叢集 IP 方塊會預先填入可用的 IP 位址。 如果您想要編輯 IP 位址,則請將游標放在方塊中。 如果您需要建立新的 IP 位址,則請選取 [新建]。

    Azure 入口網站的螢幕擷取畫面:顯示用於設定子網路和 IP 位址的頁面。

  7. 如果您想要在刪除 VM 時刪除新建立的公用 IP 位址和 NIC,則請選取核取方塊。

  8. 選取 [下一步: WSFC 和認證]。

選擇容錯移轉叢集設定

在 [WSFC 和認證] 索引標籤上,提供帳戶資訊來設定與管理 Windows Server 容錯移轉叢集和 SQL Server。

警告

若要讓部署運作,所有帳戶都必須已存在於網域控制站 VM 上的 Active Directory 中。 此部署程序不會建立任何帳戶,而且將會在您提供無效帳戶時失敗。 如需必要權限的詳細資訊,請檢閱在 Active Directory 中設定叢集帳戶

  1. 在 [Windows Server 容錯移轉叢集詳細資料] 下方,提供您想要用於容錯移轉叢集的名稱。

  2. 從下拉式清單中,選取您想要用於雲端見證的儲存體帳戶。 如果不存在,則請選取 [建立新的儲存體帳戶]。

  3. Windows Active Directory 網域詳細資料 中:

    • 針對 [網域加入使用者名稱] 和 [網域加入密碼],輸入在 Active Directory 中建立 Windows Server 容錯移轉叢集名稱以及將 VM 加入網域的帳戶認證。 此帳戶必須具有 [建立電腦物件] 權限。

    • 針對 [網域 FQDN],輸入完整網域名稱,例如 contoso.com

    Azure 入口網站的螢幕擷取畫面:顯示 Windows Active Directory 網域詳細資料。

  4. 在 [SQL Server 詳細資料] 下,提供 SQL Server 服務帳戶的詳細資料。 有幾個選項可供選擇:

    a. 您可以使用建立叢集並將 VM 加入網域的相同帳戶,方法是選擇 [與網域加入帳戶相同]。 此帳戶與上一步相同。

    b. 您可以選取 群組受控服務帳戶 (GMSA)。 此選項會在正在建立的虛擬機器上安裝所有必要的工具和服務。 包括安裝 ADDS 工具、將虛擬機器加入 GMSA 安全群組,以及安裝 GMSA 服務。 為了讓 GMSA 部署成功,已加入網域的使用者必須至少具有 GMSA AD 群組的寫入權限。

    c. 或者,您可以選取 [自訂],然後提供要與 SQL Server 服務帳戶搭配使用的不同帳戶詳細資料。

    Azure 入口網站的螢幕擷取畫面:顯示 SQL Server 服務帳戶的相關資訊。

  5. 選取下一步: 磁碟

選擇磁碟設定

在 [磁碟] 索引標籤上,設定虛擬機器和 SQL Server 儲存體設定的磁碟選項:

  1. 在 [OS 磁碟類型] 下方,選取您想要用於作業系統的磁碟類型。 建議針對生產系統使用 [進階],但這不適用於基本 VM。 若要使用進階 SSD,請變更虛擬機器大小。

  2. 選取磁碟的 [加密類型] 值。

  3. 在 [儲存體設定] 下方,選取 [變更設定] 以開啟 [設定儲存體] 頁面,然後指定儲存體需求。 您可以選擇保留預設值,也可以手動變更儲存體拓撲,以符合每秒輸入/輸出作業 (IOPS) 的需求。 如需詳細資訊,請參閱 在 Azure VM 上設定 SQL Server 的儲存體

    Azure 入口網站的螢幕擷取畫面:顯示目前儲存體設定,以及用於變更設定的按鈕。

  4. 在 [資料儲存體] 底下,選擇資料磁碟機的位置、磁碟類型和磁碟數目。 您也可以選取核取方塊以將系統資料庫儲存至您的資料磁碟機,而不是本機 C 磁碟機。

    Azure 入口網站的螢幕擷取畫面:顯示資料儲存體的組態設定。

  5. 在 [記錄儲存體] 下方,您可以選擇使用與交易記錄檔的資料磁碟機相同的磁碟機,也可以從下拉式清單中選取不同的磁碟機。 您也可以選擇磁碟機的名稱、磁碟類型,以及磁碟數目。

    Azure 入口網站的螢幕擷取畫面:顯示記錄儲存體的組態設定。

  6. 在 [TempDb 儲存體] 下方,設定您的 資料庫設定。 選擇包括資料庫檔案的位置、檔案數目、初始大小和自動成長大小 (以 MB 為單位)。

    目前,在部署期間,tempdb 檔案數目上限為八。 但是,在部署 SQL Server VM 之後,您可以新增更多檔案。

    Azure 入口網站的螢幕擷取畫面:顯示 tempdb 儲存體的組態設定。

  7. 選取 [確定] 以儲存您的儲存體組態設定。

  8. 選取 [下一步: SQL Server 設定]。

選擇 [SQL Server 設定]

在 [SQL Server 設定] 索引標籤上,設定 SQL Server 和可用性群組的特定設定和最佳化:

  1. 可用性群組詳細資料 下方:

    1. 提供可用性群組和偵聽器的名稱。

    2. 針對要建立的每個虛擬機器,選取角色:「主要」或「次要」。

    3. 選擇最符合您業務需求的可用性群組設定。

    Azure 入口網站的螢幕擷取畫面:顯示可用性群組詳細資料。

  2. 在 [安全性和網路] 下,選取 [SQL 連線] 以存取 VM 上的 SQL Server 執行個體。 如需連線選項的詳細資訊,請參閱連線

  3. 如果您需要 SQL Server 驗證,則請選取 [SQL Server 驗證] 下方的 [啟用],然後提供登入名稱和密碼。 在您要部署的所有 VM 上使用這些認證。 如需驗證選項的詳細資訊,請參閱驗證

  4. 針對 Azure Key Vault 整合,如果您想要使用 Azure Key Vault 來儲存加密的安全性祕密,則請選取 [啟用]。 然後,填寫所要求的資訊。 若要深入了解,請參閱 Azure Key Vault 整合

  5. 選取 [變更 SQL 執行個體設定] 以修改 SQL Server 設定選項。 這些選項包括伺服器定序、平行處理原則的最大程度 ()、MAXDOP最小和最大記憶體,以及是否要針對臨機操作工作負載進行最佳化。

    Azure 入口網站的螢幕擷取畫面:顯示 SQL Server 執行個體設定以及可對其進行變更的按鈕。

選擇必要條件驗證

為了成功部署,需要滿足幾個必要條件。 若要更輕鬆地驗證所有權限和需求是否正確,請使用此索引標籤上可供下載的 PowerShell 必要條件指令碼。

指令碼會預先填入先前步驟中提供的值。 在網域控制站虛擬機器或已加入網域的 Windows Server VM 上,以網域使用者身分執行 PowerShell 指令碼。

在指令碼完成執行並驗證先決條件之後,請選取確認核取方塊。

顯示必要條件驗證索引標籤之 Azure 入口網站的螢幕擷取畫面。

  1. 選取 [檢閱 + 建立] 。

  2. 在 [檢閱 + 建立] 索引標籤上,檢閱摘要。 然後選取 [建立] 以建立 SQL Server、容錯移轉叢集、可用性群組和接聽程式。

    如果需要,則您可以選取 [下載自動化範本]。

您可以從 Azure 入口網站監視部署。 畫面頂端的 [通知] 按鈕會顯示部署的基本狀態。

部署完成之後,您可以瀏覽至入口網站中的 SQL 虛擬機器資源。 在 [設定] 下方,選取 [高可用性] 以監視可用性群組的健康情況。 選取可用性群組名稱旁邊的箭號,以查看所有複本的清單。

Azure 入口網站的螢幕擷取畫面:顯示目前不良可用性群組的健康情況。

注意

除非您將資料庫新增至可用性群組,否則 Azure 入口網站中的 [高可用性] 頁面上 [同步狀況] 會顯示 [不正常]。

將資料庫新增至可用性群組

部署完成之後,將資料庫新增至可用性群組。 下列步驟會使用 SQL Server Management Studio,但您也可以使用 Transact-SQL 或 PowerShell

  1. 使用慣用的方法連線到其中一個 SQL Server VM,例如 Bastion。 在所有 SQL Server 執行個體上,使用屬於 sysadmin 固定伺服器角色成員的網域帳戶。

  2. 開啟 SQL Server Management Studio。

  3. 連線至 SQL Server 執行個體。

  4. 在 [物件瀏覽器] 中,展開 [Always On 高可用性]。

  5. 展開 [可用性群組],並以滑鼠右鍵按一下您的可用性群組,然後選取 [新增資料庫]。

    SQL Server Management Studio 的螢幕擷取畫面:顯示用於將資料庫新增至可用性群組的選取項目。

  6. 遵循提示來選取您想要新增至可用性群組的資料庫。

  7. 選取 [確定] 以儲存設定,然後新增資料庫。

  8. 重新整理 [物件總管],以確認資料庫的狀態為

在您新增資料庫之後,可以在 Azure 入口網站中檢查可用性群組,並確認狀態為 [狀況良好]。

Azure 入口網站的螢幕擷取畫面:顯示目前良好可用性群組的健康情況。

修改可用性群組

透過入口網站部署可用性群組之後,需要手動完成所有可用性群組變更。 如果您想要移除複本,則可以透過 SQL Server Management Studio 或 Transact-SQL 來執行此動作,然後透過 Azure 入口網站來刪除 VM。 如果您想要新增複本,則必須手動將虛擬機器部署至資源群組、將其加入網域,以及像您在傳統內部部署環境中一樣地新增複本

移除叢集

您可以使用最新版的 Azure CLI 或 PowerShell 來移除叢集。

首先,從叢集中移除所有 SQL Server VM:

# Remove the VM from the cluster metadata
# example: az sql vm remove-from-group --name SQLVM2 --resource-group SQLVM-RG

az sql vm remove-from-group --name <VM1 name>  --resource-group <resource group name>
az sql vm remove-from-group --name <VM2 name>  --resource-group <resource group name>

如果您移除的 SQL Server VM 是叢集中唯一的 VM,則會終結叢集。 如果叢集中保留任何其他 VM,則不會移除這些 VM,也不會終結叢集。

接下來,從 SQL IaaS 代理程式延伸模組中移除叢集中繼資料:

# Remove the cluster from the SQL VM RP metadata
# example: az sql vm group delete --name Cluster --resource-group SQLVM-RG

az sql vm group delete --name <cluster name> --resource-group <resource group name>

疑難排解

如果您遇到問題,則可以檢查部署歷程記錄,然後檢閱常見錯誤和其解決方法。

透過入口網站對叢集和可用性群組的變更會通過部署完成。 如果建立叢集或將其上線時發生問題,或建立可用性群組時發生問題,則部署歷程記錄可以提供更詳細的資料。

查看部署日誌並檢查部署歷史:

  1. 登入 Azure 入口網站

  2. 移至您的資源群組。

  3. 在 [設定] 下方,選取 [部署]。

  4. 選取感興趣的部署,以進行深入了解。

    Azure 入口網站的螢幕擷取畫面,顯示在部署清單中失敗的可用性群組的部署。

透過入口網站進行的部署不可重複,無法達成冪等性。 因此,如果部署失敗,而且您想要使用入口網站重新部署,則必須手動清除資源。 這些清除工作包括刪除 VM,以及移除 Active Directory 和/或 DNS 中的項目。 不過,如果您使用 Azure 入口網站來建立範本以部署可用性群組,然後使用範本進行自動化,則不需要清除資源,因為範本為等冪。