恢復 Aurora 資料庫叢集 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

恢復 Aurora 資料庫叢集

使用 Amazon Aurora 與我的SQL相容版本,您可以將資料庫叢集回溯至特定時間,而無需從備份還原資料。

恢復概觀

恢復會將資料庫叢集「倒轉」至您指定的時間。恢復不是備份資料庫叢集的替代方式,因此您可以將它還原至某個時間點。不過,相較於傳統的備份和還原,恢復提供下列優點:

  • 您可以輕鬆復原錯誤。如果您錯誤地執行了破壞性的動作(例如DELETE沒有WHERE子句),則可以將數據庫集群回溯到破壞性動作之前的一段時間,而最小的服務中斷。

  • 您可以快速恢復資料庫叢集。將資料庫叢集還原到某個時間點會啟動新的資料庫叢集,並將它從備份資料或資料庫叢集快照還原,這可能需要數小時的時間。恢復資料庫叢集不需要新的資料庫叢集,並且倒轉資料庫叢集只需要幾分鐘。

  • 您可以瀏覽稍早的資料變更。您可以重複地往返恢復時間點中的資料庫叢集,以幫助判定何時發生了資料變更。例如,您可以將資料庫叢集往前恢復三小時,然後再恢復至該時間點的一小時後。在此情況下,恢復時間為原始時間前的兩小時。

注意

如需將資料庫叢集還原至某個時間點的詳細資訊,請參閱 備份與還原 Aurora 資料庫叢集的概觀

恢復時段

使用恢復時,會有目標恢復時段和實際恢復時段:

  • 目標恢復時段為您希望資料庫叢集能夠恢復的時間量。啟用恢復時,您會指定目標恢復時段。例如,如果您希望能夠恢復一天的資料庫叢集,可以指定 24 小時的目標恢復時段。

  • 實際恢復時段為您的資料庫叢集可以恢復的實際時間量,其可能小於目標恢復時段。實際恢復時段會基於您的工作負載和可用於存放資料庫變更相關資訊的儲存體 (稱為變更記錄)。

當您在啟用恢復功能的情況下更新 Aurora 資料庫叢集時,即會產生變更記錄。Aurora 會保留目標恢復視窗的變更記錄,而且您需要按小時付費才能儲存它們。您的資料庫叢集上的目標恢復時段和工作負載都會決定您存放的變更記錄數量。工作負載為在指定時間中您對資料庫叢集的變更量。如果工作負載繁重,即您在恢復時段時存放的變更記錄量會比工作負載較輕時所存放的變更記錄量還多。

您可以將目標恢復時段視為您希望資料庫叢集能夠恢復的時間上限目標。在多數情況中,您可以恢復您指定的時間上限。不過,在部分情況中,資料庫叢集無法儲存足夠變更記錄來恢復時間上限,因此您的實際恢復時段會小於您的目標。一般來說,當資料庫叢集上的工作負載極為繁重時,實際恢復時段會小於目標。實際恢復時段小於目標時,我們會傳送通知給您。

對資料庫叢集啟用恢復,而您刪除儲存在資料庫叢集中的資料表時,Aurora 會將該資料表保留在恢復變更記錄中。它會這麼做,使得您可以還原到刪除資料表之前的時間。如果在您的恢復時段中沒有足夠空間可存放該資料表,則最終可能會從恢復變更記錄中移除該資料表。

恢復時間

Aurora 一律會恢復到對資料庫叢集一致的時間。這麼做可將恢復完成時交易未遞交的可能性降到最低。指定恢復的時間時,Aurora 會自動選擇最接近的可能一致時間。此方法表示已完成的回溯可能不完全符合您指定的時間,但您可以使用 describe-db-cluster-backtracks AWS CLI指令。如需詳細資訊,請參閱擷取現有恢復

恢復限制

下列限制適用恢復:

  • 您僅在透過將恢復功能啟用時所建立的資料庫叢集上才可使用恢復。您無法修改資料庫叢集以啟用「回溯」功能。您可以在建立新資料庫叢集或還原資料庫叢集的快照時啟用恢復功能。

  • 恢復時段的限制為 72 小時。

  • 恢復會影響整個資料庫叢集。例如,您不可以選擇性地恢復單一資料表或單一資料更新。

  • 您無法從啟用回溯的叢集建立跨區域僅供讀取複本,但仍可在叢集上啟用二進位記錄 (binlog) 複寫。如果您嘗試回溯已啟用二進位記錄的資料庫叢集,除非您選擇強制回溯,否則通常會發生錯誤。任何嘗試強制回溯的嘗試都會中斷下游僅供讀取複本,並干擾藍/綠部署等其他作業。

  • 您不可以將資料庫複製恢復到建立資料庫複製之前的時間。不過,您可以使用原始資料庫來恢復到建立複製之前的時間。如需資料庫複製的詳細資訊,請參閱 複製 Amazon Aurora 資料庫叢集的一個磁碟區

  • 恢復會造成短暫的資料庫執行個體干擾。您必須在開始恢復操作之前停止或暫停應用程式,以確保沒有新的讀取或寫入請求。在恢復操作期間,Aurora 會暫停資料庫、關閉任何開啟中連線,並捨棄任何未遞交的讀取和寫入。然後會等候恢復操作完成。

  • 您無法還原已啟用回溯之叢集的跨區域快照 AWS 不支援回溯的區域。

  • 如果您對啟用回溯的叢集從 Aurora My SQL 版本 2 執行就地升級至第 3 版,則無法回溯至升級發生之前的某個時間點。

區域和版本可用性

回溯不適用於 Aurora 波斯特雷。SQL

以下是使用 Aurora My SQL 進行回溯的支援引擎和區域可用性。

區域 Aurora 我的SQL版本 3 Aurora 我的SQL版本 2
美國東部 (維吉尼亞北部) 所有版本 所有版本
美國東部 (俄亥俄) 所有版本 所有版本
美國西部 (加利佛尼亞北部) 所有版本 所有版本
美國西部 (奧勒岡) 所有版本 所有版本
非洲 (開普敦)
Asia Pacific (Hong Kong)
亞太區域 (雅加達)
亞太區域 (馬來西亞)
亞太區域 (墨爾本)
亞太區域 (孟買) 所有版本 所有版本
亞太區域 (大阪) 所有版本 2.07.3 版及更新版本
亞太區域 (首爾) 所有版本 所有版本
亞太區域 (新加坡) 所有版本 所有版本
亞太區域 (悉尼) 所有版本 所有版本
亞太區域 (東京) 所有版本 所有版本
加拿大 (中部) 所有版本 所有版本
加拿大西部 (卡加利)
中國 (北京)
中國 (寧夏)
歐洲 (法蘭克福) 所有版本 所有版本
歐洲 (愛爾蘭) 所有版本 所有版本
歐洲 (倫敦) 所有版本 所有版本
歐洲 (米蘭)
Europe (Paris) 所有版本 所有版本
歐洲 (西班牙)
歐洲 (斯德哥爾摩)
歐洲 (蘇黎世)
以色列 (特拉維夫)
Middle East (Bahrain)
中東 (UAE)
南美洲 (聖保羅)
AWS GovCloud (美國東部)
AWS GovCloud (美國西部)

啟用恢復之叢集的升級考量

您可以將啟用回溯功能的資料庫叢集從 Aurora My SQL 版本 2 升級為版本 3,因為所有次要版本的 Aurora My SQL 版本 3 都支援回溯。

使用主控台訂閱恢復事件

下列程序說明如何使用主控台訂閱恢復事件。在您的實際恢復時段小於您的目標恢復時段時,該事件會傳送電子郵件或文字通知給您。

使用主控台檢視恢復資訊
  1. 登入到 AWS Management Console 並打開 Amazon RDS 控制台https://console.aws.amazon.com/rds/

  2. 選擇 Event subscriptions (事件訂閱)

  3. 選擇 Create event subscription (建立事件訂閱)

  4. Name (名稱) 方塊中,輸入事件訂閱的名稱,並確保對 Enabled (已啟用) 選取 Yes (是)

  5. Target (目標) 區段中,選擇 New email topic (新電子郵件主題)

  6. 針對 Topic name (主題名稱),輸入主題的名稱,並針對 With these recipients (含有以下收件人),輸入用來接收通知的電子郵件地址或電話號碼。

  7. Source (來源) 區段中,針對 Source type (來源類型) 選擇 Instances (執行個體)

  8. 針對 Instances to include (要併入的執行個體),選擇 Select specific instances (選取特定執行個體),並選擇您的資料庫執行個體。

  9. 針對 Event categories to include (要併入的事件類別),選擇 Select specific event categories (選取特定事件類別),並選擇 backtrack (恢復)

    您的頁面應該看起來類似下列頁面。

    恢復事件訂閱
  10. 選擇 Create (建立)。

擷取現有恢復

您可以擷取關於資料庫叢集現有恢復的資訊。此資訊包括恢復的唯一識別符、恢復的開始和結束日期和時間、要求恢復的日期和時間,以及恢復的目前狀態。

注意

目前,您無法使用主控台擷取現有恢復。

下列程序說明如何使用 AWS CLI.

若要使用擷取現有的回溯 AWS CLI
  • 呼叫 describe-db-cluster-backtracks AWS CLI命令並提供以下值:

    • --db-cluster-identifier – 資料庫叢集的名稱。

    下列範例會擷取 sample-cluster 的現有恢復。

    用於 Linux, macOS,或 Unix:

    aws rds describe-db-cluster-backtracks \ --db-cluster-identifier sample-cluster

    用於 Windows:

    aws rds describe-db-cluster-backtracks ^ --db-cluster-identifier sample-cluster

若要使用 Amazon 擷取資料庫叢集回溯的相關資訊 RDSAPI,請使用 D escribeDBCluster 回溯作業。此操作會傳回 DBClusterIdentifier 值中指定的資料庫叢集恢復的相關資訊。