Cassandra 還原概略

本頁面提供 Apigee Hybrid 中 Cassandra 還原作業的總覽。

為什麼要使用還原功能?

如果發生災難性故障 (例如 Apigee Hybrid 執行個體因災難而無法復原資料),您可以使用備份從頭還原 Apigee 基礎架構。還原作業會從備份位置提取資料,並將資料還原至節點數量相同的新 Cassandra 叢集。系統不會從舊的 Cassandra 叢集擷取任何叢集資料。 還原程序的目標是使用快照中的備份資料,將 Apigee Hybrid 安裝作業還原至先前的運作狀態。

在下列情況下,不建議使用備份還原:

  • Cassandra 節點故障。
  • 不慎刪除 appsdevelopersapi_credentials 等資料。
  • 多區域混合部署中的一或多個區域發生故障。

Apigee Cassandra 部署作業和作業架構會負責單一區域的備援和容錯功能。在大多數情況下,建議您採用多區域混合式生產環境,也就是說,如果某個區域發生故障,可以使用區域停用和擴充程序,從另一個運作中的區域復原,而不必從備份還原。

開始從 Cassandra 備份還原資料前,請注意下列事項:

  • 停機時間:還原期間會停機。
  • 資料遺失:從最後一次有效備份到還原完成期間,會有資料遺失。
  • 還原時間:還原時間取決於資料和叢集的大小。
  • 選擇性復原資料:你無法只選取特定資料進行復原。還原功能會還原所選的完整備份內容。

必要條件

確認下列所有必要條件都已成功達成。請先調查任何必要條件失敗情形,再繼續還原。

  1. 使用下列指令,確認所有 Cassandra Pod 均已啟動並執行。
    kubectl get pods -n apigee -l app=apigee-cassandra

    輸出內容應如下列範例所示:

    NAME                         READY   STATUS    RESTARTS   AGE
    apigee-cassandra-default-0   1/1     Running   0          14m
    apigee-cassandra-default-1   1/1     Running   0          13m
    apigee-cassandra-default-2   1/1     Running   0          11m
    exampleuser@example hybrid-files %
          
  2. 執行下列指令,確認 Cassandra StatefulSet 顯示所有 Pod 都在執行中。
    kubectl get sts -n apigee -l app=apigee-cassandra

    輸出內容應如下列範例所示:

    NAME                       READY   AGE
    apigee-cassandra-default   3/3     15m
        
  3. 使用下列指令,確認 ApigeeDatastore 資源處於 running 狀態。
    kubectl get apigeeds -n apigee

    輸出內容應如下列範例所示:

    NAME      STATE     AGE
    default   running   16m
        
  4. 使用下列指令,確認所有 Cassandra PVC 都處於 Bound 狀態。
    kubectl get pvc -n apigee -l app=apigee-cassandra

    輸出內容應如下列範例所示:

    NAME                                        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0   Bound    pvc-a14184e7-8745-4b30-8069-9d50642efe04   10Gi       RWO            standard-rwo   17m
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d   10Gi       RWO            standard-rwo   15m
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279   10Gi       RWO            standard-rwo   13m
        
  5. 使用下列指令,確認所有 Cassandra PV 都處於 Bound 狀態。
    kubectl get pv -n apigee

    輸出內容應如下列範例所示:

    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                              STORAGECLASS   REASON   AGE
    pvc-a14184e7-8745-4b30-8069-9d50642efe04   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-0   standard-rwo            17m
    pvc-ed129dcb-4706-4bad-a692-ac7c78bad64d   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-1   standard-rwo            16m
    pvc-faed0ad1-9019-4def-adcd-05e7e8bb8279   10Gi       RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-2   standard-rwo            14m
        
  6. 執行下列指令,確認 Apigee Controller 資源處於「Running」狀態。
    kubectl get pods -n apigee-system -l app=apigee-controller

    輸出內容應如下列範例所示:

    NAME                                         READY   STATUS    RESTARTS   AGE
    apigee-controller-manager-856d9bb7cb-cfvd7   2/2     Running   0          20m
        

如何還原?

視 Apigee Hybrid 部署在單一區域或多個區域而定,還原 Cassandra 的步驟會略有不同。如需詳細還原步驟,請參閱下列文件: