本頁說明如何在多個區域中還原 Cassandra。
在多區域部署作業中,Apigee hybrid 會在不同資料中心的多個地理位置部署。請注意,如果部署中有多個 Apigee 機構,還原程序會還原所有機構的資料。在多機構設定中,不支援只還原特定機構。
還原 Cassandra
在多區域部署中,有兩種方法可以復原失敗的區域。本主題將說明下列方法:
復原失敗的區域
如要從正常運作的區域復原失敗的區域,請執行下列步驟:
- 將 API 流量從受影響的區域重新導向至正常運作的區域。並據此規劃容量,以支援從故障區域轉移的流量。
- 停用受影響的區域。針對每個受影響的區域,請按照「停用混合型區域」一節所述的步驟操作。請等待停用作業完成,再繼續進行下一個步驟。
- 還原受影響的區域。如要還原,請按照「GKE、GKE On-Prem 和 AKS 的多區域部署」一文所述建立新區域。
從備份還原
Cassandra 備份可以儲存在 Cloud Storage 中,也可以儲存在遠端伺服器中,這取決於您的設定。如要從備份還原 Cassandra,請執行下列步驟:
- 從所有區域刪除 apigee hybrid 部署:
apigeectl delete -f overrides.yaml
-
從備份還原所需的區域。詳情請參閱「從備份還原區域」。
- 在
KeySpaces
中繼資料中移除已刪除的區域參照,並新增已還原的區域參照。 - 使用
nodetool status
選項取得區域名稱。kubectl exec -n apigee -it apigee-cassandra-default-0 -- bash nodetool -u ${APIGEE_JMX_USER} -pw ${APIGEE_JMX_PASSWORD} status |grep -i Datacenter
- 更新
KeySpaces
複製作業。- 建立用戶端容器,並透過 CQL 介面連線至 Cassandra 叢集。
- 從 CQL 介面取得使用者鍵值空間清單:
cqlsh ${CASSANDRA_SEEDS} -u ${CASS_USERNAME} -p ${CASS_PASSWORD} --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system
- 針對每個鍵值空間,請透過 CQL 介面執行下列指令,以更新複寫設定:
ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'REGION_NAME':3};
其中:
- KEYSPACE_NAME 是前一個步驟輸出內容中列出的鍵空間名稱。
- REGION_NAME 是步驟 4 取得的區域名稱。