在單一區域中還原

本頁說明如何在單一區域還原 Cassandra。

在單一地區部署中,Apigee Hybrid 會部署在單一資料中心或地區。如果部署作業有多個 Apigee 機構,還原程序會還原所有機構的資料。在多個機構的設定中,您無法還原特定機構。

從備份還原區域

  1. 更新 overrides.yaml 檔案中的 Cassandra 還原詳細資料:

    namespace: YOUR_RESTORE_NAMESPACE # Use the same namespace as in your original cluster.
    cassandra:
      hostNetwork: false
      ...
      restore:
        enabled: true
        serviceAccountPath: "SA_JSON_FILE_PATH"
        dbStorageBucket: "CLOUD_STORAGE_BUCKET_NAME"
        cloudProvider: "GCP"  # required verbatim "GCP" (all caps)
        snapshotTimestamp: "TIMESTAMP"
      ...
      backup:
        enabled: false
      ...

    其中:

    屬性 說明
    namespace

    YOUR_RESTORE_NAMESPACE

    要還原的命名空間。使用與原始叢集相同的命名空間。

    cassandra:hostNetwork

    hostNetwork 為必要欄位,且一律應設為 false

    restore:enabled 還原功能預設為停用。您必須將這個屬性設為 true
    restore:serviceAccountPath

    SA_JSON_FILE_PATH

    您為備份作業建立的服務帳戶在檔案系統中的路徑。

    restore:dbStorageBucket

    CLOUD_STORAGE_BUCKET_NAME

    Google Cloud Storage bucket 名稱,用於儲存備份封存檔,以利還原資料。

    restore:cloudProvider

    GCP

    cloudProvider: "GCP" 屬性為必填欄位。

    restore:snapshotTimestamp

    TIMESTAMP

    要還原的備份快照時間戳記。如要查看可使用的時間戳記,請前往 dbStorageBucket,並查看值區中的檔案。每個檔案名稱都包含時間戳記值。例如: backup_20210203213003_apigee-cassandra-default-0.tgz

    其中 20210203213003snapshotTimestamp 值,如果您想還原在該時間點建立的備份,就會使用這個值。

    backup:enabled 如果先前已將這個屬性設為 true,請將其設為 false
  2. 如果沒有乾淨的叢集可供使用,請按照「Decommission a hybrid region for helm」文件操作,將現有的 Hybrid 安裝作業恢復為乾淨狀態 (您可以保留 Cert Manager)。這會讓您達到與手動設定 Apigee Hybrid 執行階段相同的狀態,直到步驟 12 開始為止。

  3. 確認 Apigee 命名空間中沒有任何剩餘的 Pod:

    kubectl get pods -n APIGEE_NAMESPACE
  4. 如果使用 CSI 備份,請執行下列指令,確認您要用於還原程序的 volumesnapshot:

    kubectl get volumesnapshot -n APIGEE_NAMESPACE
              
  5. 步驟 11:使用 Helm 安裝 Apigee Hybrid 所述,逐一安裝所有 Hybrid 元件。請注意,執行安裝 datastore 的指令後,系統會建立 apigee-cassandra-restore Pod,但只有在安裝 apigee-org 元件後,Pod 才會進入 running 狀態。

如要進一步瞭解 Cassandra 備份與還原,請參閱「Cassandra 備份總覽」。

確認還原作業進度,並確認 apigeeds 和所有其他 Pod 均已啟動:

  1. 檢查 apigeeds
    kubectl get apigeeds -n APIGEE_NAMESPACE
  2. 檢查所有其他 Pod:
    kubectl get pods -n APIGEE_NAMESPACE

成功完成還原作業並確認執行階段元件運作正常後,建議您在叢集上設定備份:

  1. overrides-restore.yaml 檔案中移除 restore 設定。
  2. backup 設定新增至 overrides-restore.yaml 檔案。
  3. 使用下列指令套用 backup 設定:
    helm upgrade datastore apigee-datastore/ \
      --namespace APIGEE_NAMESPACE \
      --atomic \
      -f overrides-restore.yaml