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

適用于:Azure VM 上的SQL Server

提示

藉由在相同 Azure 虛擬網路內的多重子網路中建立 SQL Server VM,您的容錯移轉叢集執行個體將不再需要 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 位址:

    提供您先前指定為容錯移轉叢集實例網路名稱 IP 位址之第一個SQL Server 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 位址

    輸入您先前指定為容錯移轉叢集實例網路名稱 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 VM,請在輕量管理模式中向 SQL IaaS Agent 延伸模組註冊,目前只有 Azure VM 上的 FCI 和 SQL Server 支援的唯一模式。

使用 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 'Lightweight' SQL IaaS agent
New-AzSqlVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName -Location $vm.Location `
   -LicenseType ???? -SqlManagementType LightWeight  

設定連線能力

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

限制

  • Windows Server 2016 和較舊版本不支援 Microsoft 分散式交易協調器 (MSDTC)。
  • 使用進階檔案共用的容錯移轉叢集不支援 Filestream。 若要使用 Filestream,請改用儲存空間直接存取Azure 共用磁碟來部署叢集。
  • 僅支援在輕量管理模式中向 SQL IaaS 代理程式擴充功能註冊。
  • 目前不支援將資料庫快照集用於 Azure 檔案儲存體,因為有疏鬆檔案限制
  • 由於不支援資料庫快照集,使用者資料庫的 CHECKDB 會回復為 CHECKDB WITH TABLOCK。 TABLOCK 會限制執行的檢查 - 不會對資料庫執行 DBCC CHECKCATALOG,也不會驗證 Service Broker 資料。
  • 不支援 MASTER 和 MSDB 資料庫上的 CHECKDB。
  • 在使用進階檔案共用部署的容錯移轉叢集執行個體上,不支援使用記憶體內部 OLTP 功能的資料庫。 如果您的業務需要記憶體內部 OLTP,請考慮改用 Azure 共用磁碟儲存空間直接存取部署您的 FCI。

後續步驟

如果進階共用磁碟不是您適用的 FCI 儲存體解決方案,請考慮改用 Azure 共用磁碟儲存空間直接存取來建立您的 FCI。

若要深入了解,請參閱: