說明高可用性和災害復原選項

已完成

除了內建的高可用性之外,Azure 平台還提供兩個選項,可為 VM 和某些 PaaS 工作負載提供更高的可用性層級。 可用性區域和可用性設定組會保護您的工作負載,避免發生預定的維修活動和可能的硬體失敗。

高可用性選項

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

可用性區域

可用性區域是區域內唯一的實體位置。 每個區域皆由一或多個配備獨立電源、冷卻系統及網路的資料中心組成。 在支援可用性區域的 Azure 區域內,您可以指定要在 VM 建立期間使用可用區域時,虛擬機器所在的區域。 每個支援的 Azure 區域都有三個可用性區域。 當您將多個 VM 部署到不同的區域時,可用性區域會為資料中心失敗提供高可用性。 此外,可用性區域也提供一種方法,讓 Microsoft 在每個區域中執行維護 (使用稱為更新網域的群組),方法是在任何指定時間只更新一個區域。 您可以將虛擬機器生態系統分散到區域中的三個區域。 利用可用性區域搭配您的 Azure 虛擬機器,可將您的執行時間提高到四個九 (99.99%),這相當於每年最多 52.60 分鐘的停機時間。 您可以在 docs.microsoft.com 中識別哪些 Azure 區域支援可用性區域。 如果您的區域中有可用的可用性區域,而您的應用程式可支援最小的跨區域延遲,則可用性區域會為您的應用程式提供最高等級的可用性。

Azure 可用性區域

以上的影像中,您可以看到可用性區域設定。 當您將 VM 部署到具有可用性區域的區域時,將會看到可在區域 1、2 和 3 中部署的選項。 這些區域是實體資料中心的邏輯標記法,這表示在一個訂用帳戶中的區域 1 部署,並不代表區域 1 在另一個訂用帳戶中代表相同的資料中心。

可用性設定組 (Availability Sets)

可用性設定組類似於可用性區域,但不會將工作負載分散至區域中的資料中心,而是將工作負載分散到資料中心內的伺服器和機架。 因為 Azure 中幾乎所有的工作負載都是虛擬的,所以您可以使用可用性設定組,以保證兩個包含 Always On 可用性群組成員的 VM 不會在相同的實體主機上執行。 可用性設定組可提供高達 99.95% 的可用性,且應讓在可用性區域無法在區域中使用時使用,否則應用程式無法容忍區域內的延遲。

Always On 可用性群組 (AG)

Always On 可用性群組可以在兩個或多個在 Azure 虛擬機器上執行的 SQL Server 執行個體之間實作 (最多九個),或跨內部部署資料中心和 Azure 上實作。 在可用性群組中,資料庫異動會認可至主要複本,然後異動會以同步或非同步方式傳送至所有次要複本。 伺服器之間的實體距離 (也就是是否位於相同的 Azure 區域) 會指定您應該選擇的可用性模式。 一般而言,如果工作負載需要最低可能的延遲,或次要複本分散在不同的位置,則建議使用非同步可用性模式。 如果複本位於相同的 Azure 區域內,而且應用程式可以承受某種程度的延遲,則應該考慮同步認可模式。 同步模式有助於確保每個異動都會認可至一或多個次要資料庫,然後再允許應用程式繼續進行。 Always On 可用性群組同時提供高可用性和災害復原,因為單一可用性群組可同時支援同步和非同步可用性模式。 可用性群組的容錯移轉單位是一組資料庫,而不是整個執行個體。

Always On 可用性群組也可用於災害復原目的。 您可以跨 Azure 區域執行最多 9 個資料庫的複本,並使用分散式可用性群組更進一步延展此架構。 可用性群組可確保您資料庫的可用複本位於主要區域以外的其他位置。 如此一來,就可以協助確保您的資料生態系統受到保護,以防範天然災難以及某些人為疏失造成的影響。

Always On 可用性群組設定

上圖顯示在 Windows Server 容錯移轉叢集上執行之 Always On 可用性群組的邏輯圖表。 有一個主要和四個次要複本。 在此案例中,所有五個複本都可能是同步的,或是同步和非同步複本的組合。 請注意,容錯移轉的單位是資料庫的群組,而非執行個體。 當容錯移轉叢集執行個體在執行個體層級提供 HA 時,不會提供災害復原。

SQL Server 容錯移轉叢集執行個體

如果需要保護整個執行個體,您可以使用 SQL Server 容錯移轉叢集執行個體 (FCI),以在單一區域中提供整個執行個體的高可用性。 FCI 不會在未與可用性群組或記錄傳送之類的另一個功能合併的情況下,提供災害復原。 FCI 也需要可在 Azure 上使用共用檔案儲存體,或在 Windows Server 上使用儲存空間直接存取提供的共用儲存體。

針對 Azure 工作負載,可用性群組是較新部署的慣用解決方案,因為需要 FCI 的共用儲存體會增加部署的複雜度。 不過,若要從內部部署解決方案移轉,應用程式支援可能需要 FCI。

災害復原選項

雖然 Azure 平台預設 99.9% 的時間可正常運作,但仍可能發生災害,並影響應用程式的執行時間。 當您執行任何類型的遷移時,請務必備妥適當的災害復原計畫。 Azure 提供數種方法,以確保在發生災害時,可保護虛擬機器上的 SQL Server。 有兩種方式可以保護。 首先是用於備份和 Azure Site Recovery 的 Azure 平台選項 (例如異地複寫儲存體),這是適用於所有工作負載的全方位災害復原解決方案。 其次,有 SQL Server 的特定供應項目,例如可用性群組和備份。

原生 SQL Server 備份

備份會視為任何資料庫管理員的存留期,而且在使用雲端解決方案時並不會有任何差異。 利用 Azure 虛擬機器上的 SQL Server,您可以更精確地控制備份發生的時間和儲存位置。 您可以使用 SQL 代理程式工作,直接備份到連結至 Azure Blob 儲存體的 URL。 Azure 提供選項,可讓您選擇使用異地備援儲存體 (GRS) 或讀取權限異地備援儲存體 (RA-GRS),以確保您的備份檔案會安全地儲存在該地理環境中。

此外,身為 Azure SQL VM 服務提供者的一部分,您可以讓備份自動由平台管理。

適用於 SQL Server 的 Azure 備份

Azure 備份的解決方案需要在虛擬機器上安裝代理程式。 然後,代理程式會與管理 SQL Server 資料庫自動備份的 Azure 服務進行通訊。 Azure 備份也會提供中央位置,讓您用來管理和監視備份,以確保符合任何指定的 RPO/RTO 計量。

SQL Server 架構的 Azure 備份

如上所示,Azure 備份解決方案是全方位的企業備份解決方案,可提供長期資料保留、自動化管理和額外的資料保護。 此選項的成本不只是執行您自己的備份,或使用 Azure 資源提供者進行 SQL Server,但會提供更完整的備份功能集。

Azure Site Recovery

Azure Site Recovery 是低成本的解決方案,會執行 Azure 虛擬機器的區塊層級複寫。 這種服務提供各種選項,包括測試及驗證災害復原策略的能力。 此解決方案最適用於無狀態環境 (例如 Web 伺服器) 與交易資料庫虛擬機器的 Web 伺服器。

Azure Site Recovery 支援搭配 SQL Server 使用,但請記住,您必須設定較高的復原點,這表示可能會遺失資料。 在此情況下,您的 RTO 基本上是您的 RPO。

Azure Site Recovery 架構

  1. 使用 Azure Site Recovery 註冊 VM
  2. 資料將持續複寫至快取
  3. 快取將複寫至目標環境帳戶
  4. 在容錯移轉期間,虛擬機器將新增至目標環境