共用方式為


設定跨 Azure 區域的多重子網路可用性群組 - 在 Azure VM 上的 SQL Server

適用於:Azure VM 上的 SQL Server

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

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

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

概觀

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

Diagram showing the resources that are deployed in this tutorial.

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

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

Diagram of a disaster recovery scenario for an availability group.

圖表中顯示一個名為 SQL-VM-3 的新虛擬機器。 SQL-VM-3 位於不同的 Azure 區域中。 此虛擬機器會新增至 Windows Server 容錯移轉叢集,而且可以裝載可用性群組複本。 在此架構中,通常會以非同步認可可用性模式和手動容錯移轉模式設定遠端區域中的複本。

注意

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

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

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

重要

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

建立網路和子網路

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

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

類型 本機 遠端區域
位址空間 10.38.0.0/16 10.19.0.0/16
DC 子網網路 10.38.0.0/24 10.19.0.0/24
SQL 子網路 1 網路 10.38.1.0/24 10.19.1.0/24
SQL 子網路 2 網路 10.38.2.0/24 n/a
叢集 IP 1 10.38.1.10 10.19.1.10
叢集 IP 2 10.38.2.10 n/a
可用性群組接聽程式 IP 1 10.38.1.11 10.19.1.11
可用性群組接聽程式 IP 1 10.38.2.11 n/a

若要在 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.19.0.0/16。 選取 [新增]。

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

  6. 新增網域控制站和 SQL Server 的子網路。

    1. 選取 [+新增子網路]。

    2. 在 [子網路名稱] 中提供一個值,例如 DC-Subnet

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

      例如,如果您的位址範圍是 10.19.0.0/16,請針對 DC-Subnet 子網路輸入下列值:10.19.1.0 表示開始位址,以及 /24 表示子網路大小

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

    5. SQL-subnet1 重複流程。 完成時,您應該會有遠端區域中網域控制站的子網路,以及遠端區域中每個 SQL Server 的子網路。 例如,在本教學課程中,遠端區域虛擬網路包含:

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

  7. 選取 [檢閱 + 建立] 以建立虛擬網路。

設定虛擬網路 DNS

建立虛擬網路之後,請將它設定為使用來自本機或主要網域控制站的 DNS 伺服器。

若要設定虛擬網路以使用 DNS,請遵循下列步驟:

  1. Azure 入口網站中移至資源群組,並選取虛擬網路 (例如 remote-HAVNET)。
  2. 選取 [設定] 窗格下的 [DNS 伺服器],然後選取 [自訂]。
  3. 在 [IP 位址] 欄位中輸入您先前識別的私人 IP 位址,例如 10.38.0.4
  4. 選取 [儲存]。

連線兩個 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,然後選取 [建立]。

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

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

Azure 會建立虛擬機器。

設定網域控制站

在接下來的步驟中,請將 DC-VM-3 電腦設定為 corp.contoso.com 的網域控制站:

設定慣用 DNS 伺服器位址

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

  1. 登入 Azure 入口網站

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

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

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

  5. 由於此網域控制站與主要網域控制站不在相同的虛擬網路中,請選取 [自訂] 並輸入本機網域控制站的 IP 位址,例如 10.38.0.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. 選取儀表板上的 [新增角色及功能] 連結。

    Screenshot of the Server Manager - Add roles highlighted.

  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. 連續選取 [下一步],直到對話方塊到達 [必要條件] 檢查。 然後選取 [安裝]。

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

將第二個 DC IP 位址新增至 DNS

設定遠端網域控制站之後,請遵循與之前相同的步驟來識別 VM 的私人 IP 位址,並將私人 IP 位址新增為資源群組內虛擬網路 (本端或遠端虛擬網路) 中的次要自訂 DNS 伺服器。 在 Azure 入口網站中新增次要 DNS 伺服器,即可啟用 DNS 服務的備援。

建立 SQL Server VM

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

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

可用性 - 可用性區域

針對最高層級的備援,復原性和可用性會在個別可用性區域中部署 VM。 「可用性區域」是 Azure 地區內獨特的實體位置。 每個區域皆由一或多個配備獨立電力、冷卻系統及網路功能的資料中心所組成。 針對不支援可用性區域的 Azure 區域,請改用可用性設定組。 將所有 VM 放置在相同的可用性設定組內。

儲存體 - Azure 受控磁碟

為虛擬機器儲存體使用 Azure 受控磁碟。 Microsoft 建議使用 SQL Server 虛擬機器的受控磁碟,因為可用來處理幕後的儲存體。 如需詳細資訊,請參閱 Azure 受控磁碟概觀

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

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

網路 - 每一伺服器單一 NIC

使用每一伺服器 (叢集節點) 單一 NIC。 Azure 網路具有實體備援,因此部署至 Azure 虛擬機器的容錯移轉叢集上不需要額外的 NIC。 叢集驗證報告會警告您節點只能在單一網路上觸達。 當您錯移轉叢集位於 Azure 虛擬機器時,您可以忽略此警告。

建立和設定 SQL Server VM

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

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

使用者名稱 = DomainAdmin

密碼 = Contoso!0000

訂用帳戶 = 您的訂用帳戶

資源群組 = SQL-HA-RG

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

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

虛擬網路 = remote-HAVNET

子網路 = SQL-subnet1 (10.19.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 系統管理權限授與這些機器。

設定 SQL Server VM

VM 建立完成後,請將次要 IP 位址新增至每個 VM,並將它們加入網域,以設定您的 SQL Server VM。

將次要 IP 新增至 SQL Server VM

在多重子網環境中,將次要 IP 位址指派給每個 SQL Server VM 以用於可用性群組接聽程式,並針對 Windows Server 2016 和更早版本,將次要 IP 位址指派給每個 SQL Server VM 以用於叢集 IP 位址。 這麼做即不再需要 Azure Load Balancer,因為就和單一子網路環境的需求一樣。

在 Windows Server 2016 和較舊版本中,您需要將額外的次要 IP 位址指派給每部 SQL Server VM 以供 Windows 叢集 IP 使用,因為叢集會使用叢集網路名稱,而不是在 Windows Server 2019 中引入的預設分散式網路名稱 (DNN)。 使用 DNN 時,叢集名稱物件 (CNO) 會自動註冊所有叢集節點的 IP 位址,不再需要專用的 Windows 叢集 IP 位址。

如果使用 Windows Server 2016 和較舊版本,請遵循本節中的步驟,將次要 IP 位址指派給每部 SQL Server VM,供可用性群組接聽程式「和」叢集「一起」使用。

重要

如果使用 Windows Server 2019 或更新版本,請只指派次要 IP 位址供可用性群組接聽程式使用,並略過指派 Windows 叢集 IP 的步驟,除非您打算使用虛擬網路名稱 (VNN) 來設定叢集,如此才需要將這兩個 IP 位址指派給每部 SQL Server VM,就像在 Windows Server 2016 中時一樣。

若要將額外的次要 IP 指派給 VM,請遵循下列步驟:

  1. Azure 入口網站中移至資源群組,並選取 SQL Server VM SQL-VM-3

  2. 選取 [設定] 窗格中的 [網路],然後選取 [網路介面]。

  3. 在 [網路介面] 頁面的 [設定] 窗格中,選取 [IP 設定],然後選擇 [+ 新增],新增額外的 IP 位址。

  4. 在 [新增 IP 設定] 頁面上,執行下列動作:

    1. 指定名稱作為 Windows 叢集 IP,例如為 Windows 2016 及較舊版本使用 Windows-cluster-ip。 如果使用 Windows Server 2019 或更新版本,請略過此步驟。
    2. 將 [配置] 設為靜態
    3. 在相同子網路 (SQL-subnet-1) 中輸入未使用的 IP 位址作為 SQL Server VM (SQL-VM-1),例如 10.19.1.10
    4. 保留 [公用 IP 位址] 的預設值 [取消關聯]。
    5. 選取 [確定] 完成新增 IP 設定。
  5. 再次選取 [+ 新增],為可用性群組接聽程式設定其他 IP 位址 (指定名稱如 availability-group-listener),並再次在 SQL-subnet-1 中指定未使用的 ip 位址,例如 10.19.1.11

    Screenshot of the Azure portal that shows the IP configurations on the network interface.

現在您已準備好加入 corp.contoso.com

將伺服器加入網域

若要將 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 帳戶登入 SQL-VM-3

    提示

    在稍早的步驟中,您使用的是「內建」的系統管理員帳戶。 現在伺服器位於網域中,請確定您已使用網域系統管理員帳戶登入。 在您的 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 必須都以網域帳戶執行。

將容錯移轉叢集新增至 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。
  • 資料庫鏡像端點:任何可用的連接埠。 範例會經常使用 5022。

在兩台 SQL Server VM 上開啟這些防火牆連接埠。 開啟連接埠的方法取決於您使用的防火牆解決方案,且可能會因本節所提供的 Windows 防火牆範例而有所不同。

若要在 Windows 防火牆上開啟這些連接埠,請遵循下列步驟:

  1. 在第一個 SQL Server 上 [開始] 畫面中啟動 [具備進階安全性的 Windows 防火牆]。

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

  3. 針對 [規則類型],選擇 [連接埠]。

  4. 針對連接埠,指定 [TCP] 並輸入適當的連接埠號碼。 請參閱下列範例:

    Screenshot of configuring a new rule for the Windows firewall.

  5. 選取 [下一步] 。

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

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

  8. 在 [名稱] 頁面上的 [名稱] 文字方塊中指定規則名稱 (例如 SQL 輸入),然後選取 [完成]。

將 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 位址],然後在 [位址] 方塊中,指派您先前為接聽程式選取的靜態 IP 位址,在本教學課程中是 10.19.1.11

    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 運算子。

啟用可用性群組

接著啟用 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 還原資料庫,則請選取 [僅聯結]。 如果您想要在設定可用性群組之後進行備份,請選取 [略過初始資料同步處理]。

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

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

    注意

    若您尚未設定可用性群組接聽程式,系統會出現接聽程式設定的警告。 您可以忽略此警告,因為已設定接聽程式。

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

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

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

檢查可用性群組

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

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

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-VM-1 Primary 同步 自動
主要資料中心 SQL-VM-2 次要 同步 自動
次要或遠端資料中心 SQL-VM-3 次要 非同步的 手動

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

後續步驟

若要深入了解,請參閱: