在多個區域中還原

本頁說明如何在多個區域還原 Cassandra。

在多區域部署中,Apigee Hybrid 會部署在不同資料中心的多個地理位置。請注意,如果部署作業中有多個 Apigee 機構,還原程序會還原所有機構的資料。在多機構設定中,支援只還原特定機構。

還原 Cassandra

在多區域部署中,有兩種方法可以挽救失敗的區域。本主題說明下列方法:

  • 復原失敗的區域:說明如何根據運作正常的區域,復原失敗的區域。
  • 還原失敗的區域 - 說明如何從備份還原失敗的區域。只有在所有混合式區域都受到影響時,才需要採取這種做法。

復原失敗的區域

如要從正常運作的區域復原失敗的區域,請按照下列步驟操作:

  1. 將受影響區域的 API 流量重新導向至運作正常的區域。請相應規劃容量,以支援來自故障區域的轉移流量。
  2. 停用受影響的區域。針對每個受影響的區域,請按照「停用混合型區域」一文中的步驟操作。請等待停用程序完成,再進行下一個步驟。

  3. 還原受影響的區域。如要還原,請按照「GKE、GKE On-Prem 和 AKS 的多區域部署」一文所述,建立新區域。

從備份還原

根據設定,Cassandra 備份可以位於 Cloud Storage 或遠端伺服器。 如要從備份還原 Cassandra,請按照下列步驟操作:

  1. 從所有區域刪除 Apigee Hybrid 部署作業:
    apigeectl delete -f overrides.yaml
  2. 從備份還原所需區域。詳情請參閱「從備份還原區域」。

  3. 移除已刪除區域的參照,並在 KeySpaces 中繼資料中新增已還原區域的參照。
  4. 使用 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
  5. 更新 KeySpaces 複寫。
    1. 建立用戶端容器,並透過 CQL 介面連線至 Cassandra 叢集。
    2. 透過 CQL 介面取得使用者鍵空間清單:
      cqlsh ${CASSANDRA_SEEDS} -u ${CASS_USERNAME} -p ${CASS_PASSWORD}
                  --ssl -e "select keyspace_name from system_schema.keyspaces;"|grep -v system
    3. 針對每個鍵空間,從 CQL 介面執行下列指令,更新複寫設定:
      ALTER KEYSPACE KEYSPACE_NAME WITH replication = {'class': 'NetworkTopologyStrategy', 'REGION_NAME':3};

      其中:

      • KEYSPACE_NAME 是上一步輸出內容中列出的鍵空間名稱。
      • REGION_NAME 是在步驟 4 中取得的區域名稱。