本頁面說明如何在單一地區還原 Cassandra。
在單一地區部署時,Apigee hybrid 會部署在單一資料中心或地區。如果部署中有多個 Apigee 機構,還原程序會還原所有機構的資料。在多機構設定中,您無法還原特定機構。
從備份還原區域
-
更新
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 值區名稱,用於資料還原作業。
restore:cloudProvider
GCP
必須使用
cloudProvider: "GCP"
屬性。restore:snapshotTimestamp
TIMESTAMP
要還原的備份快照時間戳記。如要查看可使用的時間戳記,請前往
dbStorageBucket
,查看值區中的檔案。每個檔案名稱都包含時間戳記值。例如:backup_20210203213003_apigee-cassandra-default-0.tgz
其中 20210203213003 是您要使用
snapshotTimestamp
值的時間點,以便還原當時建立的備份。backup:enabled
如果先前已將這個屬性設為 true
,則應將其設為false
。 -
如果您沒有可用來開始的乾淨叢集,請按照停用 helm 的混合區域說明文件操作,將現有的混合安裝作業轉為乾淨狀態 (您可以保留已安裝的 Cert Manager)。這會讓您處於相同狀態,就像您遵循 Helm 執行階段設定手冊的說明,直到步驟 11 開始為止。
-
確認 Apigee 命名空間中沒有任何 Pod:
kubectl get pods -n APIGEE_NAMESPACE
-
如果您使用 CSI 備份,請務必執行下列指令,確認您可以查看要用於還原程序的磁區快照:
kubectl get volumesnapshot -n APIGEE_NAMESPACE
-
依據「步驟 10:使用 Helm 安裝 Apigee Hybrid 」一節所述,逐一安裝所有 Hybrid 元件。請注意,執行指令安裝
datastore
後,系統會建立apigee-cassandra-restore
Pod,但只有在安裝apigee-org
元件後,系統才會進入running
狀態。
如要進一步瞭解 Cassandra 備份與還原作業,請參閱「Cassandra 備份總覽」。
確認還原工作進度,並確認 apigeeds
和所有其他 Pod 都已啟用:
- 檢查
apigeeds
:kubectl get apigeeds -n APIGEE_NAMESPACE
- 檢查所有其他 pod:
kubectl get pods -n APIGEE_NAMESPACE
在成功完成還原作業並確認執行階段元件運作正常後,建議您在叢集中設定備份:
- 從
overrides-restore.yaml
檔案中移除restore
設定。 - 將
backup
設定新增至overrides-restore.yaml
檔案。 - 使用下列指令套用
backup
設定:helm upgrade datastore apigee-datastore/ \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides-restore.yaml