教學課程:手動設定可用性群組 - Azure VM 上的 SQL Server

適用於:Azure VM 上的 SQL Server

提示

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

本教學課程會說明如何為 Azure VM 上的 SQL Server,在單一子網路內建立 Always On 可用性群組。 整個教學課程會建立一個在兩部 SQL Server 執行個體上都有一份資料庫複本的可用性群組。

本文說明如何手動設定可用性群組環境。 您也可以使用 Azure 入口網站PowerShell 或 Azure CLI,或使用 Azure 快速入門範本以自動完成這些步驟。

預估時間:符合必要條件後,本教學課程需要大約 30 分鐘才能完成。

必要條件

本教學課程假設您對 SQL Server Always On 可用性群組有基本的了解。 如需詳細資訊,請參閱 AlwaysOn 可用性群組概觀 (SQL Server)

開始本教學課程中的程序之前,您必須先完成在 Azure 虛擬機器中建立 Always On 可用性群組的必要條件。 如果這些必要條件都已經完成,您可以跳到建立叢集

下表彙整完成本教學課程前,您必須具備的必要條件:

需求 描述
兩個 SQL Server 執行個體 – 在 Azure 可用性設定組中
– 在單一網域中
- 已安裝容錯移轉叢集
Windows Server 叢集見證的檔案共用
SQL Server 服務帳戶 網域帳戶
SQL Server Agent 服務帳戶 網域帳戶
開啟防火牆連接埠 – SQL Server:1433 (用於預設執行個體)
– 資料庫鏡像端點:5022 或任何可用的連接埠。
– 可用性群組的負載平衡器 IP 位址健康情況探查:59999 或任何用的連接埠
- 叢集核心的負載平衡器 IP 位址健康情況探查:58888 或任何可用的連接埠
容錯移轉叢集 兩個 SQL Server 執行個體都需要
安裝網域帳戶 – 每個 SQL Server 執行個體上的本機系統管理員
- 每個 SQL Server 執行個體中 sysadmin 固定伺服器角色的成員
網路安全性群組 (NSG) 如果環境使用網路安全性群組,請確定目前的設定允許網路流量通過設定防火牆所述的連接埠。

建立叢集

第一項工作是建立含有 SQL Server VM 和見證伺服器的 Windows Server 容錯移轉叢集:

  1. 使用遠端桌面通訊協定 (RDP) 連線到第一個 SQL Server VM。 使用在兩部 SQL Server VM 和見證伺服器上都是系統管理員的網域帳戶。

    提示

    必要條件中,您建立了名為 CORP\Install 的帳戶。 請使用此帳戶。

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

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

    Screenshot of Failover Cluster Manager and the option for creating a cluster on the shortcut menu.

  4. 在 [建立叢集精靈] 中,以下表中的設定逐步完成每個頁面來建立單節點叢集:

    頁面 設定
    開始之前 使用預設值。
    選取伺服器 在 [輸入伺服器名稱] 中輸入第一部 SQL Server VM 名稱,然後選取 [新增]。
    驗證警告 選取 否。我不需要 Microsoft 提供此叢集的支援,也不需要執行驗證測試 。請在我選取 下一步 後,繼續建立叢集
    用於管理叢集的存取點 在 [叢集名稱] 中輸入叢集名稱,例如 SQLAGCluster1
    組態 除非您使用的是儲存空間,否則請使用預設值。

設定 Windows Server 容錯移轉叢集的 IP 位址

注意

在 Windows Server 2019 上,叢集會建立分散式伺服器名稱值,而不是叢集網路名稱值。 如果您使用的是 Windows Server 2019,請略過此教學課程中參照叢集核心名稱的任何步驟。 您可以使用 PowerShell 建立叢集網路名稱。 如需詳細資訊,請參閱部落格文章容錯移轉叢集:叢集網路物件 (英文)。

  1. 在 [容錯移轉叢集管理員] 中,向下捲動到 [叢集核心資源] 區段,然後展開叢集詳細資料。 [名稱] 和 [IP 位址] 資源應顯示為 [失敗] 狀態。

    IP 位址資源無法上線,因為叢集指派了與電腦本身相同的 IP 位址, 導致位址重複。

  2. 以滑鼠右鍵按一下失敗的 [IP 位址] 資源,然後選取 [內容]。

    Screenshot of Failover Cluster Manager that shows selections for opening properties for the IP address.

  3. 選取 [靜態 IP 位址]。 從與虛擬機器相同的子網路中指定一個可用的位址。

  4. 在 [叢集核心資源] 區段中,於叢集名稱上按一下滑鼠右鍵,然後選取 [上線]。 等待兩個資源上線。

    待叢集名稱資源上線後,將使用新的 Active Directory 電腦帳戶更新網域控制站伺服器。 稍後將使用這個 Active Directory 帳戶來執行可用性群組的叢集服務。

將另一個 SQL Server 執行個體新增到叢集

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

    Screenshot of Failover Cluster Manager that shows selections for adding a node to a cluster.

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

  3. 在 [選取伺服器] 頁面中,新增第二部 SQL Server VM。 在 [輸入伺服器名稱] 中輸入 VM 名稱,然後選取 [新增]>[下一步]。

  4. 在 [驗證警告] 頁面上,選取 [否]。 (在正式作業情節中,您應執行驗證測試。) 然後選取 [下一步]。

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

    Screenshot of the page in the Add Node Wizard that confirms the addition of a node to the cluster.

    警告

    如果您未取消選取 [新增適合的儲存裝置到叢集],Windows 就會在群集處理期間中斷與虛擬磁碟的連結。 這樣一來,這些磁碟就不會顯示在 [磁碟管理員] 或 [物件總管] 中,直到您使用 PowerShell 將儲存裝置從叢集中移除並重新連接為止。

  6. 選取 [下一步] 。

  7. 選取 [完成] 。

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

  8. 登出遠端桌面工作階段。

新增叢集仲裁的檔案共用

在此範例中,Windows 叢集會使用檔案共用來建立叢集仲裁。 本教學課程使用 NodeAndFileShareMajority 仲裁。 如需詳細資訊,請參閱設定及管理仲裁

  1. 使用遠端桌面工作階段來連接到檔案共用見證伺服器 VM。

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

  3. 選取 [共用資料夾]。

  4. 在 [共用] 上按一下滑鼠右鍵,然後選取 [新增共用]。

    Screenshot that shows selections for creating a new share in Computer Management.

    使用 [建立共用資料夾精靈] 來建立共用。

  5. 在 [資料夾路徑] 頁面上,選取 [瀏覽]。 找出或建立共用資料夾的路徑,然後選取 [下一步]。

  6. 在 [名稱、描述和設定] 頁面上,確認共用名稱和路徑。 選取 [下一步]。

  7. 在 [共用資料夾權限] 頁面上,設定 [自訂權限]。 選取 [自訂]。

  8. 在 [自訂權限] 對話方塊中,選取 [新增]。

  9. 確定用來建立叢集的帳戶具備完整的控制權。

    Screenshot of the dialog for customizing permissions, showing that the Install account has full control of the share.

  10. 選取 [確定]。

  11. 在 [共用資料夾權限] 頁面上,選取 [完成]。 接著再次選取 [完成]。

  12. 登出伺服器。

設定叢集仲裁

注意

依據可用性群組的設定,可能需要變更 Windows Server 容錯移轉叢集中成員節點的仲裁投票。 如需詳細資訊,請參閱為 Azure VM 上的 SQL Server 設定叢集仲裁

  1. 使用遠端桌面工作階段連線到第一個叢集節點。

  2. 在 [容錯移轉叢集管理員] 中,於叢集上按一下滑鼠右鍵,指向 [其他動作],然後選取 [設定叢集仲裁設定]。

    Screenshot of Failover Cluster Manager that shows selections for configuring cluster quorum settings.

  3. 在 [設定叢集仲裁精靈] 中,選取 [下一步]。

  4. 在 [選取仲裁設定選項] 頁面上,選擇 [選取仲裁見證],然後選取 [下一步]。

  5. 在 [選取仲裁見證] 頁面上,選取 [設定檔案共用見證]。

    提示

    Windows Server 2016 支援雲端見證。 如果您選擇此類型的見證,就不需要檔案共用見證。 如需詳細資訊,請參閱為容錯移轉叢集部署雲端見證。 本教學課程使用舊版作業系統支援的檔案共用見證。

  6. 在 [設定檔案共用見證] 中,輸入您為共用所建立的路徑。 然後選取 [下一步]。

  7. 在 [確認] 頁面中,驗證設定。 然後選取 [下一步]。

  8. 選取 [完成] 。

此時就會為叢集核心資源設定檔案共用見證。

啟用可用性群組

接下來,啟用 Always On 可用性群組。 在這兩部 SQL Server VM 上完成這些步驟。

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

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

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

    Screenshot that shows selections for enabling Always On availability groups.

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

  5. 重新啟動 SQL Server 服務。

啟用 FILESTREAM 功能

如果您未將 FILESTREAM 用於可用性群組中的資料庫,請略過此步驟並移至下一個步驟 – 建立資料庫

如果您計畫將資料庫新增至使用 FILESTREAM 的可用性群組,則需要啟用 FILESTREAM,因為此功能預設為停用。 使用 SQL Server 組態管理員即可在這兩個 SQL Server 執行個體上啟用此功能。

若要啟用 FILESTREAM 功能,請執行下列步驟:

  1. 使用屬於系統管理員固定伺服器角色成員的網域帳戶 (例如在必要條件文件中建立的 CORP\Install 網域帳戶),啟動第一部 SQL Server VM (例如 SQL-VM-1) 的 RDP 檔案

  2. 從其中一個 SQL Server VM 的 [開始] 畫面中啟動 SQL Server 組態管理員

  3. 在瀏覽器樹狀目錄中,反白選取 [SQL Server 服務],以滑鼠右鍵按一下 [SQL Server (MSSQLSERVER)] 服務,再選取 [內容]。

  4. 選取 FILESTREAM 索引標籤,然後選取 [對 Transact-SQL 存取啟用 FILESTREAM] 方塊:

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

  6. 在 SQL Server Management Studio 中,按一下 [新增查詢] 以顯示 [查詢編輯器]。

  7. 在 [查詢編輯器] 中,輸入下列 Transact-SQL 程式碼:

    EXEC sp_configure filestream_access_level, 2  
    RECONFIGURE
    
  8. 按一下 [執行]

  9. 重新啟動 SQL Server 服務。

  10. 對其他的 SQL Server 執行個體重複這些步驟。

在第一個 SQL Server 執行個體上建立資料庫

  1. 開啟 RDP 檔案,使用具備 sysadmin 固定伺服器角色成員身分的網域帳戶來連接第一部 SQL Server VM。
  2. 開啟 SQL Server Management Studio (SSMS) 並連線至第一部 SQL Server 執行個體。
  3. 在 [物件總管] 中,於 [資料庫] 上按一下滑鼠右鍵,然後選取 [新增資料庫]。
  4. 在 [資料庫名稱] 中,輸入 MyDB1,然後選取 [確定]。

建立備份共用

  1. 伺服器管理員中的第一部 SQL Server VM 上,選取 [工具]。 開啟 [電腦管理]。

  2. 選取 [共用資料夾]。

  3. 在 [共用] 上按一下滑鼠右鍵,然後選取 [新增共用]。

    Screenshot of selections for starting the process of creating a backup share.

    使用 [建立共用資料夾精靈] 來建立共用。

  4. 在 [資料夾路徑] 頁面上,選取 [瀏覽]。 找出或建立資料庫備份的共用資料夾路徑,然後選取 [下一步]。

  5. 在 [名稱、描述和設定] 頁面上,確認共用名稱和路徑。 然後選取 [下一步]。

  6. 在 [共用資料夾權限] 頁面上,設定 [自訂權限]。 然後選取 [自訂]。

  7. 在 [自訂權限] 對話方塊中,選取 [新增]。

  8. 選取 [完全控制],以將共用的完整存取權授與 SQL Server 服務帳戶 (Corp\SQLSvc):

    Screenshot of the Customize Permissions dialog. Make sure that the SQL Server service accounts for both servers have full control.

  9. 選取 [確定]。

  10. 在 [共用資料夾權限] 頁面上,選取 [完成]。 再次選取 [完成]

執行完整資料庫備份

您必須備份新資料庫以將記錄鏈結初始化。 如果您沒有備份新的資料庫,就無法將它納入可用性群組。

  1. 在 [物件總管] 中,於資料庫上按一下滑鼠右鍵,指向 [工作],然後選取 [備份]。

  2. 選取 [確定] 以完整備份到預設備份位置。

建立可用性群組

您現在已準備好執行下列工作來建立和設定可用性群組:

  • 在第一個 SQL Server 執行個體上建立資料庫。
  • 建立資料庫的完整備份和交易記錄備份。
  • 使用 NO RECOVERY 選項將完整備份和記錄備份還原到第二部 SQL Server 執行個體。
  • 藉由同步認可、自動容錯移轉及可讀取的次要複本,建立可用性群組 (MyTestAG)。

建立可用性群組

  1. 使用遠端桌面連線到 SQL Server VM,然後開啟 SQL Server Management Studio。

  2. 在 SSMS 的 [物件總管] 中,於 [Always On 高可用性] 上按一下滑鼠右鍵,然後選取 [新增可用性群組精靈]。

    Screenshot of Object Explorer in SSMS, with the shortcut command for starting the New Availability Group Wizard.

  3. 在 [簡介] 頁面上,選取 [下一步] 。 在 [指定可用性群組選項] 頁面上,於 [可用性群組名稱] 方塊中輸入可用性群組的名稱。 例如,輸入 MyTestAG。 然後選取 [下一步]。

    Screenshot that shows specifying an availability group name in the New Availability Group Wizard in SSMS.

  4. 在 [選取資料庫] 頁面中,選取您的資料庫,然後選取 [下一步]。

    注意

    此資料庫符合可用性群組的必要條件,因為您已經為預定的主要複本至少建立一份完整備份。

    Screenshot that shows selecting databases in the New Availability Group Wizard in SSMS.

  5. 在 [指定複本] 頁面中,選取 [新增複本]。

    Screenshot of the button for adding a replica in the New Availability Group Wizard in SSMS.

  6. 在 [連線到伺服器] 對話方塊的 [伺服器名稱] 中,輸入第二部 SQL Server 執行個體的名稱。 然後選取 [連線]。

    回到 [指定複本] 頁面,您現在應該會看到 [可用性複本] 下方列出第二部伺服器。 請依照下列方式設定複本。

    Screenshot that shows two servers listed as replicas in the New Availability Group Wizard in SSMS.

  7. 選取 [端點] 以查看此可用性群組的資料庫鏡像端點。 請使用您設定資料庫鏡像端點的防火牆規則時所用的相同連接埠。

    Screenshot of the Endpoints tab in the New Availability Group Wizard in SSMS.

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

    注意

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

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

    Screenshot of the options for data synchronization in the New Availability Group Wizard in SSMS.

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

    Screenshot of the page that shows the results of validation in the New Availability Group Wizard in SSMS.

    注意

    由於您尚未設定可用性群組接聽程式,因此出現一個接聽程式設定的警告。 您可以忽略此警告,因為在 Azure 虛擬機器上,是在您建立 Azure Load Balancer 之後才會建立接聽程式。

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

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

    Screenshot that shows successful completion of the New Availability Group Wizard in SSMS.

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

檢查可用性群組

  1. 在 [物件總管] 中,展開 [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.

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

  2. 在 [容錯移轉叢集管理員] 中,選取您的叢集。 選取 [角色]。

    您使用的可用性群組名稱是叢集上的一個角色。 該可用性群組並沒有適用於用戶端連線的 IP 位址,因為您並未設定接聽程式。 您將在建立負載平衡器之後設定接聽程式。

    Screenshot of an availability group in Failover Cluster Manager.

    警告

    請勿嘗試從 [容錯移轉叢集管理員] 容錯移轉可用性群組。 所有容錯移轉作業都應在 SSMS 中的可用性群組儀表板上執行。 深入了解容錯移轉叢集管理員與可用性群組一起使用的限制

此時,您擁有一個可用性群組,其中含有兩個 SQL Server 複本。 您可以在執行個體之間移動可用性群組。 您還不能連線到該可用性群組,因為沒有接聽程式。

在 Azure 虛擬機器中,接聽程式需要負載平衡器。 下一個步驟就是在 Azure 中建立負載平衡器。

建立 Azure Load Balancer

注意

將可用性群組部署至多個子網路並不需要負載平衡器。 在單一子網路環境中,在 Windows 2016 和更新版本上使用 SQL Server 2019 CU8 和更新版本的客戶,可改為使用分散式網路名稱 (DNN) 接聽程式取代傳統的虛擬網路名稱 (VNN) 接聽程式和 Azure Load Balancer。 如果您想要使用 DNN,請略過為可用性群組設定 Azure Load Balancer 的任何教學課程步驟。

在單一子網路中的 Azure 虛擬機器上,SQL Server 可用性群組需要負載平衡器。 負載平衡器會保有可用性群組接聽程式以及 Windows Server 容錯移轉叢集的 IP 位址。 本節摘要說明如何在 Azure 入口網站中建立負載平衡器。

Azure 中的負載平衡器可以是標準基本。 標準負載平衡器的功能比基本負載平衡器多。 對於可用性群組,如果您使用可用性區域 (而非可用性設定組),則需要標準負載平衡器。 如需各 SKU 之間差異的詳細資訊,請參閱 Azure Load Balancer SKU

重要

Azure Load Balancer 的基本 SKU 將於 2025 年 9 月 30 日淘汰。 如需詳細資訊,請參閱官方公告。 如果您目前使用的是 Basic Load Balancer,則請在淘汰日之前升級至 Standard Load Balancer。 如需指引,請參閱升級負載平衡器

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

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

    Screenshot that shows selecting a Microsoft-published load balancer.

  3. 選取 [建立]。

  4. 在 [建立負載平衡器] 頁面上,設定負載平衡器的下列參數:

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

    頁面應如下所示:

    Screenshot of the Azure portal that shows selected parameters for a load balancer.

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

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

    Screenshot of the button for creating a frontend IP configuration in the Azure portal.

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

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

    下圖顯示 [新增前端 IP 設定] 對話方塊:

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

  8. 選取 [新增]。

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

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

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

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

    Screenshot of the Azure portal that shows a load balancer in an availability group.

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

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

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

  5. 選取 [新增],以將後端集區關聯至包含 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 (伺服器直接回傳) 流程拓撲和 IP 位址對應配置 Enabled

    警告

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

  3. 選取 [儲存]。

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

Windows Server 容錯移轉叢集的 IP 位址也必須在負載平衡器上。 如果您使用 Windows Server 2019,請略過此程序,因為叢集會建立分散式伺服器名稱值,而不是叢集網路名稱值。

  1. 在 Azure 入口網站中,移至相同的 Azure 負載平衡器。 選取 [前端 IP 設定],然後選取 [+新增]。 使用您在叢集核心資源中為 Windows Server 容錯移轉叢集設定的 IP 位址。 將 IP 位址設為 [靜態]。

  2. 在負載平衡器上,選取 [健全狀態探查],然後選取 [+ 新增]。

  3. 設定 Windows Server 容錯移轉叢集的叢集核心 IP 位址健全狀態探查,如下所示:

    設定 描述 範例
    名稱 Text WSFCEndPointProbe
    通訊協定 選擇 [TCP] TCP
    通訊埠 任何未使用的連接埠 58888
    間隔 探查嘗試間隔的時間量 (秒) 5
  4. 選取 [新增] 以設定健全狀態探查。

  5. 選取 [負載平衡規則],然後選取 [+新增]。

  6. 依照下列步驟設定叢集核心 IP 位址的負載平衡規則:

    設定 描述 範例
    名稱 Text WSFCEndPoint
    前端 IP 位址 選擇一個位址 使用您為 Windows Server 容錯移轉叢集設定 IP 位址時所建立的位址。 這與接聽程式 IP 位址不同。
    後端集區 選擇後端集區 選取後端集區,其中包含以負載平衡器為目標的虛擬機器。
    通訊協定 選擇 [TCP] TCP
    通訊埠 使用叢集 IP 位址的連接埠。 這個可用的連接埠不用於接聽程式探查連接埠。 58888
    後端連接埠 如果已為伺服器直接回傳設定浮動 IP,則不會使用此欄位。 58888
    探查 您為探查指定的名稱 WSFCEndPointProbe
    工作階段持續性 下拉式清單 None
    閒置逾時 讓 TCP 連線保持開啟的分鐘數 4
    浮動 IP (伺服器直接回傳) 流程拓撲和 IP 位址對應配置 Enabled

    警告

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

  7. 選取 [確定]。

設定接聽程式

下一步是在容錯移轉叢集上設定可用性群組接聽程式。

注意

本教學課程示範如何利用內部負載平衡器的一個 IP 位址來建立單一接聽程式。 若要使用一或多個 IP 位址建立接聽程式,請參閱設定一或多個 Always On 可用性群組接聽程式

可用性群組接聽程式是一個 IP 位址及網路名稱,可供 SQL Server 可用性群組接聽。 若要建立可用性群組接聽程式:

  1. 取得叢集網路資源名稱:

    a. 使用 RDP 連接到裝載主要複本的 Azure 虛擬機器。

    b. 開啟 [容錯移轉叢集管理員]。

    c. 選取 [網路]節點,然後記下叢集網路名稱。 請在 PowerShell 指令碼的 $ClusterNetworkName 變數中使用這個名稱。 下圖中的叢集網路名稱為 [叢集網路 1]:

    Screenshot that shows a cluster network name in Failover Cluster Manager.

  2. 新增用戶端存取點。 用戶端存取點是一個網路名稱,應用程式可用來連線到可用性群組中的資料庫。

    a. 在 [容錯移轉叢集管理員] 中,展開叢集名稱,然後選取 [角色]。

    b. 在 [角色] 窗格上,以滑鼠右鍵按一下可用性群組名稱,然後選取 [新增資源]>[用戶端存取點]。

    Screenshot of Failover Cluster Manager that shows selecting the Client Access Point command on the shortcut menu for the availability group.

    c. 在 [名稱] 方塊中,建立新接聽程式的名稱。 新接聽程式的名稱是應用程式將用來連線到 SQL Server 可用性群組中資料庫的網路名稱。

    d. 若要完成建立接聽程式,請選取 [下一步] 兩次,然後選取 [完成]。 此時請勿讓接聽程式或資源上線。

  3. 讓可用性群組的叢集角色離線。 在 [容錯移轉叢集管理員] 的 [角色] 下方,以滑鼠右鍵按一下角色,然後選取 [停止角色]。

  4. 為可用性群組設定 IP 資源:

    a. 選取 [資源] 索引標籤,然後展開您建立的用戶端存取點。 用戶端存取點離線。

    Screenshot of Failover Cluster Manager that shows an offline status for a client access point.

    b. 以滑鼠右鍵按一下 IP 資源,然後選取 [屬性]。 記下 IP 位址的名稱,並將它使用於 PowerShell 指令碼的 $IPResourceName 變數中。

    c. 在 [IP 位址] 下方,選取 [靜態 IP 位址]。 將 [IP 位址] 設為與您在 Azure 入口網站中設定負載平衡器的相同地址。

    Screenshot of Failover Cluster Manager that shows the selection of an IP address.

  5. 讓 SQL Server 可用性群組依存於用戶端存取點:

    a. 在 [容錯移轉叢集管理員] 中,選取 [角色],然後選取您的可用性群組。

    b. 在 [資源] 索引標籤的 [其他資源] 下方,以滑鼠右鍵按一下可用性群組資源,然後選取 [屬性]。

    c. 在 [相依性] 索引標籤上,新增用戶端存取點 (接聽程式) 的名稱。

    Screenshot of Failover Cluster Manager that shows adding a name on the Dependencies tab.

    d. 選取 [確定]。

  6. 讓用戶端存取點依存於 IP 位址:

    a. 在 [容錯移轉叢集管理員] 中,選取 [角色],然後選取您的可用性群組。

    b. 在 [資源] 索引標籤中,以滑鼠右鍵按一下 [伺服器名稱] 下方的用戶端存取點,然後選取 [屬性]。

    Screenshot of Failover Cluster Manager that shows the Properties menu option for the listener's name.

    c. 選取 [相依性] 索引標籤。請確認 IP 位址具有相依性。 否則,請在 IP 位址上設定相依性。 如果列出多個資源,請確認 IP 位址具有 [OR] (而非 [AND]) 相依性。 然後選取 [確定]。

    Screenshot of the Dependencies tab that shows an IP resource for an availability group.

    提示

    您可以驗證相依性是否已正確設定。 在 [容錯移轉叢集管理員] 中,移至 [角色],並以滑鼠右鍵按一下可用性群組,再選取 [其他動作],然後選取 [顯示相依性報告]。 正確設定相依性後,可用性群組會相依於網路名稱,而網路名稱則相依於 IP 位址。

  7. 在 PowerShell 中設定叢集參數:

    a. 將下列 PowerShell 指令碼複製到您的其中一個 SQL Server 執行個體。 請更新您環境的變數。

    • $ClusterNetworkName 會在 [容錯移轉叢集管理員] 中選取 [網路],並以滑鼠右鍵按一下網路,然後選取 [屬性],以找到該名稱。 $ClusterNetworkName 位於 [一般] 索引標籤的 [名稱] 下方。

    • $IPResourceName 是在 [容錯移轉叢集管理員] 中指定給 IP 位址資源的名稱。 請在 [容錯移轉叢集管理員] 中選取 [角色]、選取 [SQL Server AG 或 FCI 名稱]、選取 [伺服器名稱] 下方的 [資源] 索引標籤,以滑鼠右鍵按一下 IP 位址資源,然後選取 [屬性],即可找到它。 正確的值在一般索引標籤的 [名稱] 底下。

    • $ListenerILBIP 是您在 Azure 負載平衡器上為可用性群組接聽程式所建立的 IP 位址。 在 [容錯移轉叢集管理員] 中,於與 SQL Server AG/FCI 接聽程式資源名稱相同的屬性頁面上,尋找 $ListenerILBIP

    • $ListenerProbePort 是您已在 Azure 負載平衡器上針對可用性群組接聽程式所設定的連接埠,例如 59999。 任何未使用的 TCP 連接埠都有效。

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

    b. 在其中一個叢集節點中執行 PowerShell 指令碼,以設定叢集參數。

    注意

    如果您的 SQL Server 執行個體位於不同的區域中,您需要執行 PowerShell 指令碼兩次。 第一次請使用第一個區域中的 $ListenerILBIP$ListenerProbePort 值。 第二次則請使用第二個區域中的 $ListenerILBIP$ListenerProbePort 值。 每個區域的叢集網路名稱和叢集 IP 資源名稱也會不同。

  8. 讓可用性群組的叢集角色上線。 在 [容錯移轉叢集管理員] 的 [角色] 下方,以滑鼠右鍵按一下角色,然後選取 [啟動角色]。

必要時,請重複上述步驟,為 Windows Server 容錯移轉叢集的 IP 位址設定叢集參數:

  1. 取得 Windows Server 容錯移轉叢集的 IP 位址名稱。 在 [容錯移轉叢集管理員] 的 [叢集核心資源] 下方,尋找 [伺服器名稱]。

  2. 以滑鼠右鍵按一下 [IP 位址],然後選取 [屬性]。

  3. 從 [名稱] 複製 IP 位址的名稱。 該名稱可能是 [叢集 IP 位址]。

  4. 在 PowerShell 中設定叢集參數:

    a. 將下列 PowerShell 指令碼複製到您的其中一個 SQL Server 執行個體。 請更新您環境的變數。

    • $ClusterCoreIP 是您在 Azure 負載平衡器上為 Windows Server 容錯移轉叢集的核心叢集資源所建立的 IP 位址。 此位址與可用性群組接聽程式的 IP 位址不同。

    • $ClusterProbePort 是您在 Azure 負載平衡器上為 Windows Server 容錯移轉叢集健全狀態探查所設定的連接埠。 此探查與可用性群組接聽程式的探查不同。

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name.
    $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener.
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. 在其中一個叢集節點中執行 PowerShell 指令碼,以設定叢集參數。

如果任何 SQL 資源設定為使用 49152 到 65536 (TCP/IP 的預設動態連接埠範圍) 之間的連接埠,請新增每個連接埠的排除項目。 這類資源可能包含:

  • SQL Server 資料庫引擎
  • Always On 可用性群組接聽程式
  • 容錯移轉叢集執行個體的健全狀態探查
  • 資料庫鏡像端點
  • 叢集核心 IP 資源

新增排除項目,以防止將其他系統程序動態指派給相同的連接埠。 在此情況下,請在所有叢集節點上設定下列排除項目:

  • netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
  • netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

請務必在連接埠未使用時設定連接埠排除項目。 否則,命令將會失敗,並出現訊息:「程序無法存取檔案,因為檔案正由另一個程序使用」。若要確認排除項目已正確設定,請使用下列命令:netsh int ipv4 show excludedportrange tcp

警告

可用性群組接聽程式健全狀態探查的連接埠必須與叢集核心 IP 位址健全狀態探查的連接埠不同。 在這些範例中,接聽程式連接埠是 59999,而叢集核心 IP 位址健全狀態探查的連接埠是 58888。 這兩個連接埠都需要「允許輸入」防火牆規則。

設定接聽程式連接埠

在 SQL Server Management Studio 中,設定接聽程式連接埠:

  1. 開啟 SQL Server Management Studio,然後連接到主要複本。

  2. 移至 [Always On 高可用性]>[可用性群組]>[可用性群組接聽程式]。

  3. 以滑鼠右鍵按一下您在容錯移轉叢集管理員中建立的接聽程式名稱,然後選取 [屬性]。

  4. 在 [連接埠] 方塊中,為可用性群組接聽程式指定連接埠號碼。 預設值是 1433。 選取 [確定]。

現在,您在以 Azure Resource Manager 模式執行的 Azure VM 中,已有一個用於 SQL Server 的可用性群組。

測試接聽程式的連線

若要測試連線︰

  1. 使用 RDP 連線到位於相同虛擬網路但未擁有複本 (例如其他複本) 的 SQL Server VM。

  2. 使用 sqlcmd 公用程式來測試連線。 例如,下列指令碼使用 Windows 驗證,透過接聽程式建立與主要複本的 sqlcmd 連線:

    sqlcmd -S <listenerName> -E
    

    如果接聽程式使用預設連接埠 (1433) 以外的連接埠,請在連接字串中指定該連接埠。 例如,下列命令會連線到位於連接埠 1435 的接聽程式:

    sqlcmd -S <listenerName>,1435 -E
    

sqlcmd 公用程式會自動連線到目前是可用性群組主要複本的 SQL Server 執行個體。

提示

請確定您指定的連接埠已在兩部 SQL Server VM 的防火牆上開啟。 這兩部伺服器需要您使用的 TCP 連接埠的輸入規則。 如需詳細資訊,請參閱新增或編輯防火牆規則

下一步

若要深入了解,請參閱: