使用時間點復原 (PITR)

本頁說明如何將叢集還原至最近的過去狀態。建議將資料還原至 AlloyDB for PostgreSQL 叢集中的某個時間點,以便在發生大規模資料遺失時快速復原。

事前準備

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

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

  • 您必須在使用的 Google Cloud 專案中具備所有這些 IAM 角色:
    • compute.networks.list
    • compute.addresses.create
    • compute.addresses.list
    • compute.globalAddresses.create
    • compute.globalAddresses.list
    • servicenetworking.services.addPeering

    如要取得這些權限,同時遵循最低權限原則,請要求管理員授予 roles/alloydb.admin (AlloyDB 管理員預先定義的 IAM) 角色。

從最近的時間點還原

AlloyDB 可讓您從特定近期的時間範圍內,還原任何時間點的有效叢集資料。

可用的 PITR 視窗

您可以從下列兩個時間點中較晚的時間開始,還原任意時間點的資料:

  • 復原時間範圍的上限所代表的時間點。舉例來說,如果復原時間範圍為 14 天,則這個時間點是 14 天前。

  • 自上次啟用連續備份以來,最舊備份的建立時間。如果您建立叢集時已啟用持續備份,且之後未停用這項功能,那麼這個時間點就會成為叢集最舊備份的建立時間。

如果停用後重新啟用持續備份功能,您或 AlloyDB 必須先建立叢集的第一個新備份,才能執行時間點復原。這可以是隨選備份,也可以是啟用持續備份後,AlloyDB 每天執行的第一次備份。如要進一步瞭解備份類型,請參閱「資料備份與復原總覽」。

執行時間點還原

  1. 使用 Google Cloud 控制台或 Google Cloud CLI 執行還原作業。

    控制台

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

      前往「Clusters」(叢集)

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

    3. 按一下「資料保護」

    4. 在「從某個時間點還原」下方,按一下「還原」

    5. 在「目標時間」欄位中,輸入要還原的日期和時間。

    6. 在「叢集 ID」欄位中,輸入新叢集的名稱。

    7. 在「網路」欄位中,選取新叢集要使用的虛擬私有雲網路。

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

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

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

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

    9. 按一下「還原」

    gcloud

    使用 gcloud alloydb clusters restore 指令,指定叢集和時間戳記。請注意,與從備份還原不同,時間點復原作業需要原始叢集仍存在。您無法對已刪除的叢集執行這類還原作業。

    gcloud alloydb clusters restore NEW_CLUSTER \
      --source-cluster=SOURCE_CLUSTER \
      --point-in-time=TIMESTAMP \
      --region=REGION

    這項指令會傳回作業,您可以使用 gcloud alloydb operations describe 指令查詢作業狀態。

    gcloud alloydb operations describe OPERATION_ID \
      --region=REGION

    更改下列內容:

    • NEW_CLUSTER:新叢集使用的 ID。

    • SOURCE_CLUSTER:要從中復原資料的叢集 ID。
      如要從其他專案中的叢集還原,請將
      替換為完整叢集路徑,格式如下:
      projects/SOURCE_PROJECT/locations/SOURCE_REGION/clusters/SOURCE_CLUSTER

    • TIMESTAMP:以 RFC 3339 格式表示要從哪個時間點還原資料,例如 2012-11-15T16:19:00.094Z。您可以指定小至微秒的分數秒。

      請注意,這個時間戳記必須在您建立叢集時指定的保留期限內。

    • REGION:包含來源叢集的區域,也是 AlloyDB 建立新叢集的區域。例如:us-central1

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

    如要使用客戶自行管理的加密金鑰 (CMEK) 加密新叢集的資料,而非 Google 代管的加密金鑰,則必須提供下列額外引數:

    • --kms-key=KEY_ID:要使用的 CMEK 金鑰 ID。* --kms-keyring=KEYRING_ID:金鑰金鑰環的 ID。* --kms-location=LOCATION_ID:該金鑰環所在區域的 ID。請注意,這必須與叢集區域相符。
    • --kms-project=PROJECT_ID:金鑰環專案的 ID。

    如要還原至已啟用 Private Service Connect 的叢集,請務必新增 --enable-private-service-connect 標記。

  2. AlloyDB 建立叢集後,請為該叢集建立主要執行個體。您可以使用該執行個體存取還原的資料。請注意,新執行個體的設定不一定要與原始主要執行個體完全一致。

  3. 選用:建立讀取集區執行個體。

還原作業完成後,您就可以開始使用叢集。

後續步驟