使用進階檔案共用建立 FCI (Azure VM 上的 SQL Server)

適用於:Azure VM 上的 SQL Server

提示

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

本文說明如何使用進階檔案共用在 Azure 虛擬機器 (VM) 上建立 SQL Server 的容錯移轉叢集執行個體 (FCI)。

進階檔案共用支援 SSD 並提供持續低延遲檔案共用,可在 Windows Server 2012 或更新版本中,完全支援使用 SQL Server 2012 或更新版本的容錯移轉叢集執行個體。 進階檔案共用提供更大的彈性,因此無需停機,即可調整檔案共用的大小和規模。

若要深入了解,請參閱 Azure VM 上使用 SQL Server 的 FCI 的概觀和叢集最佳做法

注意

現在使用 Azure Migrate 可將容錯移轉叢集執行個體解決方案隨即轉換至 Azure VM 上的 SQL Server。 若要深入了解,請參閱移轉容錯移轉叢集執行個體

必要條件

建議先準備好下列項目,再完成本文中的指示:

掛接進階檔案共用

若要掛接您的進階檔案共用,請遵循下列步驟:

  1. 登入 Azure 入口網站,然後前往您的儲存體帳戶。

  2. 移至 [資料儲存體] 底下的 [檔案共用],然後選取要用於 SQL 儲存體的進階檔案共用。

  3. 選取 [連線],以顯示檔案共用的連接字串。

  4. 在下拉式清單中,選取您要使用的磁碟機代號,選擇 [儲存體的帳戶金鑰] 作為驗證方法,然後將程式碼區塊複製到文字編輯器,例如記事本。

    顯示如何從檔案共用連線入口網站複製 PowerShell 命令的螢幕擷取畫面。

  5. 使用 SQL Server FCI 將用於服務帳戶的帳戶,用遠端桌面通訊協定 (RDP) 連線至 SQL Server VM。

  6. 開啟系統管理 PowerShell 命令主控台。

  7. 執行您先前從檔案共用入口網站複製到文字編輯器的命令。

  8. 使用檔案總管或 [執行] 對話方塊 (鍵盤上的 Windows + R) 移至共用。 使用網路路徑 \\storageaccountname.file.core.windows.net\filesharename。 例如, \\sqlvmstorageaccount.file.core.windows.net\sqlpremiumfileshare

  9. 在新連線的檔案共用上,至少建立一個資料夾,以放置 SQL 資料檔案。

  10. 對要參與叢集的每部 SQL Server VM 重複這些步驟。

重要

請考慮為備份檔案使用個別的檔案共用,以節省此共用中資料和記錄檔的每秒輸入/輸出作業數 (IOPS) 與空間容量。 備份檔案可使用進階或標準檔案共用。

建立 Windows 容錯移轉叢集

建立 Windows Server 容錯移轉叢集的步驟,取決於您是將 SQL Server VM 部署到單一子網路或多重子網路。 若要建立叢集,請針對多重子網路案例單一子網路案例,遵循本教學課程中的步驟。 雖然這些教學課程適用於建立可用性群組,但建立叢集的步驟是相同的。

設定仲裁

針對 Azure VM 上的 SQL Server,雲端見證是此類型叢集設定建議的仲裁解決方案。

如果您的叢集中有偶數個投票,請設定最適合您商務需求的仲裁解決方案。 如需詳細資訊,請參閱 SQL Server VM 的仲裁

驗證叢集

使用容錯移轉叢集管理員 UI 或 PowerShell,驗證其中一個虛擬機器上的叢集。

若要使用 UI 來驗證叢集,請在其中一個虛擬機器上執行下列步驟:

  1. 在 [伺服器管理員] 下,選取 [工具],然後選取 [容錯移轉叢集管理員]。

  2. 在 [容錯移轉叢集管理員] 下,選取 [動作],然後選取 [驗證設定]。

  3. 選取 [下一步] 。

  4. 在 [選取伺服器或叢集] 下,輸入這兩部虛擬機器的名稱。

  5. 在 [測試選項] 下,選取 [僅執行我選取的測試]。

  6. 選取 [下一步] 。

  7. 在 [測試選取] 下,選取除 [儲存體] 和 [儲存空間直接存取] 以外的所有測試,如下所示:

    顯示如何選取叢集驗證測試的螢幕擷取畫面。

  8. 選取 [下一步] 。

  9. 在 [確認] 下,選取 [下一步]。 [驗證設定] 精靈會執行驗證測試。

若要使用 PowerShell 驗證叢集,請在其中一部虛擬機器上,從系統管理員 PowerShell 工作階段執行下列指令碼:

Test-Cluster –Node ("<node1>","<node2>") –Include "Inventory", "Network", "System Configuration"

測試叢集容錯移轉

測試叢集的容錯移轉。 在 [容錯移轉叢集管理員] 中,以滑鼠右鍵按一下叢集,然後選取 [其他動作]>[移動核心叢集資源]>[選取節點],然後選取叢集的其他節點。 將核心叢集資源移到叢集的每個節點,再移回主要節點。 如果您可成功地將叢集移至每個節點,即可開始安裝 SQL Server。

顯示如何將核心資源移至其他節點以測試叢集容錯移轉的螢幕擷取畫面。

建立 SDL Server FCI

設定容錯移轉叢集之後,即可建立 SQL Server FCI。

  1. 使用 RDP 連線到第一部虛擬機器。

  2. 在 [容錯移轉叢集管理員] 中,確定所有核心叢集資源都位於第一個虛擬機器。 如有必要,請將所有資源移至此虛擬機器。

  3. 如果作業系統的版本是 Windows Server 2019,且 Windows 叢集是使用預設的分散式網路名稱 (DNN) 建立,則 SQL Server 2017 和以下的 FCI 安裝會失敗,並出現錯誤 The given key was not present in the dictionary

    在安裝期間,SQL Server 安裝程式會查詢現有的虛擬網路名稱 (VNN),且無法辨識 Windows 叢集 DNN。 SQL Server 2019 安裝程式已修正此問題。 針對 SQL Server 2017 和以下版本,請遵循下列步驟以避免安裝錯誤:

    • 在容錯移轉叢集管理員中,連線到叢集,以滑鼠右鍵按一下 [角色],然後選取 [建立空的角色]。
    • 以滑鼠右鍵按一下新建立的空角色,選取 [新增資源],然後選取 [用戶端存取點]
    • 輸入任何名稱,並完成精靈,以建立用戶端存取點
    • SQL Server FCI 安裝完成之後,就可以刪除包含暫時性用戶端存取點的角色。
  4. 找出安裝媒體。 若虛擬機器是使用其中一個 Azure Marketplace 映像,則媒體會位於 C:\SQLServer_<version number>_Full

  5. 選取 [設定]。

  6. 在 [SQL Server 安裝中心] 中,選取 [安裝]。

  7. 選取 [新的 SQL Server 容錯移轉叢集安裝],然後依照精靈中的指示安裝 SQL Server FCI。

  8. 在 [叢集網路設定] 頁面上,您提供的 IP 會依據您的 SQL Server VM 部署至單一子網路或多重子網路而有所不同。

    1. 對於單一子網路環境,提供您打算新增至 Azure Load Balancer 的 IP 位址
    2. 對於多重子網路環境,請在「第一個」 SQL Server VM (您先前指定為容錯移轉叢集執行個體網路名稱的 IP 位址) 的子網路中,提供次要 IP 位址:

    第一個 VM 子網路中次要 IP 位址的螢幕擷取畫面。

  9. 在 [資料庫引擎設定] 中,資料目錄必須位於進階檔案共用上。 請輸入共用的完整路徑,格式如下:\\storageaccountname.file.core.windows.net\filesharename\foldername。 隨即會出現警告告知已指定檔案伺服器作為資料目錄。 這是預期的警告。 請確定在保存檔案共用時,您透過 RDP 用來存取 VM 的使用者帳戶與 SQL Server 服務用來避免可能發生失敗的帳戶是同一帳戶。

    顯示使用檔案共用作為 SQL 資料目錄的螢幕擷取畫面。

  10. 完成精靈中的步驟後,安裝程式會在第一個節點上安裝 SQL Server FCI。

  11. 在第一個節點上成功安裝 FCI 之後,請使用 RDP 連線至第二個節點。

  12. 開啟 [SQL Server 安裝中心],然後選取 [安裝]。

  13. 選取 [將節點新增到 SQL Server 容錯移轉叢集]。 遵循精靈中的指示來安裝 SQL Server,並將節點新增到 FCI。

  14. 對於多重子網路案例,在 [叢集網路設定] 中,請在「第二個」SQL Server VM (您先前指定為容錯移轉叢集執行個體網路名稱 的 IP 位址) 的子網路中,提供次要 IP 位址

    在第二個 SQL Server VM 子網路的子網路中輸入次要 IP 位址的螢幕擷取畫面。

    在 [叢集網路設定] 中選取 [下一步] 之後,安裝程式會顯示一個對話方塊,指出 SQL Server 安裝程式在範例圖片中偵測到多個子網路。 選取 [是] 加以確認。

    顯示多子網路確認的螢幕擷取畫面。

  15. 完成精靈中的指示之後,安裝程式會新增第二個 SQL Server FCI 節點。

  16. 在您想要新增至 SQL Server 容錯移轉叢集執行個體的任何其他節點上重複這些步驟。

注意

Azure Marketplace 資源庫映像隨附已安裝的 SQL Server Management Studio。 如果您未使用 Marketplace 映像,請下載 SQL Server Management Studio (SSMS)

向 SQL IaaS 代理程式延伸模組註冊

若要從入口網站管理您的 SQL Server 虛擬機器,請向 SQL IaaS 代理程式延伸模組註冊虛擬機器。 具有 SQL Server 容錯移轉叢集執行個體 (FCI) 的 SQL VM 只會具有有限的功能

如果您的 SQL Server VM 已經向 SQL IaaS 代理程式延伸模組註冊,而且您已啟用任何需要代理程式的功能,則需要從延伸模組取消註冊 SQL Server VM,然後在安裝 FCI 之後再次註冊。

使用 PowerShell 註冊 SQL Server VM (-LicenseType 可以是 PAYGAHUB):

# Get the existing compute VM
$vm = Get-AzVM -Name <vm_name> -ResourceGroupName <resource_group_name>

# Register SQL VM with SQL IaaS Agent extension
New-AzSqlVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location `
   -LicenseType <license_type>

設定連線能力

如果您將 SQL Server VM 部署在多個子網路中,請跳過此步驟。 如果您將 SQL Server VM 部署到單一子網路,則必須設定額外的元件,將流量路由至您的 FCI。 您可以使用 Azure Load Balancer,或針對容錯移轉叢集執行個體的分散式網路名稱,設定虛擬網路名稱 (VNN)。 請檢閱這兩者之間的差異,然後為您的容錯移轉叢集執行個體部署至分散式網路名稱虛擬網路名稱 Azure Load Balancer

限制

  • Windows Server 2016 和較舊版本不支援 Microsoft 分散式交易協調器 (MSDTC)。
  • 使用進階檔案共用的容錯移轉叢集不支援 FILESTREAM。 若要使用 Filestream,請改用儲存空間直接存取Azure 共用磁碟來部署叢集。
  • SQL Server 向 SQL IaaS 代理程式延伸模組註冊的 FCI 不支援需要代理程式的功能,例如自動備份、修補、Microsoft Entra 驗證和進階入口網站管理。 如需詳細資訊,請參閱優點資料表
  • 目前不支援將資料庫快照集用於 Azure 檔案儲存體,因為有疏鬆檔案限制
  • 由於不支援資料庫快照集,使用者資料庫的 CHECKDB 會回復為 CHECKDB WITH TABLOCK。 TABLOCK 會限制執行的檢查 - 不會對資料庫執行 DBCC CHECKCATALOG,也不會驗證 Service Broker 資料。
  • 不支援 mastermsdb 資料庫上的 DBCC CHECKDB。
  • 在使用進階檔案共用部署的容錯移轉叢集執行個體上,不支援使用記憶體內部 OLTP 功能的資料庫。 如果您的業務需要記憶體內部 OLTP,請考慮改用 Azure 共用磁碟儲存空間直接存取部署您的 FCI。

有限的延伸模組支援

目前,已註冊 SQL IaaS 代理程式延伸模組之 Azure 虛擬機器上的 SQL Server 容錯移轉叢集執行個體只支援有限數目的功能。 請參閱權益表格

如果您的 SQL Server VM 已經向 SQL IaaS 代理程式延伸模組註冊,而且您已啟用任何需要代理程式的功能,則需要刪除對應 VM 的 SQL 虛擬機器資源以從延伸模組取消註冊,然後再次向 SQL IaaS 代理程式延伸模組註冊。 使用 Azure 入口網站刪除 SQL 虛擬機器資源時,請清除正確虛擬機器旁邊的核取方塊以避免刪除虛擬機器。