設定備份方案

根據預設,AlloyDB for PostgreSQL 會使用 Google 管理的加密方式,持續備份資料,並提供 14 天的復原期。本頁說明如何透過下列兩種方式調整這項預設行為:

事前準備

  • 您使用的 Google Cloud 專案必須已啟用 AlloyDB 存取權
  • 您必須在使用的 Google Cloud 專案中擁有下列其中一個 IAM 角色:
    • roles/alloydb.admin (AlloyDB 管理員預先定義的 IAM 角色)
    • roles/owner (擁有者基本 IAM 角色)
    • roles/editor (編輯者基本 IAM 角色)

    如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。

管理持續備份和復原

本節說明如何使用 Google Cloud CLI 或 Google Cloud 控制台指令,在叢集上設定、停用或重新啟用持續備份和復原功能。

設定持續備份

您可以設定叢集持續備份系統的復原時間範圍和加密設定。

如果縮小復原時間範圍,AlloyDB 會立即縮短可執行時間點復原的過去時間範圍。舉例來說,如果將時間範圍從 14 天縮短為 7 天,系統就無法還原 7 天前的時間點。

如果增加時間範圍,系統會即時擴大時間點還原的可用時間範圍,直到達到您指定的新上限為止。舉例來說,如果將回溯期從 7 天改為 14 天,系統需要額外 7 天,才能將回溯期有效大小擴展至新的上限 (14 天)。

設定方案後,系統最多可能需要 24 小時,才能完成持續備份並啟用持續復原功能。如要加快備份作業,不必等待 24 小時,並避免資料遺失,設定方案後可以進行隨選備份。

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 按一下「資料保護」

  4. 在「持續備份與復原政策」下方,點選「編輯」

  5. 在「可還原的時間範圍 (以天為單位)」欄位中,輸入新的可還原時間範圍大小。

  6. 如要使用特定客戶自行管理的加密金鑰 (CMEK),而非叢集的加密設定,加密這個叢集的連續備份和資料變更記錄,請按照下列額外步驟操作:

    1. 按一下「進階加密選項」

      1. 按一下「客戶自行管理的加密金鑰 (CMEK)」單選按鈕。

      2. 按一下「選取客戶管理的金鑰」清單,然後選取金鑰。

  7. 按一下「Update」

gcloud

如要使用 gcloud CLI,可以安裝及初始化 Google Cloud CLI,也可以使用 Cloud Shell

如要在叢集上設定持續備份和復原功能,請使用 gcloud alloydb clusters update 指令。

gcloud alloydb clusters update CLUSTER_ID \
  --continuous-backup-recovery-window-days=WINDOW_LENGTH \
  --region=REGION_ID \
  --project=PROJECT_ID

更改下列內容:

  • CLUSTER_ID:叢集 ID。

  • WINDOW_LENGTH:這個叢集的持續備份和復原期間長度 (以天為單位)。值必須介於 135 之間 (含)。

    這個引數的值會定義連續備份和復原的下列兩個方面:

    • 相較於目前,您可根據連續備份執行時間點復原的最遠時間點。

    • AlloyDB 在儲存空間中保留連續備份和資料變更記錄的時間長度。為確保您可以在復原時間範圍內的任何時間點還原資料,AlloyDB 會保留備份和記錄檔,時間比指定值多一天。

    此引數為選用項目。如未加入,AlloyDB 會將復原時間範圍設為 14 天。

    • REGION_ID:叢集所在區域的 ID。
    • PROJECT_ID:叢集所在的專案 ID。

    如要使用特定客戶自行管理的加密金鑰 (CMEK),而非叢集的加密設定,加密這個叢集的連續備份和資料變更記錄,請提供下列額外引數:

    • --continuous-backup-encryption-key=KEY_ID:要使用的 CMEK 金鑰 ID。

    • --continuous-backup-encryption-key-keyring=KEYRING_ID: 金鑰環的 ID。

    • --continuous-backup-encryption-key-location=LOCATION_ID: 金鑰環所在區域的 ID。請注意,您指定的地區必須與叢集的地區相符。

    • --continuous-backup-encryption-key-project=PROJECT_ID:金鑰環的專案 ID。

    如要在 AlloyDB 中使用 CMEK,您需要完成一些額外的設定步驟。詳情請參閱「搭配使用 CMEK 與 AlloyDB」。

停用持續備份與復原功能

停用持續備份功能後,叢集就無法使用時間點復原功能。如要再次使用這項功能,請按照下一節的說明重新啟用連續備份。

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 按一下「資料保護」分頁標籤。

  4. 在「持續備份與復原政策」下方,點選「編輯」

  5. 取消勾選「Google 代管的持續資料保護機制」核取方塊。

  6. 按一下「Update」

gcloud

如要在叢集上停用持續備份與還原功能,請使用 gcloud alloydb clusters update 指令。

  gcloud alloydb clusters update CLUSTER_ID \
      --no-enable-continuous-backup
      --region=REGION_ID \
      --project=PROJECT_ID

更改下列內容:

  • CLUSTER_ID:叢集 ID。
  • REGION_ID:叢集所在區域的 ID。
  • PROJECT_ID:叢集所在的專案 ID。### 啟用持續備份

如果先前停用持續備份功能,重新啟用後即可再次使用時間點復原功能。AlloyDB 建立第一個後續備份時,復原時間範圍就會開始。如要盡快啟用時間點還原功能,請在重新啟用持續備份後,立即建立隨選備份。否則,AlloyDB 會在下次每日備份時開始復原程序。

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 按一下「資料保護」

  4. 在「持續備份與復原政策」下方,點選「編輯」

  5. 勾選「Google 代管的持續資料保護機制」核取方塊。

  6. 按一下「Update」

gcloud

如要在停用叢集的持續備份設定後重新啟用,請按照重新設定持續備份的相同程序操作,並在 gcloud CLI 指令中加入 --enable-continuous-backup 引數:

gcloud alloydb clusters update CLUSTER_ID \
    --enable-continuous-backup \
    --continuous-backup-recovery-window-days=WINDOW_LENGTH \
    --region=REGION_ID \
    --project=PROJECT_ID

更改下列內容:

  • CLUSTER_ID:叢集 ID。

  • WINDOW_LENGTH:這個叢集的持續備份和復原期間長度 (以天為單位)。值必須介於 135 之間 (含)。

    這個引數的值會定義連續備份和復原的下列兩個方面:

    • 相較於目前,您可根據連續備份執行時間點復原的最遠時間點。

    • AlloyDB 在儲存空間中保留連續備份和資料變更記錄的時間長度。為確保您可以在復原時間範圍內的任何時間點還原資料,AlloyDB 會保留備份和記錄檔,時間比指定值多一天。

    此引數為選用項目。如未加入,AlloyDB 會將復原時間範圍設為 14 天。

    • REGION_ID:叢集所在區域的 ID。
    • PROJECT_ID:叢集所在的專案 ID。

    如要使用特定客戶自行管理的加密金鑰 (CMEK),而非叢集的加密設定,加密這個叢集的連續備份和資料變更記錄,請提供下列額外引數:

    • --continuous-backup-encryption-key=KEY_ID:要使用的 CMEK 金鑰 ID。

    • --continuous-backup-encryption-key-keyring=KEYRING_ID: 金鑰環的 ID。

    • --continuous-backup-encryption-key-location=LOCATION_ID: 金鑰環所在區域的 ID。請注意,您指定的地區必須與叢集的地區相符。

    • --continuous-backup-encryption-key-project=PROJECT_ID:金鑰環的專案 ID。

    如要在 AlloyDB 中使用 CMEK,您需要完成一些額外的設定步驟。詳情請參閱「搭配使用 CMEK 與 AlloyDB」。

設定其他自動備份

本節說明如何啟用或停用叢集的自動備份排程,這項功能與持續備份系統無關。包括設定 AlloyDB 建立這些額外自動備份的頻率,以及保留時間長度。

自動備份設定屬性

每個 AlloyDB 叢集都可以有一項可自訂的自動備份設定,包括下列屬性:

  • 備份時間表。您可以將這項設定設為每週特定幾天,以及這些日子的特定時段。

  • 保留政策,可表示為備份資料的保留時間長度,或保留的備份數量。根據預設,AlloyDB 會保留自動備份 14 天。

    系統會自動刪除備份時間早於保留政策的備份資料。詳情請參閱「備份保留和刪除」。

  • AlloyDB 在取消不完整的自動備份嘗試前,會等待的時間長度。AlloyDB 預設逾時時間為一小時。

  • 資料加密偏好設定:預設的 Google 代管加密,或您提供的客戶自行管理的加密金鑰 (CMEK)

啟用及設定自動備份

控制台

您可以在 Google Cloud 控制台中啟用及停用自動備份功能,但無法指定備份時間表或其他設定。如要執行這項操作,請改用 gcloud CLI。

如果您在未設定這項功能的叢集上啟用自動備份,AlloyDB 會套用預設設定,每天排定一次自動備份,保留期限為 14 天,並使用 Google 管理的加密機制。

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 按一下「資料保護」

  4. 在「自動備份政策」下方,按一下「編輯」

  5. 勾選「自動備份」核取方塊。

  6. 按一下「Update」

gcloud

如要使用 gcloud CLI 啟用自動備份功能,請指定備份排程。其他設定選項皆為選填。對於您未明確設定的任何設定選項,AlloyDB 會套用上一節列出的預設值。

每次執行這項指令來定義新的自動備份設定時,AlloyDB 都會以新設定完全取代叢集的目前設定。

如要啟用自動備份功能,但不想指定完整設定,請使用 Google Cloud 控制台。

使用 gcloud alloydb clusters update 指令定義自動備份的建立排程:

gcloud alloydb clusters update CLUSTER_ID \
    --automated-backup-days-of-week=DAYS_LIST \
    --automated-backup-start-times=UTC_TIMES_LIST \
    --region=REGION_ID \
    --project=PROJECT_ID

更改下列內容:

  • CLUSTER_ID:要定義排程的叢集 ID。

  • DAYS_LIST:以半形逗號分隔的清單,列出要自動備份的一或多天。有效值為 MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY

  • :以半形逗號分隔的清單,列出您希望自動備份作業在指定日期開始執行的時間。UTC_TIMES_LIST請以 24 小時制的世界標準時間指定時間,格式為 HH:00

  • REGION_ID:叢集所在區域的 ID。

  • PROJECT_ID:叢集所在的專案 ID。

這個範例會將叢集設為每週一和週四的 UTC 午夜自動備份:

gcloud alloydb clusters update my-cluster \
    --automated-backup-days-of-week=MONDAY,THURSDAY \
    --automated-backup-start-times=00:00 \
    --region=us-central1 \
    --project=my-project

如要使用 CMEK 金鑰加密排定的備份作業,而非預設的 Google 代管加密,請提供下列額外引數:

  • --automated-backup-encryption-key=KEY_ID:要使用的 CMEK 金鑰 ID。

  • --automated-backup-encryption-keyring=KEYRING_ID:金鑰環的金鑰 ID。

  • --automated-backup-encryption-location=LOCATION_ID:該金鑰環區域的 ID。請注意,這必須與叢集的區域相符。

  • --automated-backup-encryption-project=PROJECT_ID:金鑰環的專案 ID。

如要在 AlloyDB 中使用 CMEK,您需要完成一些額外的設定步驟。詳情請參閱「搭配使用 CMEK 與 AlloyDB」。

您也可以根據要保留的備份資料數量或時間長度,指定自動備份資料保留政策。如要執行這項操作,請加入下列任一引數:

  • 如要讓 AlloyDB 在一段時間內保留所有自動備份,請使用 --automated-backup-retention-period=DURATION

    請將 DURATION 替換為時間長度字串,如 gcloud topic datetimes 所述。您最多可以指定一年的時間長度。

  • 如要讓 AlloyDB 保留特定數量的備份,請使用 --automated-backup-retention-count=COUNT

    COUNT 替換為 AlloyDB 應保留的自動備份數量,最多可保留一年。

停用自動備份功能

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 按一下「資料保護」

  4. 在「自動備份政策」下方,按一下「編輯」

  5. 取消勾選「Automate backups」(自動備份) 核取方塊。

  6. 按一下「Update」

gcloud

如要停用自動備份,請使用 gcloud alloydb clusters update 指令。

gcloud alloydb clusters update CLUSTER_ID \
    --disable-automated-backup \
    --region=REGION_ID \
    --project=PROJECT_ID

更改下列內容:

  • CLUSTER_ID:要停用自動備份功能的叢集 ID。
  • REGION_ID:叢集所在區域的 ID。
  • PROJECT_ID:叢集所在的專案 ID。

查看備份方案

您可以查看叢集的自動或持續備份方案詳細資料。

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 在「資源名稱」欄中,按一下叢集。

  3. 按一下「資料保護」

如要查看叢集備份方案的詳細資料,請參閱「持續備份與復原政策」和「自動備份政策」表格。

gcloud

  1. 使用 gcloud alloydb clusters describe 指令顯示叢集的詳細資料。

  2. continuousBackupConfigcontinuousBackupInfo 鍵會彙整叢集的持續備份和復原設定。包括是否啟用持續備份、復原時間範圍大小,以及加密設定。

    continuousBackupInfo 鍵也會顯示持續備份排程:每天備份一次。

  3. 如果有的話,automatedBackupPolicy 鍵會摘要說明叢集的自動備份設定。包括是否啟用自動備份,以及顯示備份排程和加密設定。

舉例來說,下列 gcloud alloydb clusters describe 指令的輸出內容顯示叢集已啟用自動備份功能,且系統會在每週一和週四的 UTC 時間凌晨 1 點左右進行備份。此外,這部手機也啟用了持續備份功能,復原期限為 10 天。

automatedBackupPolicy:
    enabled: true
    location: us-central1
    weeklySchedule:
        daysOfWeek:
        - MONDAY
        - THURSDAY
        startTimes:
        - hours: 1
clusterType: PRIMARY
continuousBackupConfig:
    enabled: true
    recoveryWindowDays: 10
continuousBackupInfo:
    encryptionInfo:
        encryptionType: GOOGLE_DEFAULT_ENCRYPTION
    schedule:
    - MONDAY
    - TUESDAY
    - WEDNESDAY
    - THURSDAY
    - FRIDAY
    - SATURDAY
    - SUNDAY
clusterType: PRIMARY
createTime: '2023-01-23T02:42:56.953258476Z'
databaseVersion: POSTGRES_14
encryptionInfo:
    encryptionType: GOOGLE_DEFAULT_ENCRYPTION
name: [...]
reconciling: false
state: READY
uid: [...]
updateTime: '2023-02-06T19:08:57.367222025Z'