設定 SQL Server 的災害復原

本文說明如何協助保護應用程式的 SQL Server 後端。 您可以使用 SQL Server 商務持續性和災害復原 (BCDR) 技術與 Azure Site Recovery 的組合達成此目標。

開始之前,請確定您瞭解 SQL Server 的災害復原功能。 這些功能包括:

  • 容錯移轉叢集
  • Always On 可用性群組
  • 資料庫鏡像
  • 記錄傳送
  • 使用中的地理複寫
  • 自動容錯移轉群組

結合 BCDR 技術與 Site Recovery

您選擇用來復原 SQL Server 執行個體的 BCDR 技術,應該根據您的復原時間目標 (RTO) 和復原點目標 (RPO) 需求,如下表所述。 結合 Site Recovery 與您所選技術的容錯移轉作業,以協調整個應用程式的復原。

部署類型 BCDR 技術 SQL Server 的預期 RTO SQL Server 的預期 RPO
Azure VM 上的 SQL Server 基礎結構即服務 (IaaS) 虛擬機器 (VM) 或內部部署。 Always On 可用性群組 使次要複本成為主要複本所花費的時間。 由於複寫至次要複本是非同步,因此會遺失一些資料。
Azure VM 上的 SQL Server IaaS VM 或內部部署。 容錯移轉叢集 (Always On FCI) 在節點之間進行容錯移轉所花費的時間。 因為 Always On FCI 使用共用存放裝置,所以在容錯移轉時,可以使用儲存體執行個體的相同檢視。
Azure VM 上的 SQL Server IaaS VM 或內部部署。 資料庫鏡像 (高效能模式) 強制服務所花費的時間,使用鏡像伺服器做為暖待命伺服器。 複寫不是同步進行。 鏡像資料庫可能會稍微落後主體資料庫。 延遲通常很小。 但是如果主體或鏡像伺服器的系統負載過重,則可能會變得巨大。

記錄傳送可以作為資料庫鏡像的補充。 這是非同步資料庫鏡像的理想替代方案。
SQL 作為 Azure 上的平台即服務 (PaaS)。

此部署類型包含單一資料庫和彈性集區。
使用中的地理複寫 觸發容錯移轉之後的 30 秒。

容錯移轉至其中一個次要資料庫啟動時,所有其他次要複本會自動連結至新的主要複本。
五秒的 RPO。

主動式異地複寫使用 SQL Server 的 Always On 技術。 其會使用快照集隔離,以非同步方式將主資料庫上認可的交易複寫到次要資料庫。

保證次要資料永遠不會有部分交易。
SQL 作為在 Azure 上使用主動式異地複寫的 PaaS。

此部署類型包含受控執行個體、彈性集區和單一資料庫。
自動容錯移轉群組 一小時的 RTO。 五秒的 RPO。

自動容錯移轉群組會在主動式異地複寫上提供群組語義。 但使用相同的非同步複寫機制。
Azure VM 上的 SQL Server IaaS VM 或內部部署。 使用 Azure Site Recovery 進行複寫 一般來說,RTO 會少於 15 分鐘。 若要深入瞭解,請閱讀 Site Recovery 所提供的 RTO SLA 應用程式一致性為一小時,而當機一致性為五分鐘。 如果您希望尋找較低的 RPO,請使用其他 BCDR 技術。

注意

當您使用 Site Recovery 協助保護 SQL 工作負載時,有幾個重要的考量:

  • Site Recovery 是應用程式中立的。 Site Recovery 可協助保護任何部署在支援作業系統上的 SQL Server 版本。 若要深入瞭解,請參閱複寫機器的復原支援矩陣
  • 您可以選擇使用 Site Recovery 在 Azure、Hyper-V、VMware 或實體基礎結構上進行任何部署。 請遵循如何使用 Site Recovery 協助保護 SQL Server 叢集一文結尾的指導方針。
  • 確定電腦上觀察到的資料變更率是在 Site Recovery 限制內。 變更率是以每秒的寫入位元組數來測量。 對於執行 Windows 的電腦,您可以選取工作管理員中的 [效能] 索引標籤,以查看此變更率。 觀察每個磁碟的寫入速度。
  • Site Recovery 支援儲存空間直接存取上的容錯移轉叢集實例複寫。 若要深入瞭解,請參閱如何啟用儲存空間直接存取複寫

當您將 SQL 工作負載遷移至 Azure 時,建議您在 Azure 虛擬機器上套用 SQL Server 的效能指導方針

應用程式的災害復原

Site Recovery 透過復原計畫的協助,來協調測試容錯移轉和整個應用程式的容錯移轉。

有一些必要條件可確保您的復原方案會根據您的需求完全自訂。 任何 SQL Server 部署通常都需要 Active Directory 部署。 也需要您應用程式層的連線能力。

步驟 1:設定 Active Directory

在次要復原網站上設定 Active Directory,讓 SQL Server 正常運作。

  • 小型企業:您有少數的應用程式,以及內部部署網站的單一網域控制站。 如果您想要容錯移轉整個網站,請使用 Site Recovery 複寫。 此服務會將網域控制站複寫至次要資料中心或 Azure。
  • 中型至大型企業:您可能需要設定額外的網域控制站。
    • 如果您有大量應用程式、Active Directory 樹系,並且想要依應用程式或工作負載進行容錯移轉,請在次要資料中心或 Azure 中設定另一個網域控制站。
    • 如果您使用 Always On 可用性群組復原至遠端網站,請在次要網站或 Azure 中設定另一個網域控制站。 此網域控制站用於已復原的 SQL Server 執行個體。

本文中的指示假設在次要位置中有網域控制站。 若要深入瞭解,請參閱使用 Site Recovery 協助保護 Active Directory 的程序。

步驟 2:確定與其他層的連線能力

在目標 Azure 區域中執行資料庫層之後,請確定您已與應用程式和 Web 層連接。 事先採取必要的步驟,以驗證並測試容錯移轉的連線能力。

若要瞭解如何設計應用程式以進行連線考慮,請參閱下列範例:

步驟 3:與 Always On、主動式異地複寫和自動容錯移轉群組交互操作

BCDR 技術 Always On、主動式異地複寫和自動容錯移轉群組都具有在目標 Azure 區域中執行 SQL Server 的次要複本。 應用程式容錯移轉的第一個步驟,是將此複本指定為主要複本。 此步驟假設您在次要區域中已經有網域控制站。 如果您選擇進行自動容錯移轉,則可能不需要此步驟。 只有在資料庫容錯移轉完成之後,才會容錯移轉您的 Web 和應用層。

注意

如果您已使用 Site Recovery 協助保護 SQL 電腦,則只需要建立這些電腦的復原群組,並在復原方案中新增其容錯移轉。

使用應用程式和 Web 層虛擬機器建立復原方案。 下列步驟顯示如何加入資料庫層的容錯移轉:

  1. 匯入將 Resource Manager 虛擬機器傳統虛擬機器兩者中 SQL 可用性群組容錯移轉的指令碼。 將指令碼匯入您的 Azure 自動化帳戶。

    部署至 Azure 標誌

  2. 新增 ASR-SQL-FailoverAG 指令碼作為復原方案第一個群組的前置動作。

  3. 依照指令碼中的指示來建立自動化變數。 此變數提供可用性群組的名稱。

步驟 4:執行測試容錯移轉

某些 BCDR 技術 (例如 SQL) Always On 原本不支援測試容錯移轉。 只有在使用此類技術時,才建議使用下列方法。

  1. 在 Azure 中裝載可用性群組複本的 VM 上,設定 Azure 備份

  2. 觸發復原計劃的測試容錯移轉之前,從上一步所使用的備份來復原 VM。

    顯示從Azure 備份還原組態視窗的螢幕擷取畫面

  3. 在已從備份還原的 VM 中強制執行仲裁

  4. 將接聽程式 IP 位址更新為測試容錯移轉網路中可用的位址。

    規則視窗和 IP 位址屬性對話方塊的螢幕擷取畫面

  5. 使接聽程式連線。

    顯示伺服器名稱和狀態Content_AG標示視窗的螢幕擷取畫面

  6. 確定容錯移轉網路中的負載平衡器有一個 IP 位址,從對應至每個可用性群組接聽程式的前端 IP 位址集區,並在後端集區中有 SQL Server VM。

    標題為 「SQL-AlwaysOn-LB - 前端 IP 集區的視窗螢幕擷取畫面

    標題為 「SQL-AlwaysOn-LB - 後端 IP 集區的視窗螢幕擷取畫面

  7. 在稍後的復原群組中,針對此復原方案新增應用層的容錯移轉,然後再加入您的 Web 層。

  8. 進行復原計畫的測試容錯移轉,以測試應用程式的端對端容錯移轉。

進行容錯移轉的步驟

在步驟 3 中新增指令碼並在步驟 4 中進行驗證之後,您便可執行步驟 3 中所建立復原方案的容錯移轉。

在測試容錯移轉和容錯移轉復原計畫中,應用程式和 Web 層的容錯移轉步驟應該相同。

如何協助保護 SQL Server 叢集

對於執行 SQL Server Standard Edition 或 SQL Server 2008 R2 的叢集,建議您使用 Site Recovery 複寫協助保護 SQL Server。

Azure 到 Azure 和內部部署至 Azure

複寫至 Azure 區域時,Site Recovery 不提供來賓叢集支援。 SQL Server Standard Edition 也不會提供低成本的災害復原解決方案。 在此案例中,建議您將 SQL Server 叢集保護至主要位置中的獨立 SQL Server 執行個體,並在次要資料庫中加以復原。

  1. 在主要 Azure 區域或內部部署站台上設定一個額外的獨立 SQL Server 執行個體。

  2. 設定此執行個體做為您協助要保護的資料庫鏡像。 在高安全性模式下設定鏡像。

  3. AzureHyper-VVMware VM 和實體伺服器的主要網站上設定 Site Recovery。

  4. 使用 Site Recovery 複寫將新的 SQL Server 執行個體複寫至次要站台。 因為這是高安全性鏡像副本,因此會與主要叢集同步處理,但是會使用 Site Recovery 複寫進行複寫。

    標準叢集的影像,顯示主要月臺、Site Recovery和 Azure 之間的關聯性和流程

容錯回復考量

針對 SQL Server Standard 叢集,在未規劃的容錯移轉之後進行容錯回復需要 SQL Server 備份和還原。 這項作業是透過重新建立鏡像,從鏡像執行個體至原始叢集進行。

常見問題集

使用 Site Recovery 時,SQL Server 如何獲得授權?

SQL Server 的 Site Recovery 複寫會在軟體保證災害復原權益下討論。 此涵蓋範圍適用於所有 Site Recovery 案例:內部部署至 Azure 的災害復原和跨區域 Azure IaaS 災害復原。 如需詳細資訊,請參閱 Azure Site Recovery 定價

Site Recovery 支援我的 SQL Server 版本嗎?

Site Recovery 是應用程式中立的。 Site Recovery 可協助保護任何部署在支援作業系統上的 SQL Server 版本。 若要深入瞭解,請參閱複寫機器的復原支援矩陣

下一步