將 Cloud SQL 執行個體備份至備份保存庫

本頁面說明如何將 Cloud SQL 執行個體備份至備份保存庫。將備份傳送至 backup vault,即可確保備份不可變更,並強制執行保留政策。

在 Google Cloud 控制台中,您可以套用備份方案,將 Cloud SQL 執行個體備份至備份保存庫。您可以透過下列任一方式備份。這兩種方法都能將備份資料安全地儲存在備份保存庫中,在資料遺失或其他意外事件發生時,提供可靠的 Cloud SQL 執行個體復原方式。

  • 排定的備份:您可以設定 Cloud SQL 執行個體自動備份的間隔,例如每天、每週、每月或每年。
  • 隨選備份。您可以視需要隨時建立隨選備份。 如果您要對資料庫進行重大變更,或臨時需要保護資料,就可以使用隨選備份功能。

事前準備

  1. 在 Cloud SQL 執行個體所在的專案中,啟用 Backup and DR Service API。
  2. 啟用 API
  3. 建立備份保存庫
  4. 建立備份方案
  5. 將 IAM 角色和權限指派給備份使用者
  6. 在 Cloud SQL 專案中授予 backup vault 存取權
  7. 在 bucket 上設定記錄檔分析工具,監控備份和災難復原備份工作。

備份使用者的 IAM 角色和權限

如要取得設定排程備份或執行隨選備份所需的權限,請要求管理員在備份保存庫專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這些預先定義的角色具備設定排程備份或執行隨選備份所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要設定排程備份或執行隨選備份,您必須具備下列權限:

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForCloudSqlInstance
  • backupdr.backupPlanAssociations.fetchForCloudSqlInstance
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.getForCloudSqlInstance
  • backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance
  • backupdr.backupPlanAssociations.deleteForCloudSqlInstance
  • backupdr.backupPlans.useForCloudSqlInstance
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

下表列出各項 API 呼叫所需的動態權限:

資源 要對資源執行的動作 每次 API 呼叫所需的權限 需要指派的專案
backup vault 建立 BackupVault backupdr.backupVaults.create 管理員專案
刪除 BackupVault backupdr.backupVaults.delete 管理員專案
更新 BackupVault backupdr.backupVaults.update 管理員專案
列出 BackupVault backupdr.backupVaults.list 管理員專案
取得 BackupVault backupdr.backupVaults.get 管理員專案
備份方案 建立 BackupPlan backupdr.backupPlans.create 管理員專案
刪除 BackupPlan backupdr.backupPlans.delete 管理員專案
取得 BackupPlan backupdr.backupPlans.get 管理員專案
列出備份方案 backupdr.backupPlans.list 管理員專案
備份方案關聯 建立備份方案關聯 cloudsql.instances.updateBackupDrConfig 工作負載專案
backupdr.backupPlanAssociations.createForCloudSqlInstance 工作負載專案
backupdr.backupPlans.useForCloudSqlInstance 管理員專案
刪除備份方案關聯 backupdr.backupPlanAssociations.deleteForCloudSqlInstance 工作負載專案
cloudsql.instances.updateBackupDrConfig 工作負載專案
在備份方案關聯中觸發隨選備份 backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance 工作負載專案
取得備份方案關聯 backupdr.backupPlanAssociations.getForCloudSqlInstance 工作負載專案
列出備份方案關聯 backupdr.backupPlanAssociations.list 工作負載專案
擷取備份方案關聯 backupdr.backupPlanAssociations.fetchForCloudSqlInstance 工作負載專案
資料來源 取得 DataSource backupdr.bvdataSources.get 管理員專案
列出資料來源 backupdr.backupPlanAssociations.list 管理員專案
PiTR 還原 backupdr.bvdataSources.useReadOnlyForCloudSqlInstance 管理員專案
備份 取得備份 backupdr.bvbackups.get 管理員專案
列出備份 backupdr.bvbackups.list 管理員專案
刪除備份 backupdr.bvbackups.delete 管理員專案
還原備份 backupdr.bvbackups.useReadOnlyForCloudSqlInstance 管理員專案
資料來源參照 取得資料來源參照 backupdr.dataSourceReferences.getForCloudSqlInstance 工作負載專案
擷取資料來源參照 backupdr.dataSourceReferences.fetchForCloudSqlInstance 工作負載專案
作業 可列出作業 backupdr.operations.list 各自的專案
Get 作業 backupdr.operations.get 各自的專案

在 Cloud SQL 專案中授予 backup vault 存取權

如要備份備份保存庫所在專案以外的 Cloud SQL 執行個體,您必須在 Cloud SQL 專案中,將備份和災難復原 Cloud SQL 操作者 (roles/backupdr.cloudSqlOperator) IAM 角色授予備份保存庫服務代理程式。如果備份儲存位置的 backup vault 專案與 Cloud SQL 專案不同,請在 Cloud SQL 專案中,將角色指派給 backup vault 服務代理程式。

如要備份與 backup vault 位於相同專案的 Cloud SQL 執行個體,則不需要授予任何角色。

如要瞭解如何授予 backup vault 服務代理備份專案中的角色,請參閱「授予服務代理角色」。

設定排程備份

請按照下列操作說明,為 Cloud SQL 執行個體設定排程備份。

主控台

  1. 前往 Google Cloud 控制台的「Vaulted backups」頁面。

    前往「封存備份」

  2. 按一下「排定備份時間」

  3. 在「Resource Type」(資源類型) 清單中,選取「Cloud SQL」

  4. 在「專案」清單中,選取 Cloud SQL 執行個體所在的專案。

  5. 從「Region」(區域) 清單中,選取執行個體所在的區域。

  6. 在「資源」清單中,按一下「瀏覽」。選擇要備份的 Cloud SQL 執行個體,然後按一下「完成」

  7. 按一下「繼續」

  8. 在「備份方案」清單中,按一下「選取」

  9. 選擇要用來保護 Cloud SQL 執行個體的備份方案。

  10. 按一下 [完成]

  11. 查看備份詳細資料,然後按一下「排程」

gcloud

  1. 設定排程備份。

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
          --location=CSQL_REGION \
          --project=CSQL_PROJECT_ID \
          --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \
          --resource-type=sqladmin.googleapis.com/Instance \
          --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
    

    更改下列內容:

    • BACKUP_PLAN_ASSOCIATION_NAME:備份方案關聯的名稱。
    • CSQL_REGION:Cloud SQL 執行個體所在的區域。
    • CSQL_PROJECT_ID:Cloud SQL 執行個體所在的專案名稱。
    • CSQL_INSTANCE_ID:Cloud SQL 執行個體 ID。
    • PROJECT_ID:備份方案所在的專案名稱。
    • LOCATION:執行個體的位置。

列出已排定備份作業的執行個體

請按照下列操作說明,列出已排定備份作業的 Cloud SQL 執行個體。

主控台

  1. 前往 Google Cloud 控制台的「Vaulted backups」頁面。

    前往「封存備份」

  2. 在表格頂端,依序選取「篩選表格」>「資源類型」。 選取「Cloud SQL」。這樣一來,畫面就只會顯示已套用備份方案,且備份儲存於專案 backup vault 中的 Cloud SQL 執行個體。

gcloud

列出已排定備份時間表的 Cloud SQL 執行個體:

  gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
  --location=LOCATION \
  --project=PROJECT_ID

更改下列內容:

  • LOCATION:排定備份作業的位置。
  • PROJECT_ID:Cloud SQL 執行個體所在的專案名稱。

建立按照需求執行的備份

您可以觸發所選備份規則立即執行,為備份方案中的 Cloud SQL 執行個體啟動隨選備份。按照需求執行的備份通常只會擷取上次備份後異動的資料 (增量備份)。

建立隨選備份時,您可以從與 Cloud SQL 執行個體相關聯的備份方案中選擇規則。這項規則會決定何時刪除按需求備份。您可以在「工作」頁面查看備份工作狀態。詳情請參閱「在 Google Cloud 控制台中監控備份與還原工作」。

請按照下列操作說明建立隨選備份。

主控台

  1. 前往 Google Cloud 控制台的「Vaulted backups」頁面。

    前往「封存備份」

    「已封存的備份」頁面只會列出符合下列條件的資料資源:已套用備份方案,而且備份儲存於專案中的 backup vault。

  2. 選取要備份的資源。從選單或資源的詳細資料頁面中,選取「建立隨選備份」

  3. 在「建立按照需求執行的備份」視窗中,選取要使用的備份規則,然後按一下「建立」

  4. 如要查看隨選備份工作的狀態,請按一下「通知」

gcloud

  1. 建立隨選備份。使用現有的備份方案關聯,啟動隨選備份。指定規則 ID,決定這項單次隨選備份的到期時間:

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --backup-rule-id=RULE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    [--no-async]
    

    更改下列內容:

    • BACKUP_PLAN_ASSOCIATION_NAME:備份方案關聯的名稱。

    • RULE_ID:要建立關聯的備份規則名稱,以便執行隨選備份。

    • PROJECT_ID:專案名稱。

    • LOCATION:排定備份作業的位置。

取消保護 Cloud SQL 執行個體

如要取消保護 Cloud SQL 執行個體,請移除套用至該執行個體的備份方案。從 Cloud SQL 執行個體移除備份方案時,不會刪除使用該方案建立的任何備份。在這些現有備份過期前,您仍可存取及管理。

請按照下列操作說明,取消保護 Cloud SQL 執行個體。

主控台

  1. 前往 Google Cloud 控制台的「Vaulted backups」頁面。

    前往「封存備份」

  2. 按一下要移除備份計畫的資料庫名稱。

  3. 選取「移除備份方案」

gcloud

取消保護 Cloud SQL 執行個體。

  gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
  --project=PROJECT_ID \
  --location=LOCATION

更改下列內容:

  • BACKUP_PLAN_ASSOCIATION_NAME:要刪除的備份方案關聯名稱。
  • PROJECT_ID:專案名稱。
  • LOCATION:排定備份作業的位置。