Amazon Redshift 快照和備份 - Amazon Redshift

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

Amazon Redshift 快照和備份

快照是叢集的 point-in-time 備份。有兩種類型的快照:自動和手動。Amazon Redshift 會使用加密的安全通訊端層 (SSL) 連線,將這些快照儲存在 Amazon S3 內部。

Amazon Redshift 會自動取得增量快照,以追蹤自上一個自動快照以來對叢集的變更。自動快照會保留所有需要的資料以從快照還原叢集。您可以建立快照排程以控制何時進行自動快照,或隨時手動進行快照。

當您從快照進行還原時,Amazon Redshift 會建立一個新的叢集,並在所有資料載入之前讓新叢集可供使用,以便您立即查詢新叢集。叢集會隨需從快照中串流資料以回應活動查詢,然後在背景載入剩餘資料。

當您啟動叢集時,您可以為自動和手動快照設定保留期間。您可以經由修改叢集,以變更自動和手動快照的預設保留期間。您可以在建立快照時,或經由修改快照,以變更手動快照的保留期間。

您可以檢視中的快照詳細資訊,以監控快照的進度 AWS Management Console,或透過呼叫describe-cluster-snapshotsCLI或動DescribeClusterSnapshotsAPI作。有關正在進行的快照,這些資訊顯示了例如增量快照的大小、傳輸速率、經過時間和預估剩餘時間。

為了確保您的備份永遠可供叢集使用,Amazon Redshift 會將快照儲存在由 Amazon Redshift 管理的內部受管 Amazon S3 儲存貯體中。若要管理儲存費用,請評估您需要保留自動快照的天數,並相應地設定其保留期。刪除您不再需要的任何手動快照。如需備份儲存成本的相關資訊,請參閱 Amazon Redshift 定價頁面。

在 Amazon Redshift 無伺服器中使用快照和備份

Amazon Redshift 無伺服器與佈建的叢集一樣,可讓您將備份作為命名空間中物件和資料的 point-in-time 表示形式。Amazon Redshift 無伺服器中有兩種備份類型:手動建立的快照和 Amazon Redshift 無伺服器自動建立的復原點。您可以在快照和復原點找到有關使用 Amazon Redshift 無伺服器快照的詳細資訊。

您也可以將快照從佈建的叢集還原至無伺服器命名空間。如需詳細資訊,請參閱從快照還原無伺服器命名空間

自動快照

當叢集的自動快照已啟用時,Amazon Redshift 將定期為該叢集建立快照。Amazon Redshift 預設約每 8 小時或每節點資料變更 5 GB 時拍攝一次,以先到者為準。如果您的資料大於 5 GB * 節點數,則兩次自動建立快照之間的最短間隔時間為 15 分鐘。或者,您可以建立快照排程以控制何時進行自動快照。如果您使用自訂排程,則兩次自動快照之間的最短間隔時間為一小時。依據預設,當您建立叢集時,將會啟用自動快照。

在保留期間結束後,自動快照將永久刪除。預設保留期為一天,但您可以使用 Amazon Redshift 主控台進行修改,或使用 Amazon Redshift 或以程式設計方式修改保留期限。API CLI

若要停用自動快照,請將保留期間設定為 zero (零)。若您停用了自動快照,Amazon Redshift 將停止拍攝快照並刪除叢集的任何現有自動快照。您無法停用RA3節點類型的自動快照集。您可以將RA3節點類型自動保留期設定為 1—35 天。

只有 Amazon Redshift 可以刪除自動快照;您無法手動刪除自動快照。在自動快照的保留期結束時、停用叢集的自動快照時,或當您刪除叢集時,Amazon Redshift 會刪除自動快照。Amazon Redshift 會保留最新的自動快照,直到您停用自動快照或刪除叢集為止。

如果想要讓自動快照保留期間更長,請建立該快照複本以做為手動快照。自動快照會保留到保留期間結束為止,但對應的手動快照會保留到您手動刪除它為止,或直到保留期間結束為止。

自動快照排程

若要精確控制何時進行快照,您可以建立快照排程,並將它連接至一或多個叢集。當您修改快照排程時,所有相關聯叢集的排程都會修改。如果叢集沒有連接快照排程,將會使用預設的自動快照排程。

快照排程是一組排程規則。您可以指定時間間隔來定義簡單的排程規則,例如每 8 小時或每 12 小時。您也可以新增規則,在特定的週中的日、指定的時間或特定期間進行快照。您也可以使用類似 Unix 的 cron 運算式來定義規則。

快照排程格式

您可以在 Amazon Redshift 主控台建立快照排程。然後,您可以將排程連接至叢集以觸發系統快照的建立。一個排程可連接至多個叢集,而且您可以在一個排程中建立多個 cron 定義來觸發快照。

您可以使用 cron 語法為您的快照定義排程。這些排程的定義使用經過修改且類似 Unix 的 cron​ 語法。您可以在國際標準時間 (UTC) 中指定時間。您可以用最大頻率 1 小時以及最小單位 1 分鐘來建立排程。

Amazon Redshift 修改的 cron 運算式有 3 個必要欄位,並且會以空格隔開。

語法

cron(Minutes Hours Day-of-month Month Day-of-week Year)
欄位 Values (數值) 萬用字元

分鐘

0–59

, - * /

小時

0–23

, - * /

D ay-of-month

1–31

, - * ? / L W

第一至十二或 JAN-DEC

, - * /

D ay-of-week

1 至 7 號或 SUN-SAT

, - * ? L #

1970-2199

, - * /

萬用字元
  • , (逗號) 萬用字元包含額外的值。在 Day-of-week 欄位,MON,WED,FRI 包括週一、週二和週三。每個欄位的總數值限制為 24。

  • - (破折號) 萬用字元用於指定範圍。在 Hour 欄位中,1–15 會包含指定日的 1 至 15 時。

  • * (星號) 包含欄位中所有的值。在 Hours 欄位,* 包含每個小時。

  • / (斜線) 萬用字元用於指定增量。在 Hours 欄位,您可以輸入 1/10 指定每第 10 小時,從一天的第一小時開始 (例如 01:00、11:00 和 21:00)。

  • ? (問號) 萬用字元用於表示不限定任何一個。在該Day-of-month字段中,您可以輸入 7,如果您不在乎第七週的哪一天,您可以輸入 在 D 字ay-of-week 段中。

  • L 萬用字元在 Day-of-monthDay-of-week 欄位可指定月份或週的最後一天。

  • W 萬用字元在 Day-of-month 欄位可指定任務日。在 Day-of-month 欄位,3W 指定的是月份中最接近第三個任務日的日子。

  • D ay-of-week 欄位中的 # 萬用字元會指定一個月內星期中指定日期的特定執行個體。例如,3#2 代表則該月的第二個星期二:3 是指星期二,因為它是每週的第三天,2 指的是一個月內該類型的第二天。

    注意

    如果您使用 '#' 字元,則只能在 day-of-week 欄位中定義一個運算式。例如:"3#1,6#3" 是無效的,因為它被轉譯為兩個表達式。

限制
  • 您無法在同一個 cron 表達式中指定 Day-of-monthDay-of-week 欄位。如果您在其中一個欄位指定了數值,就必須在另一個欄位中使用 ? (問號)​。

  • 快照排程不支援下列頻率:

    • 快照排程頻率超過每小時 1 次。

    • 快照排程頻率低於每天 (24 小時) 1 次。

    如果您有重疊的排程,導致 1 個小時內有多個排程快照,將會產生驗證錯誤。

建立排程時,您可以使用下列 cron 字串範例。

分鐘 小時 週中的日 意義

0

14-20/1

TUE

週二下午 2 點至 8 點,每小時一次。

0

21

MON-FRI

週一至週五每天晚上 9 點。

30

0/6

SAT-SUN

週六和週日每 6 小時增量,從當日午夜後 30 分鐘開始 (00:30)。結果是在每天 [00:30、06:30、12:30 和 18:30] 進行快照。

30

12/4

*

每天 12:30 開始每 4 小時增量。這解析為 [12:30、16:30、20:30]。

舉例來說,如果要執行排程,在每天的 15:15 開始每 2 小時增量。這解析為 [15:15、17:15、19:15、21:15、23:15],指定:

cron(15 15/2 *)

您可以在排程中建立多個 cron 排程定義。例如下面 AWS CLI 命令在一個時間表中包含兩個 cron 時間表。

create-snapshot-schedule --schedule-identifier "my-test" --schedule-definition "cron(0 17 SAT,SUN)" "cron(0 9,17 MON-FRI)"

手動快照

您可以隨時建立手動快照。在預設情況下,即使刪除叢集,手動快照也會無限期地保留。您可以在建立手動快照時指定保留期間,或經由修改快照以變更保留期間。如需變更保留期的相關資訊,請參閱修改手動快照保留期

若刪除快照,您便無法開始任何參考該快照的新操作。不過,若一個還原操作正在處理中,該還原操作將會繼續執行至完成為止。

Amazon Redshift 有一個配額,限制您可以建立的手動快照總數;此配額為每 AWS 每個帳戶 AWS 區域。Amazon Redshift 中的配額和限制中會列出預設配額。

快照儲存

由於快照會產生儲存費用,當您不再需要快照時,務必刪除它們。Amazon Redshift 會在各自的快照保留期結束時刪除自動和手動快照。您也可以使用刪除手動快照 AWS Management Console 或使用指batch-delete-cluster-snapshotsCLI令。

您可以修改手動快照設定,以變更手動快照的保留期間。

您可以使用 Amazon Redshift 主控台或使用描述儲存命CLI令,取得快照佔用多少儲存空間的相關資訊。

從快照排除資料表

依預設,所有使用者定義的永久資料表都包含在快照中。如果不需要備份資料表 (例如臨時資料表),則可以大幅減少建立快照和從快照還原所需的時間。您也可以使用不備份資料表以在 Amazon S3 上減少儲存空間。若要建立無備份資料表,請在建立資料表時加入 BACKUP NO 參數。CREATETABLE如需詳細資訊,請參閱 Amazon Redshift 資料庫開發人員指南中的CREATETABLE和 AS。