設定高可用性和災害復原

已完成

在 SQL Server 中設定災害復原和高可用性解決方案的主要部分,在 Azure 虛擬機器上執行的 SQL Server仍然相同。 高可用性解決方案設計用來確保提交的資料不會因故障而遺失、您的工作負載不會受到維護作業的影響,且資料庫不會成為軟體架構中的單一失敗點。

大部分 Azure SQL 服務層級提供一系列高可用性選項,從本機備援到區域備援模型都有。

接下來,我們將探索 Azure PaaS 供應項目災害復原和高可用性的特定解決方案。

連續備份

Azure SQL 資料庫可確保資料庫的一般和連續備份,然後複寫至讀取權限異地備援儲存體 (RA-GRS)。

每週完整備份、每隔 12 到 24 小時進行差異備份,而交易記錄備份每 5 到 10 分鐘都是自動化備份策略的一部分。 針對最多 10 年的擴充備份可用性,可以針對單一和集區資料庫設定長期保留 (LTR)。

長期保留 (LTR)

Azure 提供可設定超過一般限制的保留原則,這適用於需要長期保留的案例。 您可以設定最多 10 年的保留原則,且這個選項預設為停用。

此螢幕擷取畫面顯示如何從 Azure 入口網站設定長期保留屬性。

此圖顯示如何在 Azure 入口網站上設定長期保留原則。 選擇資料庫後,螢幕右側會出現一個面板,您可以在其中變更預設設定。

如需長期保留的詳細資訊,請參閱長期保留 - Azure SQL 資料庫和 Azure SQL 受控執行個體

異地復原

SQL Database和 SQL 受管理執行個體的備份預設為異地備援。 這可讓您輕鬆地將資料庫還原到不同的地理區域,這是較不嚴格的災害復原案例很有用的功能。

備份儲存體會與一般資料庫檔案儲存體分開計費。 不過,在佈建 SQL Database 時,會建立備份儲存體,其大小上限是針對資料庫選取的資料層大小上限,且無須額外付費。

異地還原作業的持續時間可能會受到數個基礎元件 (包括資料庫大小、還原作業所涉及的交易記錄數目,以及目標區域中正在處理的同時還原要求數量) 的影響。

還原時間點 (PITR)

您可以根據定義的保留期,將資料庫還原到特定時間點,但僅在還原相同伺服器中的資料庫時,才會支援 PITR。 您可以使用 Azure 入口網站、Azure PowerShell、Azure CLI 或 REST API 來還原 SQL Database。

作用中異地複寫

提高 Azure SQL Database 可用性的方法是使用主動式異地複寫。 作用中異地複寫會在另一個區域中建立次要資料庫複本,並以非同步的方式讓其維持在最新狀態。

此複本是可讀取的,類似於 SQL Server 中的 AlwaysOn 可用性群組。 在表面下方,Azure 會使用可用性群組來維護此功能,這就是某些術語類似的原因。

作用中異地複寫可讓客戶在重大災害期間,以程式設計方式或手動將主要資料庫容錯移轉至次要區域,以提供業務持續性。

注意

Azure SQL 受控執行個體不支援主動式異地複寫。 相反地,您必須使用自動容錯移轉群組,我們將在本單元稍後探討的主題。

圖表:Azure SQL Database 的作用中異地複寫。

涉及異地複寫關聯性的所有資料庫都必須具有相同的服務層級。 此外,為了防止因為大量寫入工作負載而造成複寫效能問題,建議您設定與主要複本相同的計算大小次要複本。

螢幕擷取畫面:Azure SQL Database 的複本頁面。

您可以手動設定 Azure SQL Database 的異常複寫,方法是在 [資料管理] 區段中選取 [複本],然後選取 [+ 建立複本],來存取資料庫的窗格。

螢幕擷取畫面:Azure 入口網站上的 [強制容錯移轉] 選項。

建立次要複本之後,您可以選擇手動起始容錯移轉。 在此程序中,角色會反轉 - 次要複本會假設主要複本的角色,而原始的主要複本會變成次要複本。

跨訂閱異地複寫

在某些情節下,您可能需要在與主要資料庫不同的訂用帳戶上設定次要複本。 這是跨訂用帳戶異地複寫的功能生效的地方。

注意

跨訂用帳戶異地複寫僅以程式設計方式提供。

若要深入了解設定跨訂用帳戶異地複寫所需的步驟,請參閱跨訂用帳戶異地複寫

自動容錯移轉群組

自動容錯移轉群組是一項高可用性功能,受 Azure SQL Database 和 Azure SQL 受控執行個體支援。 自動容錯移轉群組可讓您管理如何將資料庫複製到另一個區域,以及容錯移轉如何發生。 指派給自動容錯移轉群組的名稱在 *.database.windows.net 網域內必須是唯一的。

自動容錯移轉群組可以包含多個資料庫。 主要和次要資料庫大小都相同。

結構圖表:Azure SQL Database 和 Azure SQL 受控執行個體的自動容錯移轉群組。

自動容錯移轉群組提供類似於 AG 的功能,稱為接聽程式,可允許讀寫和唯讀活動。 接聽程式有兩種類型:一個用於讀寫,另一個用於唯讀流量。 DNS 會在容錯移轉的背景中更新,讓用戶端能夠指向抽象化的接聽程式名稱,而不需要知道任何其他事項。 包含讀寫副本的資料庫伺服器是主要伺服器,而從主要伺服器接收交易資料的伺服器是次要伺服器。

自動容錯移轉群組有兩個不同的原則。

原則類型 描述
自動 偵測到失敗時,系統預設會自動觸發容錯移轉。 不過,如有需要,您可以停用自動容錯移轉。
唯讀 在容錯移轉期間,引擎預設會停用唯讀接聽程式,以在次要複本關閉時維持新主要伺服器的效能。 不過,您可以變更此行為,以在容錯移轉之後允許這兩種類型的流量。

容錯移轉是可以手動起始的程序,即使已啟用自動容錯移轉也一般。 不過,容錯移轉類型可能會影響資料是否遺失。 例如,如果強制容錯移轉,且次要資料庫尚未與主要資料庫完全同步,可能會導致資料遺失。

GracePeriodWithDataLossHours 決定 Azure 在起始容錯移轉之前等候的持續時間,並將預設值設定為一小時。 如果您的復原點目標 (RPO) 嚴格,而且資料遺失不是選項,您可以設定此值更高。 雖然這表示 Azure 在起始容錯移轉之前會等候較長的時間,但可能會降低資料遺失,因為它提供更多時間讓次要資料庫與主要資料庫完全同步。

注意

次要資料庫會透過稱為植入的程序自動建立,視資料庫大小而定可能需要時間。 因此,請務必事先規劃,考慮網路速度等因素。

若要深入了解 Azure SQL 資料庫的高可用性和災害復原,請參閱 Azure SQL 資料庫高可用性和災害復原檢查清單