Azure 虛擬機器上 SQL Server 的商務持續性和 HADR

適用于:Azure VM 上的SQL Server

商務持續性表示在發生災害時繼續您的業務、規劃復原,以及確保您的資料具有高可用性。 Azure 虛擬機器上的 SQL Server 可協助降低高可用性和災難復原 (HADR) 資料庫解決方案的成本。

虛擬機器上支援大部分的 SQL Server HADR 解決方案,作為僅 Azure 以及混合式解決方案。 在僅限 Azure 解決方案中,整個 HADR 系統會在 Azure 中執行。 在混合式組態中,解決方案的一部分會在 Azure 中執行,而其他部分會在組織中的內部部署執行。 Azure 環境的彈性可讓您將解決方案部分或完全移動至 Azure,以滿足 SQL Server 資料庫系統的預算與 HADR 需求。

本文會比較和對照 Azure VM 上 SQL Server 所提供的商務持續性解決方案。

概觀

您可以決定是否要讓資料庫系統擁有服務等級協定 (SLA) 需要的 HADR 功能。 即使 Azure 提供高可用性機制 (例如雲端服務的服務修復,以及虛擬機器的失敗復原偵測),也無法保證您能夠符合 SLA。 雖然這些機制可協助保護虛擬機器的高可用性,但其並不會保護在 VM 內執行之 SQL Server 的可用性。

因此,即使 VM 保持連線且運作正常,SQL Server 執行個體仍可能會失敗。 此外,Azure 提供的高可用性機制甚至會允許因為事件 (例如,從軟體或硬體失敗復原,以及作業系統升級) 導致的 VM 停機。

Azure 中的異地備援儲存體 (GRS) 會以名為「異地複寫」的功能來實作。 GRS 可能不是您資料庫的適當災難復原解決方案。 由於異地複寫會以非同步方式傳送資料,因此最近的更新可能會在發生災害時遺失。 異地複寫支援一節中涵蓋了異地複寫限制的詳細資訊。

注意

現在使用 Azure Migrate 可將容錯移轉叢集執行個體可用性群組解決方案隨即轉換至 Azure VM 上的 SQL Server。

部署架構

Azure 支援下列商務持續性 SQL Server 技術:

您可以將這些技術合併在一起,以實作同時具有高可用性及災難復原功能的 SQL Server 解決方案。 根據您使用的技術而定,混合式部署可能會需要使用 Azure 虛擬網路的 VPN 通道。 下列各節將說明一些範例部署結構。

僅限 Azure:高可用性解決方案

您可以在含有 Always On 可用性群組的資料庫等級,具備適用於 SQL Server 的高可用性解決方案。 您也可以在含有 Always On 容錯移轉叢集執行個體的執行個體等級,建立高可用性解決方案。 如需額外的保護,您可以藉由在容錯移轉叢集執行個體上建立可用性群組,在這兩個等級上建立備援。

技術 範例結構
可用性群組 在相同區域的 Azure VM 中執行的可用性複本提供高可用性。 由於 Windows 容錯移轉叢集需要使用 Active Directory 網域,因此您需要設定網域控制站 VM。

如需更高的備援和可用性,您可以將 Azure VM 部署在不同的可用性區域中,如可用性群組概觀中所述。 此圖顯示由「主要複本」、「次要複本」和「檔案共用見證」組成的「WSFC 叢集」上方的「網域控制站」。
若要開始使用,請檢閱可用性群組教學課程
容錯移轉叢集執行個體 SQL Server VM 上支援容錯移轉叢集執行個體。 因為 FCI 功能需要共用儲存體,所以有五個解決方案可與 Azure VM 上的 SQL Server 搭配使用:

- 使用適用於 Windows Server 2019 的 Azure 共用磁碟。 共用受控磁碟是允許將受控磁碟同時連結至多個虛擬機器的 Azure 產品。 叢集中的 VM 可以根據使用 SCSI 持續保留 (SCSI PR) 的叢集應用程式所選擇的保留,來讀取或寫入您連接的磁碟。 SCSI PR 是一種業界標準儲存體解決方案,可供在內部部署的存放區域網路 (SAN) 上執行的應用程式使用。 在受控磁碟上啟用 SCSI PR 可讓您依情況將這些應用程式移轉至 Azure。

- 使用儲存空間直接存取 (S2D) 為 Windows Server 2016 和更新版本提供以軟體為基礎的虛擬 SAN。

- 使用 Windows Server 2012 和更新版本的進階檔案共用。 進階檔案共用支援 SSD、具有持續低延遲,而且完全支援與 FCI 搭配使用。

- 使用合作夥伴解決方案所支援的儲存體進行叢集化。 如需使用 SIOS DataKeeper 的特定範例,請參閱容錯移轉叢集和 SIOS DataKeeper 部落格一文。

- 透過 Azure ExpressRoute 使用遠端 iSCSI 目標的共用區塊儲存體。 例如,NetApp 私用儲存體 (NPS) 會透過 ExpressRoute 使用 Equinix 將 iSCSI 目標公開至 Azure VM。

對於 Microsoft 合作夥伴所提供的共用儲存體和資料複寫解決方案,如有關於存取容錯移轉資料的任何問題,請與廠商連絡。

若要開始使用,請確保您的 VM 已做好 FCI 的準備作業

僅限 Azure:災害復原解決方案

您可以使用可用性群組或資料庫鏡像,為 Azure 中的 SQL Server 資料庫提供災害復原解決方案,或者使用儲存體 Blob 進行備份和還原。

技術 範例結構
可用性群組 為了進行嚴重損壞修復,可用性複本會在 Azure VM 的多個資料中心執行。 此跨區域解決方案可協助防止整個網站中斷。
此圖顯示兩個區域,其中具有「非同步認可」所連接的「主要複本」和「次要複本」。
在區域內,所有複本都應位於相同的雲端服務與相同的虛擬網路中。 因為每個區域都會有個別的虛擬網路,所以這些解決方案需要網路對網路連線。 如需詳細資訊,請參閱使用 Azure 入口網站設定網路對網路連接。 如需詳細指示,請參閱在不同 Azure 區域中設定 SQL Server Always On 可用性群組
資料庫鏡像 為了進行嚴重損壞修復,主體、鏡像和伺服器會在不同的資料中心內執行。 您必須使用伺服器憑證來進行部署。 在 Azure VM 上,SQL Server 2008 和 SQL Server 2008 R2 均不支援 SQL Server 資料庫鏡像。
此圖顯示一個區域中的「主體」,連線到另一個區域中具有「高效能」的「鏡像」。
使用與 Azure Blob 儲存體進行備份及還原 生產資料庫直接備份到不同資料中心的 Blob 儲存體以進行災害復原。
此圖顯示一個區域中的「資料庫」,備份至另一個區域中的「Blob 儲存體」。
如需詳細資訊,請參閱 Azure VM 上 SQL Server 的備份與還原
使用 Azure Site Recovery 複寫 SQL Server 並將其容錯移轉至 Azure 某個 Azure 資料中心的生產 SQL Server 執行個體直接複寫至不同 Azure 資料中心的 Azure 儲存體進行災害復原。
此圖顯示一個 Azure 資料中心使用「ASR 複寫」進行另一個資料中心災害復原的「資料庫」。
如需詳細資訊,請參閱使用 SQL Server 嚴重損壞修復和 Azure Site Recovery 保護 SQL Server

混合式 IT:災害復原解決方案

您可以使用可用性群組、資料庫鏡像及記錄傳送,為混合式 IT 環境中的 SQL Server 資料庫提供災害復原解決方案,以及使用 Azure Blob 儲存體進行備份和還原。

技術 範例架構
可用性群組 為了進行跨網站的嚴重損壞修復,部分可用性複本會在 Azure VM 中執行,而其他複本會在內部部署執行。 生產網站可以是內部部署或是在 Azure 資料中心。
可用性群組
由於所有可用性複本都必須位於相同的容錯移轉叢集中,因此該叢集必須同時跨這兩個網路 (多重子網路的容錯移轉叢集)。 此組態需要 Azure 與內部部署網路之間的 VPN 連線。

若要成功對資料庫進行災害復原,您也應該在災害復原網站安裝複本網域控制站。 若要開始使用,請檢閱可用性群組教學課程
資料庫鏡像 為了使用伺服器憑證進行跨網站災難復原,一個合作夥伴會在 Azure VM 中執行,而其他合作夥伴會在內部部署中執行。 合作夥伴不需要位於相同的 Active Directory 網域,且不需要 VPN 連線。
資料庫鏡像
另一個資料庫鏡像案例,則是為了進行跨網站災害復原復,讓一個合作夥伴在 Azure VM 中執行,並讓其他合作夥伴在相同 Active Directory 網域的內部部署中執行。 需要 Azure 虛擬網路與內部部署之間的 VPN 連線

若要成功對資料庫進行災害復原,您也應該在災害復原網站安裝複本網域控制站。 在 Azure VM 上,SQL Server 2008 和 SQL Server 2008 R2 均不支援 SQL Server 資料庫鏡像。
記錄傳送 為了進行跨網站嚴重損壞修復,一個合作夥伴會在 Azure VM 中執行,而其他合作夥伴會在內部部署中執行。 記錄傳送依賴 Windows 檔案共用,因此需要 Azure 虛擬網路和內部部署網路之間的 VPN 連線。
記錄傳送
若要成功對資料庫進行災害復原,您也應該在災害復原網站安裝複本網域控制站。
使用與 Azure Blob 儲存體進行備份及還原 內部部署生產資料庫直接備份到 Azure Blob 儲存體以進行災害復原。
備份與還原
如需詳細資訊,請參閱 Azure 虛擬機器中 SQL Server 的備份與還原
使用 Azure Site Recovery 複寫 SQL Server 並將其容錯移轉至 Azure 內部部署生產 SQL Server 執行個體直接複寫至 Azure 儲存體進行災害復原。
使用 Azure Site Recovery複寫
如需詳細資訊,請參閱使用 SQL Server 嚴重損壞修復和 Azure Site Recovery 保護 SQL Server

Azure 中的免費 DR 複本

如果您有軟體保證,則可以使用 SQL Server 來實作混合式災害復原 (DR) 計畫,而不會因為被動災害復原執行個體而產生額外的授權成本。

例如,當所有三個複本都裝載在 Azure 中時,您可以有兩個免費的被動次要資料庫:

Azure 中所有專案時,有兩個免費的被動

或者,您可以設定混合式容錯移轉環境,其中包含授權的主要內部部署、HA 的免費被動、DR 內部部署的免費被動,以及 Azure 中 DR 的免費被動:

當環境與一個主要內部部署複本混合時,有三個免費的被動

如需詳細資訊,請參閱產品授權條款

若要實現此權益,請移至 SQL Server 的虛擬機器資源。 選取 [設定] 下的 [設定],然後選擇 [SQL Server 授權] 下的 [災害復原] 選項。 選取核取方塊以確認此 SQL Server VM 將用來作為被動複本,然後選取 [套用] 以儲存設定。

在 Azure 中設定災害復原複本

Azure 中 SQL Server HADR 的重要考量

與內部部署、非虛擬化的 IT 基礎結構相較之下,Azure VM、儲存體和網路各有不同的作業特性。 若要在 Azure 中成功實作 HADR SQL Server 解決方案,您必須了解這些差異,並配合這些差異設計您的解決方案。

可用性設定組中的高可用性節點

Azure 中的可用性設定組可讓您將高可用性節點分別放入個別的容錯網域和更新網域。 Azure 平台會為可用性設定組中的每部虛擬機器指派更新網域和容錯網域。 資料中心內的這項設定可以確保在規劃或未規劃的維護事件發生期間,至少有一部虛擬機器可以使用,且符合 99.95% 的 Azure SLA。

若要設定高可用性安裝程式,請將所有參與的 SQL Server 虛擬機器放在相同的可用性設定組中,以避免在維護事件期間遺失應用程式或資料。 只有相同雲端服務內的節點可以參與相同的可用性設定組。 如需詳細資訊,請參閱管理虛擬機器的可用性

可用性區域中的高可用性節點

可用性區域是 Azure 地區內獨特的實體位置。 每個區域皆由一或多個配備獨立電力、冷卻系統及網路的資料中心所組成。 區域內可用性區域的實體分隔可保護應用程式和資料不受資料中心失敗的影響,其方法是確保至少有一部虛擬機器可供使用且符合 99.99% 的 Azure SLA。

若要設定高可用性,請將參與的 SQL Server 虛擬機器分散到區域內的可用性區域。 可用性區域之間的網路對網路傳輸將會產生額外費用。 如需詳細資訊,請參閱可用性區域

混合式 IT 中的網路延遲

假設內部部署網路與 Azure 之間可能會有一段時間發生嚴重網路延遲,則應部署 HADR 解決方案。 當您將複本部署至 Azure 時,應該使用非同步認可,而不是同步處理模式的同步認可。 當您將資料庫鏡像伺服器同時部署至內部部署與 Azure 時,請使用高效能模式,而不是高安全性模式。

請參閱適用於叢集和 HADR 設定的 HADR 設定最佳做法,可協助您容納雲端環境。

異地複寫支援

Azure 磁碟中的異地複寫不支援將相同資料庫的資料檔與記錄檔儲存在不同的磁碟上。 GRS 會在每個磁碟上進行獨立與非同步變更複寫。 此機制能保證異地複寫複本之單一磁碟內的寫入順序,但無法為多個磁碟的跨異地複寫複本保證。 如果您設定資料庫,將其資料檔與記錄檔儲存在不同磁碟中,災難復原後復原的磁碟可能會包含更新的資料檔 (而非記錄檔) 複本,該情形會中斷 SQL Server 與 ACID 屬性 (不可部分完成、一致性、隔離和持久性) 交易的預寫記錄檔。

如果您沒有可停用儲存體帳戶中異地複寫的選項,則應該將資料庫的所有資料和記錄檔保留在相同磁碟上。 如果因為資料庫大小的緣故,而必須使用一個以上的磁碟,則請部署以上列出的其中一個災害復原解決方案,以確保能進行資料備援。

後續步驟

決定可用性群組容錯移轉叢集執行個體是否為您企業的最佳商務持續性解決方案。 然後,請檢閱為您的環境設定高可用性和災害復原的最佳做法