設定跨 Azure 區域的可用性群組 - 在 Azure VM 上的 SQL Server

適用於:Azure VM 上的 SQL Server

本教學課程說明在主要複本的遠端 Azure 區域中,如何針對 Azure 虛擬機器 (VM) 上的 SQL Server 設定 Always On 可用性群組複本。 您可以使用此設定用於災害復原 (DR)。

您也可以使用本文中的步驟,將現有的內部部署可用性群組延伸至 Azure。

本教學課程以在單一區域的單一子網路中手動部署可用性群組為基礎。 本文提及的本機區域是指第一個區域中已設定的虛擬機器和可用性群組。 遠端區域是在本教學課程中即將新增的新基礎結構。

概觀

下圖顯示 Azure 虛擬機器上常見的可用性群組部署:

Diagram that shows an Azure load balancer and an availability set with a Windows Server failover cluster and Always On availability group.

在圖表顯示的部署中,所有虛擬機器都位於一個 Azure 區域。 可用性群組複本可以使用同步認可搭配在 SQL-1 和 SQL-2 上自動容錯移轉。 若要建置此架構,請參閱可用性群組範本或教學課程

此架構很容易因 Azure 區域變成無法存取而停機。 若要克服這個弱點,請在不同的 Azure 區域中新增複本。 新架構的外觀如下圖所示:

Diagram of a disaster recovery scenario for an availability group.

圖表中顯示一個名為 SQL-3 的新虛擬機器。 SQL-3 位於不同的 Azure 區域中。 此虛擬機器會新增至 Windows Server 容錯移轉叢集,而且可以裝載可用性群組複本。

SQL-3 的 Azure 區域有一個新的 Azure Load Balancer。 在此架構中,通常會以非同步認可可用性模式和手動容錯移轉模式設定遠端區域中的複本。

注意

當相同區域中有多部虛擬機器時,必須要有 Azure 可用性設定組。 如果區域中只有一部虛擬機器,則不需要可用性設定組。

您只能在建立虛擬機器時,將虛擬機器放置在可用性設定組中。 如果虛擬機器已經在可用性設定組中,則您可以稍後新增虛擬機器作為額外複本。

可用性群組複本位於不同 Azure 區域中的 Azure 虛擬機器時,您可以使用虛擬網路對等互連站對站 VPN 閘道來連線虛擬網路。

重要

此架構會針對 Azure 區域之間複寫的資料產生輸出資料費用。 請參閱頻寬定價

建立網路和子網路

新區域中建立虛擬網路和子網路之前,請先決定您將用於遠端區域的位址空間、子網路網路、叢集 IP 和可用性群組接聽程式 IP 位址。

下表列出本機 (目前) 區域的詳細資料,以及將在新的遠端區域中設定的內容。

類型 本機 遠端區域
位址空間 192.168.0.0/16 10.36.0.0/16
子網路網路 192.168.15.0/24 10.36.1.0/24
叢集 IP 192.168.15.200 10.36.1.200
可用性群組接聽程式 IP 192.168.15.201 10.36.1.201

若要在 Azure 入口網站的新區域中建立虛擬網路和子網路:

  1. Azure 入口網站中移至資源群組,並選取 [+ 建立]。

  2. 在 [Marketplace] 搜尋方塊中,搜尋虛擬網路,然後在 Microsoft 選取 [虛擬網路] 圖格。

  3. 在 [建立虛擬網路] 頁面上,選取 [建立]。 然後在 [基本] 索引標籤上,輸入下列資訊:

    1. 在 [專案詳細資料] 下方的 [訂用帳戶] 中,選取適當的 Azure 訂用帳戶。 在 [資源群組] 選取您之前建立的資源群組,例如 SQL-HA-RG
    2. 在 [執行個體詳細資料] 下方,提供虛擬網路的名稱,例如 remote_HAVNET。 然後選擇新的遠端區域。

    Screenshot of the Azure portal that shows selections for creating a virtual network in a remote region.

  4. 在 [IP 位址] 索引標籤中,選取 [+ 新增子網路] 旁的省略符號 (...)。 如果您需要不同的位址範圍,請選取 [刪除位址空間] 以移除現有的位址空間。

    Screenshot of the Azure portal that shows selections for deleting the existing address space in a virtual network.

  5. 選取 [新增 IP 位址空間] 以開啟窗格,建立您需要的位址空間。 本教學課程使用遠端區域的位址空間為:10.36.0.0/16。 選取 [新增]。

    Screenshot of the Azure portal that shows selections for adding an address space for a virtual network.

  6. 選取 [+ 新增子網路],然後:

    1. 提供 [子網路名稱] 的值,例如 admin

    2. 請在虛擬網路位址空間內提供唯一的子網路位址範圍。

      例如,如果您的位址範圍是 10.36.0.0/16,請針對 admin 子網路輸入這些值:在 [起始位址] 輸入 10.36.1.0,在 [子網路大小] 輸入 /24

    3. 選取 [新增] 以新增您的子網路。

    Screenshot of the Azure portal that shows selections for adding a subnet to a virtual network.

連線兩個 Azure 區域中的虛擬網路

建立新的虛擬網路和子網路之後,您就可以連線這兩個區域,以便彼此通訊。 有兩種方法可以執行此作業:

本教學課程使用虛擬網路對等互連。 若要設定虛擬網路對等互連:

  1. 在 Azure 入口網站頂端的搜尋方塊中,輸入 autoHAVNET,這是本機區域中的虛擬網路。 當搜尋結果中出現 autoHAVNET 時加以選取。

  2. 選取 [設定] 下方的 [對等互連],然後選取 [+ 新增]。

    Screenshot of the Azure portal that shows selections for adding a virtual network peering.

  3. 輸入或選取下列資訊、接受其餘設定的預設值,然後選取 [新增]。

    設定
    此虛擬網路
    對等互連連結名稱 輸入 autoHAVNET-remote_HAVNET 作為從 autoHAVNET 到遠端虛擬網路的對等互連名稱。
    遠端虛擬網路
    對等互連連結名稱 輸入 remote_HAVNET-autoHAVNET 作為從遠端虛擬網路到 autoHAVNET 的對等互連名稱。
    訂用帳戶 選取遠端虛擬網路的訂用帳戶。
    虛擬網路 選取 remote_HAVNET 作為遠端虛擬網路的名稱。 遠端虛擬網路可以位於與 autoHAVNET 相同的區域中,或位於不同區域中。

    Screenshot of the Azure portal that shows peering settings.

  4. 在 [對等互連] 頁面上,[對等互連狀態] 為 [已連線]。

    Screenshot of the Azure portal that shows a Connected status for virtual network peering.

    如果您沒有看到 [已連線] 狀態,請選取 [重新整理] 按鈕。

建立網域控制站

如果主要站台無法使用,則需要新區域中的網域控制站才能提供驗證。 若要在新區域中建立網域控制站:

  1. 返回 SQL-HA-RG 資源群組。
  2. 選取 [+ 建立]。
  3. 輸入 Windows Server 2016 Datacenter,然後選取 [Windows Server 2016 Datacenter] 結果。
  4. Windows Server 2016 Datacenter 中,確認部署模型為 Resource Manager,然後選取 [建立]。

下表顯示這兩部機器的設定:

設定
名稱 遠端網域控制站:ad-remote-dc
VM 磁碟類型 SSD
使用者名稱 DomainAdmin
密碼 Contoso!0000
訂用帳戶 您的訂用帳戶
資源群組 SQL-HA-RG
位置 您的位置
大小 DS1_V2
Storage 使用受控磁碟
虛擬網路 remote_HAVNET
子網路 admin
公用 IP 位址 與 VM 同名
網路安全性群組 與 VM 同名
診斷 啟用
診斷儲存體帳戶 自動建立

Azure 會建立虛擬機器。

設定網域控制站

在接下來的步驟中,請將 ad-remote-dc 機器設定為 corp.contoso.com 的網域控制站:

設定慣用 DNS 伺服器位址

慣用的 DNS 伺服器位址不應直接在 VM 中更新,而應從 Azure 入口網站、PowerShell 或 Azure CLI 進行編輯。 以下是在 Azure 入口網站中進行變更的步驟:

  1. 登入 Azure 入口網站

  2. 在入口網站頂端的搜尋方塊中,輸入網路介面。 在搜尋結果中選取 [網路介面]。

  3. 從清單中選取您要檢視或變更設定的次要網域控制站適用的網路介面。

  4. 在 [設定] 中選取 [DNS 伺服器]。

  5. 由於此網域控制站不在與主要網域控制站相同的虛擬網路中,請選取 [自訂] 並輸入主要網域控制站的 IP 位址,例如 192.168.15.4。 您指定的 DNS 伺服器位址只會指派給此網路介面,並會覆寫為此網路介面指派的虛擬網路的任何 DNS 設定。

  6. 選取 [儲存]。

  7. 返回 Azure 入口網站中的虛擬機器,然後重新啟動 VM。 重新啟動虛擬機器之後,您可以將 VM 加入網域。

加入網域

接下來,加入 corp.contoso.com 網域。 若要這樣做,請依照下列步驟執行:

  1. 使用 BUILTIN\DomainAdmin 帳戶遠端連線至虛擬機器。
  2. 開啟 [伺服器管理員],選取 [本機伺服器]。
  3. 選取 [工作群組]。
  4. 在 [電腦名稱] 區段中,選取 [變更]。
  5. 選取 [網域] 核取方塊,然後在文字方塊中輸入 corp.contoso.com。 選取 [確定]。
  6. 在 [Windows 安全性] 快顯對話方塊中,指定預設的網域系統管理員帳戶 (CORP\DomainAdmin) 和密碼 (Contoso!0000) 的認證。
  7. 當您看到「歡迎使用 corp.contoso.com 網域」訊息時,請選取 [確定]。
  8. 選取 [關閉],然後選取快顯對話方塊中的 [立即重新啟動]。

設定網域控制站

當您的伺服器加入網域之後,您就可以將其設為第二個網域控制站。 若要這樣做,請依照下列步驟執行:

  1. 如果您尚未連線,請開啟您次要網域控制站的 RDP 工作階段,然後開啟 [伺服器管理員] 儀表板 (依預設可能會開啟)。

  2. 選取儀表板上的 [新增角色及功能] 連結。

    Server Manager - Add roles

  3. 連續選取 [下一步],直到到達 [伺服器角色] 區段。

  4. 選取 [Active Directory Domain Services] 和 [DNS 伺服器] 角色。 出現提示時,請新增這些角色所需的任何其他功能。

  5. 功能安裝完畢後,請回到 [伺服器管理員] 儀表板。

  6. 在左側窗格中選取新的 [AD DS] 選項。

  7. 選取黃色警告列上的 [更多] 連結。

  8. 在 [所有伺服器工作詳細資料] 對話方塊的 [動作] 資料行中,選取 [將此伺服器升級為網域控制站]。

  9. 在 [部署組態] 下,選取 [將網域控制站新增至現有網域]。

  10. 按一下 [選取]。

  11. 使用系統管理員帳戶 (CORP.CONTOSO.COM\domainadmin) 和密碼 (Contoso!0000) 來進行連線。

  12. 在 [從樹系中選取一個網域] 中,選擇您的網域,然後選取 [確定]。

  13. 在 [網域控制站選項] 中,使用預設值並設定 DSRM 密碼。

    注意

    [DNS 選項] 頁面可能警告您,指出無法建立此 DNS 伺服器的委派。 您在非生產環境中可以忽略這個警告。

  14. 連續選取 [下一步],直到對話方塊到達 [必要條件] 檢查。 然後選取 [安裝]。

在伺服器完成組態變更之後,重新啟動伺服器。

建立 SQL Server VM

重新啟動虛擬機器之後,下一個步驟是在新區域中建立 SQL Server 虛擬機器

繼續之前,請先考慮下列設計決策:

  • 儲存體:Azure 受控磁碟

    為虛擬機器儲存體使用 Azure 受控磁碟。 建議使用受控磁碟作為 SQL Server 虛擬機器。 受控磁碟會在背景中處理儲存體。 此外,當具有受控磁碟的虛擬機器在相同的可用性設定組時,Azure 會分散儲存資源以提供適當的備援。

    如需詳細資訊,請參閱 Azure 受控磁碟簡介。 如需可用性設定組中的受控磁碟具體資訊,請參閱將受控磁碟使用於可用性設定組中的 VM

  • 網路:生產環境中的私人 IP 位址

    本教學課程針對虛擬機器使用公用 IP 位址。 公用 IP 位址允許透過網際網路直接遠端連線至虛擬機器,讓設定步驟更為容易。 在生產環境中,我們建議只使用私人 IP 位址。 私人 IP 位址可以降低 SQL Server VM 出現弱點的機率。

  • 網路:每一伺服器單一 NIC

    針對每部伺服器 (叢集節點) 使用單一網路介面卡 (NIC) 和單一子網路。 Azure 網路有實體備援,因此 Azure VM 客體叢集上不需要額外的 NIC 和子網路。 叢集驗證報告會警告您節點只能在單一網路上觸達。 您可以在 Azure VM 客體容錯移轉叢集上忽略此警告。

建立和設定 SQL Server VM

若要建立 SQL Server VM,請返回 SQL-HA-RG 資源群組,然後選取 [新增]。 搜尋適當的資源庫項目,選取 [虛擬機器],然後選取 [從資源庫]。 使用下表中的資訊可協助您建立 VM:

頁面 設定
選取適當的資源庫項目 SQL Server 2016 SP1 Enterprise on Windows Server 2016
虛擬機器組態基本資訊 名稱 = sqlserver-2

使用者名稱 = DomainAdmin

密碼 = Contoso!0000

訂用帳戶 = 您的訂用帳戶

資源群組 = SQL-HA-RG

位置 = 您的遠端區域
虛擬機器組態大小 大小 = DS2_V2 (2 個 vCPU,7 GB)

大小必須支援 SSD 儲存體 (進階磁碟支援)。
虛擬機器組態設定 儲存體使用受控磁碟

虛擬網路 = remote-HAVNET

子網路 = admin (10.36.1.0/24)

公用 IP 位址 = 自動產生

網路安全性群組 =

監視診斷 = 啟用

診斷儲存體帳戶 = 使用自動產生的儲存體帳戶

虛擬機器組態SQL Server 設定 SQL 連線 = 私人 (在虛擬網路內)

連接埠 = 1433

SQL 驗證 = 停用

儲存體設定 = 一般

自動修補 = 星期日 2:00

自動備份 = 停用

Azure 金鑰保存庫整合 = 已停用

注意

此處建議的機器大小是為了在 Azure 虛擬機器中測試可用性群組。 若要在生產工作負載上獲得最佳效能,請參閱檢查清單:Azure VM 上的 SQL Server 最佳做法中建議的 SQL Server 機器大小和組態。

將 VM 完整佈建完畢之後,您必須將機器加入 corp.contoso.com 網域,並將 CORP\Install 系統管理權限授與機器。

將伺服器加入網域

若要將 VM 加入 corp.contoso.com,請使用下列適用於 SQL Server VM 的步驟:

  1. 使用 BUILTIN\DomainAdmin 遠端連線至虛擬機器。
  2. 在 [伺服器管理員] 中,選取 [本機伺服器] 。
  3. 選取 [工作群組] 連結。
  4. 在 [電腦名稱] 區段中,選取 [變更]。
  5. 選取 [網域] 核取方塊,然後在文字方塊中輸入 corp.contoso.com。 然後選取 [確定]。
  6. 在 [Windows 安全性] 快顯對話方塊中,指定預設網域系統管理員帳戶 (CORP\DomainAdmin) 和密碼 (Contoso!0000) 的登入資訊。
  7. 當您看到「歡迎使用 corp.contoso.com 網域」訊息時,請選取 [確定]。
  8. 選取 [關閉],然後選取快顯對話方塊中的 [立即重新啟動]。

新增帳戶

接下來的工作是將安裝帳戶新增為 SQL Server VM 上的系統管理員,然後將權限授與該帳戶和 SQL Server 內的本機帳戶。 然後您才能更新 SQL Server 服務帳戶。

將 CORP\Install 使用者新增為每個叢集 VM 上的系統管理員

SQL Server 虛擬機器以網域的成員重新啟動之後,新增 CORP\Install 作為本機系統管理員群組的成員:

  1. 請等候 VM 重新啟動,然後從主要網域控制站再次開啟 RDP 檔案。 使用 CORP\DomainAdmin 帳戶登入 sqlserver-2

    提示

    在稍早的步驟中,您使用的是「內建」的系統管理員帳戶。 現在伺服器位於網域中,請確定您已使用網域系統管理員帳戶登入。 在您的 RDP 工作階段中,指定 DOMAIN\username

  2. 在 [伺服器管理員] 中,選取 [工具],然後選取 [電腦管理]。

  3. 在 [電腦管理 ] 視窗中,展開 [本機使用者和群組],然後選取 [群組]。

  4. 按兩下 [系統管理員] 群組。

  5. 在 [系統管理員屬性] 對話方塊中,選取 [新增] 按鈕。

  6. 輸入 CORP\Install 使用者,然後選取 [確定]。

  7. 選取 [確定] 以關閉 [系統管理員屬性] 對話方塊。

在每個 SQL Server VM 上建立安裝帳戶登入

使用安裝帳戶 (CORP\Install) 設定可用性群組。 這個帳戶必須是每個 SQL Server VM 上 [系統管理員 (sysadmin)] 固定伺服器角色的成員。 以下是建立安裝帳戶登入的步驟。 請在兩部 SQL Server VM 上完成這些步驟。

  1. 使用 <MachineName>\DomainAdmin 帳戶透過 RDP 連線到伺服器。

  2. 開啟 SQL Server Management Studio,然後連線到 SQL Server 的本機執行個體。

  3. 在 [物件總管] 中,選取 [安全性]。

  4. 以滑鼠右鍵按一下 [登入]。 選取 [新增登入]。

  5. 在 [登入 - 新增] 中,選取 [搜尋]

  6. 選取 [位置]。

  7. 輸入網域系統管理員的網路登入資訊。 使用安裝帳戶 (CORP\Install)。

  8. 將登入設定為 [系統管理員 (sysadmin)] 固定伺服器角色的成員。

  9. 選取 [確定]。

設定系統帳戶權限

若要建立系統帳戶並授與適當權限,請在每個 SQL Server 執行個體上完成下列步驟:

  1. 使用下列指令碼建立 [NT AUTHORITY\SYSTEM] 的帳戶:

    USE [master]
    GO
    CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    GO 
    
  2. 將下列權限授與 [NT AUTHORITY\SYSTEM]

    • ALTER ANY AVAILABILITY GROUP
    • CONNECT SQL
    • VIEW SERVER STATE

    下列指令碼會授與這些權限:

    GRANT ALTER ANY AVAILABILITY GROUP TO [NT AUTHORITY\SYSTEM]
    GO
    GRANT CONNECT SQL TO [NT AUTHORITY\SYSTEM]
    GO
    GRANT VIEW SERVER STATE TO [NT AUTHORITY\SYSTEM]
    GO 
    

設定 SQL Server 服務帳戶

在每一部 SQL Server VM 上,完成下列步驟以設定 SQL Server 服務帳戶。 使用您設定網域帳戶時所建立的帳戶。

  1. 開啟 SQL Server 組態管理員。
  2. 以滑鼠右鍵按一下 SQL Server 服務,然後選取 [屬性]。
  3. 設定帳戶和密碼。

針對 SQL Server 可用性群組,每個 SQL Server VM 必須都以網域帳戶執行。

建立 Azure Load Balancer

遠端區域中需要負載平衡器,才能支援 SQL Server 可用性群組。 負載平衡器會保有可用性群組接聽程式以及 Windows Server 容錯移轉叢集的 IP 位址。 本節摘要說明如何在 Azure 入口網站中建立負載平衡器。

此負載平衡器必須:

  • 與新虛擬機器位於相同的網路和子網路。
  • 擁有「可用性群組」接聽程式的靜態 IP 位址。
  • 包含一個僅由相同區域中的虛擬機器所組成的後端集區作為負載平衡器。
  • 使用 IP 位址特定的 TCP 連接埠探查。
  • 擁有相同區域中 SQL Server 執行個體特定的負載平衡規則。
  • 是 Standard Load Balancer,如果後端集區中的虛擬機器不屬於單一可用性設定組或虛擬機器擴展集的話。 如需詳細資訊,請檢閱什麼是 Azure Load Balancer?
  • 是 Standard Load Balancer,如果兩個不同區域中的兩個虛擬網路是透過全域虛擬網路對等互連進行對等互連的話。 如需詳細資訊,請參閱 Azure 虛擬網路常見問題集 (FAQ)

建立負載平衡器的步驟如下:

  1. 在 Azure 入口網站中,移至您 SQL Server 執行個體所在的資源群組,然後選取 [+ 新增]。

  2. 搜尋 [負載平衡器]。 選擇 Microsoft 發佈的負載平衡器。

  3. 選取 [建立]。

  4. 設定負載平衡器的下列參數:

    設定
    訂用帳戶 使用與虛擬機器相同的訂用帳戶。
    資源群組 使用與虛擬機器相同的資源群組。
    名稱 使用負載平衡器的文字名稱 (例如 remoteLB)。
    區域 使用與虛擬機器相同的區域。
    SKU 選取 [標準]。
    型別 選取 [內部]。

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

    Screenshot of the Azure portal that shows basic information for creating a load balancer.

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

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

    Screenshot of the Azure portal that shows the button for adding a frontend IP configuration.

  7. 使用下列值來設定前端 IP 位址:

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

    Screenshot of the Azure portal that shows the dialog for adding a frontend IP configuration.

  8. 選取 [新增]。

  9. 選取 [檢閱 + 建立] 以驗證設定,然後選取 [建立] 以建立負載平衡器和前端 IP 位址。

若要設定負載平衡器,您必須建立後端集區、建立探查,並設定負載平衡規則。

新增可用性群組接聽程式的後端集區

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

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

  3. 針對 [名稱],提供後端集區的名稱。

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

  5. 選取 [新增] 建立後端集區與新建 SQL Server VM 的關聯。

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

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

  8. 選取 [儲存]。

設定探查

  1. 在 Azure 入口網站中,選取負載平衡器,選取 [健全狀態探查],然後選取 [+新增]。

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

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

設定負載平衡規則

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

  2. 設定接聽程式的負載平衡規則,如下所示:

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

    警告

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

  3. 選取 [儲存]。

將容錯移轉叢集新增至 SQL Server VM

若要新增容錯移轉叢集功能,請在兩個 SQL Server VM 上完成下列步驟:

  1. 使用 CORP\Install 帳戶透過 RDP 連線至 SQL Server 虛擬機器。 開啟 [伺服器管理員] 儀表板。

  2. 選取儀表板上的 [新增角色及功能] 連結。

    Screenshot of the Server Manager dashboard that shows the link for adding roles and features.

  3. 連續選取 [下一步],直到到達 [伺服器功能] 區段。

  4. 在 [功能] 中,選取 [容錯移轉叢集]。

  5. 新增任何必要功能。

  6. 選取 [安裝]。

注意

您現在可以使用 Azure CLIAzure 快速入門範本,將此工作自動化並將 SQL Server VM 確實加入容錯移轉叢集。

調整容錯移轉叢集的網路閾值

在具有 SQL Server 可用性群組的 Azure VM 中執行 Windows 容錯移轉叢集節點時,請將叢集設定變更為較寬鬆的監視狀態。 此變更可讓叢集更穩定且更可靠。 如需詳細資料,請參閱 IaaS 搭配 SQL Server - 調整容錯移轉叢集網路閾值

在每個 SQL Server VM 上設定防火牆

方案需要在防火牆中開啟下列 TCP 通訊埠︰

  • SQL Server VM:SQL Server 預設執行個體的連接埠 1433。
  • Azure Load Balancer 探查:任何可用的連接埠。 範例會經常使用 59999。
  • 叢集核心負載平衡器 IP 位址健康情況探查:任何可用的連接埠。 範例常用的是 58888。
  • 資料庫鏡像端點:任何可用的連接埠。 範例會經常使用 5022。

您必須在新 SQL Server VM 上開啟防火牆連接埠。 開啟連接埠的方法取決於您使用的防火牆解決方案。 下列步驟示範如何在 Windows 防火牆中開啟連接埠:

  1. 在 SQL Server 的 [開始] 畫面上,開啟 [具有進階安全性的 Windows 防火牆]。

  2. 在左窗格上,選取 [輸入規則]。 在右窗格上,選取 [新增規則]。

  3. 在 [規則類型] 中,選取 [連接埠]。

  4. 在連接埠中,指定 [TCP] 並輸入適當的連接埠號碼。 以下螢幕擷取畫面顯示了一個範例:

    Screenshot that shows selections for creating a new inbound rule for a firewall.

  5. 選取 [下一步]。

  6. 在 [動作] 頁面上,保持選取 [允許連線],然後選取 [下一步]。

  7. 在 [設定檔] 頁面上,接受預設設定,然後選取 [下一步]。

  8. 在 [名稱] 頁面上的 [名稱] 方塊中指定規則名稱 (例如 Azure LB 探查),然後選取 [完成]。

將 SQL Server 新增至 Windows Server 容錯移轉叢集

新的 SQL Server VM 必須新增至存在本機區域中的 Windows Server 容錯移轉叢集

若要將 SQL Server VM 新增至叢集:

  1. 使用 RDP 連線至現有叢集中的 SQL Server VM。 使用在兩部 SQL Server VM 和見證伺服器上都是系統管理員的網域帳戶。

  2. 在 [伺服器管理員] 儀表板中,選取 [工具],然後選取 [容錯移轉叢集管理員]。

  3. 在左側窗格中,以滑鼠右鍵按一下 [容錯移轉叢集管理員],然後選取 [連線至叢集]。

  4. 在 [選取叢集] 視窗的 [叢集名稱] 下,選擇 [此伺服器上的叢集]<>。 然後選取 [確定]。

  5. 在瀏覽器樹狀目錄中,於叢集上按一下滑鼠右鍵,然後選取 [新增節點]。

  6. 在 [新增節點精靈] 中,選取 [下一步]。

  7. 在 [選取伺服器] 頁面上,新增新 SQL Server 執行個體的名稱。 在 [輸入伺服器名稱] 中輸入伺服器名稱,選取 [新增],然後選取 [下一步]。

  8. 在 [驗證警告] 頁面上,選取 [否]。 (在生產案例中,您應該執行驗證測試)。 然後,選取 [下一步] 。

  9. 如果您使用儲存空間,請在 [確認] 頁面上取消選取 [新增合格的儲存裝置至叢集] 核取方塊。

    警告

    如果您未取消選取 [新增合格的儲存裝置至叢集],Windows 會在叢集處理期間卸離虛擬磁碟。 這樣一來,這些磁碟就不會顯示在磁碟管理員或總管中,直到您透過 PowerShell 將儲存裝置從叢集移除再重新連接為止。

  10. 選取 [下一步] 。

  11. 選取 [完成] 。

    [容錯移轉叢集管理員] 會顯示您的叢集有一個新節點,並將節點列在 [節點] 容器中。

新增 Windows Server 容錯移轉叢集的 IP 位址

注意

在 Windows Server 2019 上,叢集會建立「分散式伺服器名稱」,而不是「叢集網路名稱」。 如果您使用 Windows Server 2019,請跳至新增可用性群組接聽程式的 IP 位址。 您可以使用 PowerShell 建立叢集網路名稱。 如需詳細資訊,請檢閱部落格文章容錯移轉叢集:叢集網路物件

接下來,建立 IP 位址資源,並將其新增至新 SQL Server VM 的叢集:

  1. 在 [容錯移轉叢集管理員] 中,選取叢集的名稱。 以滑鼠右鍵按一下 [叢集核心資源] 下方的叢集名稱,然後選取 [屬性]:

    Screenshot of Failover Cluster Manager that shows selections for opening cluster properties.

  2. 在 [叢集屬性] 對話方塊中,選取 [IP 位址] 下方的 [新增],然後從遠端網路區域新增叢集名稱的 IP 位址。 在 [IP 位址] 對話方塊中選取 [確定],然後在 [叢集屬性] 對話方塊中選取 [確定],以儲存新的 IP 位址。

    Screenshot that shows the dialogs for creating a cluster IP address.

  3. 將 IP 位址新增為叢集核心名稱的相依性。

    再開啟一次 [叢集屬性] 對話方塊,然後選取 [相依性] 索引標籤。設定兩個 IP 位址的 OR 相依性。

    Screenshot of the Cluster Properties dialog that shows selections for adding a dependency.

新增可用性群組接聽程式的 IP 位址

您必須將遠端區域中的接聽程式 IP 位址新增至叢集。 若要新增 IP 位址:

  1. 在 [容錯移轉叢集管理員] 中,以滑鼠右鍵按一下可用性群組角色。 指向 [新增資源],指向 [更多資源],然後選取 [IP 位址]。

    Screenshot of Failover Cluster Manager that shows selections for adding an IP address as a resource.

  2. 若要設定此 IP 位址,請以滑鼠右鍵按一下 [其他資源] 下方的資源,然後選取 [屬性]。

    Screenshot of Failover Cluster Manager that shows selections for opening properties for a resource.

  3. 針對 [名稱],輸入新資源的名稱。 針對 [網路],從遠端資料中心選取網路。 選取 [靜態 IP 位址],然後在 [位址] 方塊中,從新的 Azure Load Balancer 指派靜態 IP 位址。

    Screenshot of the dialog for IP address properties, showing assignment of the listener IP in the cluster.

  4. 選取 [套用] ,然後選取 [確定] 。

  5. 將 IP 位址資源新增為接聽程式用戶端存取點 (網路名稱) 叢集的相依性。

    以滑鼠右鍵按一下接聽程式用戶端存取點,然後選取 [屬性]。 瀏覽至 [相依性] 索引標籤,並將新的 IP 位址資源新增至接聽程式用戶端存取點。 以下螢幕擷取畫面顯示的是已正確設定的 IP 位址叢集資源:

    Screenshot of Failover Cluster Manager that shows configured IP addresses for an availability group.

    重要

    叢集資源群組同時包含兩個 IP位址。 這兩個 IP 位址都是接聽程式用戶端存取點的相依性。 在叢集相依性組態中,請使用 OR 運算子。

  6. 在 PowerShell 中設定叢集參數

    使用您在新區域中負載平衡器上設定的叢集網路名稱、IP 位址及探查連接埠來執行 PowerShell 指令碼:

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

啟用可用性群組

接著啟用 Always On 可用性群組功能。 在新的 SQL Server VM 上完成這些步驟:

  1. 在 [開始] 畫面中,開啟 [SQL Server 組態管理員]。

  2. 在瀏覽器樹狀目錄中,選取 [SQL Server 服務]。 以滑鼠右鍵按一下 [SQL Server (MSSQLSERVER)] 服務,然後選取 [屬性]。

  3. 選取 [Always On 高可用性] 索引標籤,然後選取 [啟用 Always On 可用性群組]。

    Screenshot of selections for enabling Always On availability groups in SQL Server properties.

  4. 選取 [套用]。 在快顯對話方塊中選取 [確定]。

  5. 重新啟動 SQL Server 服務。

將複本新增至可用性群組

在新建立的虛擬機器上重新啟動 SQL Server 之後,您可以將其新增為可用性群組的複本

  1. 開啟可用性群組中主要 SQL Server 執行個體的遠端桌面工作階段,然後開啟 SQL Server Management Studio (SSMS)。

  2. 在 SSMS 的 [物件總管] 中,開啟 [Always On 高可用性]>[可用性群組]。 以滑鼠右鍵按一下您的可用性群組名稱,然後選取 [新增複本]。

  3. 連線至現有複本,然後選取 [下一步]。

  4. 選取 [新增複本],然後連線至新 SQL Server VM。

    重要

    遠端 Azure 區域中的複本應設定為非同步複寫搭配手動容錯移轉。

  5. 在 [選取初始資料同步處理] 頁面中,選取 [完整],然後指定一個共用網路位置。 針對位置,請使用您所建立的備份共用。 在此範例中是 \\<First SQL Server>\Backup\。 然後選取 [下一步]。

    注意

    完整同步處理會完整備份第一個 SQL Server 執行個體上的資料庫,然後將它還原到第二個執行個體。 若是大型資料庫,我們不建議進行完整同步處理,因為可能需要很長的時間。

    您可以手動備份資料庫和使用 NO RECOVERY 加以還原,以縮短此時間。 如果在設定可用性群組之前,您已在第二個 SQL Server 執行個體上使用 NO RECOVERY 還原資料庫,則請選取 [僅聯結]。 如果您想要在設定可用性群組之後進行備份,請選取 [略過初始資料同步處理]。

    Screenshot that shows selection of the option for full data synchronization.

  6. 在 [驗證] 頁面上選取 [下一步]。 此頁面應該會看起來如下圖:

    Screenshot of the page that displays results of availability group validation in SSMS.

    注意

    若您尚未設定可用性群組接聽程式,系統會出現接聽程式設定的警告。 您可以忽略此警告,因為已設定接聽程式。 這是您在本機區域中建立 Azure Load Balancer 之後建立的。

  7. 在 [摘要] 頁面上,選取 [完成],然後等候精靈設定新的可用性群組。 在 [進度] 頁面上,選取 [詳細資料] 可檢視詳細的進度。

    在精靈完成設定之後,請檢查 [結果] 頁面,確認已成功建立可用性群組。

  8. 選取 [關閉] 即可關閉精靈。

檢查可用性群組

在 [物件總管] 中,展開 [Always On 高可用性] ,再展開 [可用性群組] 。 以滑鼠右鍵按一下可用性群組,然後選取 [顯示儀表板]。

Screenshot of Object Explorer in SSMS that shows selections for opening a dashboard for an availability group.

可用性群組儀表板的外觀應類似於下列螢幕擷取畫面,唯此處有另一個複本:

Screenshot of the availability group dashboard in SSMS.

此儀表板會顯示複本、每個複本的容錯移轉模式和同步處理狀態。

檢查可用性群組接聽程式

  1. 在 [物件總管] 中,依序展開 [Always On 高可用性]、[可用性群組] 和 [可用性群組接聽程式]。

  2. 以滑鼠右鍵按一下接聽程式名稱,然後選取 [屬性] 。 接聽程式在此處應該會顯示兩個 IP 位址 (每個區域一個)。

    Screenshot of the Availability Group Listener Properties window in SSMS, showing both IP addresses being used for the listener.

設定多個子網路的連線

遠端資料中心內的複本是可用性群組的一部份,但是位於不同的子網路。 如果此複本變成主要複本,可能會發生應用程式連線逾時。 此行為與多子網路部署中的內部部署可用性群組相同。 若要允許來自用戶端應用程式的連線,請更新用戶端連線,或在叢集網路名稱資源上設定名稱解析快取功能。

最好是更新叢集設定以設定 RegisterAllProvidersIP=1,以及更新用戶端連接字串以設定 MultiSubnetFailover=Yes。 請參閱使用 MultiSubnetFailover 連線

如果您無法修改連接字串,您可以設定名稱解析快取功能。 請參閱當您連線至多子重網路環境中的 Always On 接聽程式時,會發生逾時的狀況

容錯移轉至遠端區域

若要測試對遠端區域的接聽程式連線能力,您可以將複本容錯移轉至遠端區域。 當複本是非同步複本時,容錯移轉容易導致潛在的資料遺失。 若要容錯移轉又不遺失資料,請將可用性模式變更為同步,並將容錯移轉模式設定為自動。 使用下列步驟:

  1. 在 [物件總管] 中,連接到裝載主要複本的 SQL Server 執行個體。

  2. 在 [Always On 可用性群組] 下方,以滑鼠右鍵按一下可用性群組,然後選取 [屬性]。

  3. 在 [一般] 頁面的 [可用性複本] 下方,將災害復原 (DR) 站台上的次要複本設定為使用 [同步認可] 可用性模式和 [自動] 容錯移轉模式。

    如果您在與主要複本相同的站台中有次要複本以支援高可用性,請將此複本設定為 [非同步認可] 和 [手動]。

  4. 選取 [確定]。

  5. 在 [物件總管] 中,以滑鼠右鍵按一下可用性群組,然後選取 [顯示儀表板]。

  6. 在儀表板上,確認 DR 站台上的複本已同步。

  7. 在 [物件總管] 中,以滑鼠右鍵按一下可用性群組,然後選取 [容錯移轉]。 SQL Server Management Studio 會開啟精靈來容錯移轉 SQL Server。

  8. 選取 [下一步],然後選取 DR 站台上的 SQL Server 執行個體。 再次選取 [下一步]。

  9. 連線至 DR 站台上的 SQL Server 執行個體,然後選取 [下一步]。

  10. 在 [摘要] 頁面上,確認設定,然後選取 [完成]。

測試完連線之後,請將主要複本移回到您的主要資料中心,並將可用性模式設定回其一般作業設定。 下表顯示本文所述架構的一般作業設定:

位置 伺服器執行個體 角色 可用性模式 容錯移轉模式
主要資料中心 SQL-1 Primary 同步 自動
主要資料中心 SQL-2 次要 同步 自動
次要或遠端資料中心 SQL-3 次要 非同步的 手動

如需計劃性和強制性手動容錯移轉的詳細資訊,請參閱下列文章:

後續步驟

若要深入了解,請參閱: