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

適用於:Azure VM 上的 SQL Server

提示

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

本文描述如何使用 Azure 入口網站,以針對多子網路中 Azure VM 上的 SQL Server,設定可用性群組,方法是建立:

  • 使用 SQL Server 的新虛擬機器。
  • Windows 容錯移轉叢集。
  • 可用性群組。
  • 接聽程式。

注意

此部署方法支援 Windows Server 2016 和更新版本上的 SQL Server 2016 和更新版本。

透過入口網站部署多子網路可用性群組,可為使用者提供簡單的端對端體驗。 這會遵循高可用性和災害復原 (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 Marketplace 映像

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

第一個選項是在 Azure Marketplace 中搜尋「SQL Server 高可用性」並找到 [具有高可用性的 SQL Server] 圖格:

顯示 SQL Server 高可用性市集磚之 Azure 入口網站 的螢幕快照。

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

第二個選項是前往 Azure 入口網站中的 [Azure SQL]。 如果 [Azure SQL] 尚不在功能表清單中,請選取 [所有服務],並在搜尋框中鍵入 Azure SQL,然後選取結果。

  1. 選取 [+ 建立] 以開啟 [選取 SQL 部署選項] 窗格。

  2. 在 [SQL 虛擬機器] 下方,選取 [高可用性] 核取方塊。 在 [映像] 方塊中,輸入您感興趣的 SQL Server 版本 (例如 2019),然後選擇 SQL Server 映像 (例如 [免費 SQL Server 授權:Windows Server 2019 上的 SQL 2019 Developer]。

    選取 [高可用性] 核取方塊之後,入口網站會顯示支援的 SQL Server 版本 (從 SQL Server 2016 開始)。

    Azure 入口網站的螢幕擷取畫面:顯示用於選取 SQL Server 部署選項的頁面,並已選取高可用性。

  3. 選取 [建立]。

選擇基本設定

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

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

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

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

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

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

  4. 針對可用性選項,選取 [可用性區域] 或 [可用性設定組]。 如需可用性選項的詳細資訊,請參閱可用性。 選擇 [可用性區域] 時,每個 VM 都會指派給區域 (region) 中的區域 (zone),但稍後可以在 [網路] 選項下自訂。

  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 Hybrid Benefit,以使用您自己的 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 位址,則請選取 [新建]。

    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),我們將在正在建立的 VM 上安裝所有必要的工具和服務,包括安裝 ADDS 工具、將 VM 加入 GMSA 安全性群組以及安裝 GMSA 服務。 為了讓 GMSA 部署成功,已加入網域的使用者必須至少具有 GMSA AD 群組的寫入權限。

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

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

  5. 完成時,選取 [下一步: 磁碟]。

選擇磁碟設定

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

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

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

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

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

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

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

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

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

  6. 在 [TempDb 儲存體] 下方,設定您的 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. 使用慣用的方法 (例如遠端桌面連線 (RDP)) 連線至其中一個 SQL Server VM。 在所有 SQL Server 執行個體上,使用本身為 sysadmin 固定伺服器角色成員的網域帳戶。

  2. 開啟 SQL Server Management Studio。

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

  4. 在 [物件總管] 中,展開 [Always On 高可用性]。

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

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

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

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

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

在您新增資料庫之後,可以在 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 入口網站來建立範本以部署可用性群組,然後使用範本進行自動化,則不需要清除資源,因為範本為等冪。

下一步

部署可用性群組之後,請考慮將 Azure VM 上 SQL Server 的 HADR 設定最佳化。

若要深入了解,請參閱: