復原 Apigee Edge 4.52.02

如果更新至 Edge 4.52.02 時發生錯誤,可以復原 ,然後再次嘗試更新。

您可以將 Edge 4.52.02 復原至下列主要版本:

  • 版本 4.52.01
  • 版本 4.52.00
  • 版本 4.51.00

復原版本時,您必須復原所有已升級的元件。此外,根據初始版本,在復原特定軟體元件前,您可能需考量特別注意事項。下表列出執行復原時可能需要用到特殊步驟的各種軟體:

復原至版本 軟體的特別注意事項
4.52.01 Cassandra
4.52.00 Cassandra、Zookeeper、Qpid
4.51.00 Cassandra、Zookeeper、Qpid、Postgres

在以下兩種情況中,您可能會想執行復原作業:

  1. 復原至先前的主要或次要版本。例如: 4.52.02 至 4.52.00。
  2. 復原至先前修補程式版本 ( 版本。例如從 4.52.00.02 到 4.52.00.01。

詳情請參閱 Apigee Edge 版本 程序

復原順序

元件應按照升級順序反向復原,但在 Cassandra 後應復原管理伺服器。

Private Cloud 4.52.02 的一般復原順序如下:

  1. 復原 Postgres、Qpid 和其他數據分析相關元件
  2. 復原路由器和訊息處理器
  3. 復原 Cassandra、Zookeeper
  4. 復原管理伺服器

舉例來說,假設您已從 4.52.01 版將整個 Cassandra 叢集、所有管理伺服器和一些 RMP 升級至 4.52.02 版,並希望復原。此時,您應採取以下做法:

  1. 逐一復原所有 RMP
  2. 使用備份復原整個 Cassandra 叢集
  3. 逐一復原 Edge Management 伺服器節點

誰可以執行復原作業

執行復原作業的使用者必須與最初更新 Edge 的使用者相同,或 也就是以根的身分執行的使用者

根據預設,Edge 元件會以使用者「apigee」執行。在某些情況下,您可能在作業系統上執行 Edge 將元件當做不同使用者舉例來說,如果路由器必須存取具有特殊權限的通訊埠, 則必須以根層級使用者的身分執行路由器,或是將路由器以根使用者的身分執行 通訊埠。或者,您也可以分別執行一個元件和另一個元件,和另一個使用者各執行一個元件。

含有通用程式碼的元件

以下 Edge 元件會共用通用程式碼。因此,只要復原其中一個參數 所以對該節點上的這些元件而言,您必須復原該節點上的所有這些元件。

  • edge-management-server (管理伺服器)
  • edge-message-processor (訊息處理器)
  • edge-router (路由器)
  • edge-postgres-server (Postgres 伺服器)
  • edge-qpid-server (Qpid 伺服器)

舉例來說,如果您在裝置上安裝了管理伺服器、路由器和訊息處理器, 如要將其中一個節點復原,您必須復原這三個節點。

復原 Cassandra

針對特定 Cassandra 節點執行 Cassandra 重大升級時,Cassandra 會修改儲存在節點上資料的結構定義,使其無法直接復原。復原的方法有兩種。您必須根據要復原的升級狀態,使用其中一種方法。

復原的方法

清除並使用叢集中的現有節點,以重新建構節點

如果您在舊版 Cassandra (Cassandra 2.1.22 版本) 的叢集中,至少有一個功能完整的資料中心,可以按照這項程序進行。如果您已升級整個 Cassandra 叢集,並想要復原,請按照清除及還原備份或 VM 快照一文中的步驟操作。

復原步驟

  1. 從要復原的節點開始:
    • 在節點上停止 Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • 從節點解除安裝 Cassandra 軟體:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    • 移除節點中的資料目錄:
      rm -rf /opt/apigee/data/apigee-cassandra
    • 下載並執行要復原的舊版 Edge for Private Cloud 啟動程序。

    範例:復原至 4.52.01 版,

    • 下載 4.52.01 版的啟動項目:
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
    • 執行 4.52.01 的啟動載入:
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord

    • 在節點上設定 Cassandra:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
    • 提供功能性資料中心名稱,在節點上執行重新建構:
      /opt/apigee/apigee-cassandra/bin/nodetool rebuild -h <node-IP> <functional-dc>
    • 對要復原的每個節點重複上述步驟,逐一執行。
  2. 復原並重新建構所有節點後:
    • 執行任何管理伺服器節點的設定。確保管理伺服器使用的是復原版本。如果不能,請一併復原管理伺服器。
    • 停止管理伺服器:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
    • 如果使用營利功能,請一併解除安裝營利功能:
      /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
    • 解除安裝管理伺服器:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    • 下載並執行舊版本的啟動作業。舉例來說,如要下載並執行 4.52.01 版的 Bootstrap,請按照下列步驟操作:
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord
    • 執行單一管理伺服器節點的設定:
      /opt/apigee/apigee-setup/bin/setup.sh -p mt -f configFile

重新建構後進行最佳化

在上述步驟中,所有在重建期間,都會從遠端資料中心串流處理該節點中的所有資料。將所有備用資源串流至本機資料中心後,您可以使用維修程序來最佳化這項程序。這可避免跨資料中心串流作業,且應比從遠端 DC 重新建構所有節點的速度更快。

範例:假設本機資料中心有六個 Cassandra 節點。根據預設,Apigee 的複製係數為三個,因此每個節點都可擁有 50% 的資料。在這種情況下,您可以按照上述程序重新建構節點 #1 和 #4。針對節點 #2、#3、#5 和 #6,請按照下列步驟還原備份並執行修復。

  1. 按照步驟最多步驟六步,在本機資料中心重新建構備用資源。
  2. 針對其餘節點,請一次對其餘的節點執行下列步驟。
    • 還原您從這個節點擷取的備份 (注意:這項備份作業可能是在您開始 Cassandra 升級前進行而過時的資料):
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
    • 如果有節點的 VM 快照,可以還原快照,不必還原 Cassandra 備份。
    • 還原備份後,請在節點上啟動 Cassandra 服務:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
    • 在節點上執行修復作業,以便從現有的資料中心串流最新資料:
      /opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -dc <local-dc-name>
    • 在要修復的每個節點上重複執行步驟 3 至 6。
,瞭解如何調查及移除這項存取權。

清除及還原備份/VM 快照

如果您已升級整個 Cassandra 叢集,並想要復原,則只能採用這項程序。

此外,Apigee 備份是節點專屬的。無法將某個節點的備份還原至其他節點。Cassandra 備份包含節點中繼資料資訊 (例如 IP 位址、環位位置等)。

  1. 從叢集中 1 個 Cassandra 節點開始:
    • 在節點上停止 Cassandra 服務:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • 從節點解除安裝 Cassandra 軟體:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra uninstall
    • 移除節點中的資料目錄:
      rm -rf /opt/apigee/data/apigee-cassandra
    • 下載並執行要復原的舊版 Edge for Private Cloud。

    範例:復原至 4.52.01 版

    • 下載 4.52.01 版的啟動項目:
      curl https://software.apigee.com/bootstrap_4.52.01.sh -o /tmp/bootstrap_4.52.01.sh -u ‘uName:pWord’
    • 執行 4.52.01 的啟動載入:
      sudo bash /tmp/bootstrap_4.52.01.sh apigeeuser=uName apigeepassword=pWord

    • 在節點上設定 Cassandra:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f configFile
    • 按照「從備份還原」一節的程序還原節點上的備份。
    • 在節點上停止 Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra stop
    • 刪除資料目錄:
      rm -rf /opt/apigee/data/apigee-cassandra/data
    • 還原備份:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restore backup_file
    • 在節點上啟動 Cassandra 服務:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra start
    • 在每個 Cassandra 節點上一次重複執行一個步驟。
    • 一次執行一個節點的修復作業:
      /opt/apigee/apigee-cassandra/bin/nodetool -h <node-IP> repair -pr
,瞭解如何調查及移除這項存取權。

復原 Zookeeper 3.8.3 更新

如果您要復原至 4.52.00 或 4.51.00 版,在復原 Zookeeper 之前,請先參考一些特殊步驟。相關步驟請參閱「復原」一節。

如果您要復原到 4.52.01 版,請復原 Zookeeper,方法和復原任何軟體一樣,如下方「復原至先前的主要或次要版本」一節所述。

復原 Qpid

如果您要復原為 4.52.00 或 4.51.00 版,在復原 Qpid 之前,請先參考一些特殊步驟。相關步驟請參閱「復原」一節。

如果您復原為 4.52.01 版,請按照「復原至先前的主要或次要版本」一節所述的方式復原 Qpid,

復原 Postgres 10.17 更新

如果您要復原至 4.51.00 版,在復原 Postgres 之前,請先參考一些特殊步驟。相關步驟請參閱「復原」一節。

如果您復原到 4.52.01 或 4.52.00 版,請像復原任何軟體一樣復原 Postgres,如下方「復原至先前的主要或次要版本」一節所述。

復原至前一個主要或次要版本

如要復原至先前的主要或次要版本,請在代管 元件:

  1. 下載所需版本的 bootstrap.sh 檔案 返回:

    • 如要復原為 4.51.00 版,請下載 bootstrap_4.51.00.sh
      curl https://software.apigee.com/bootstrap_4.51.00.sh -o /tmp/bootstrap_4.51.00.sh 
  2. 停止元件以復原:
    1. 如要將任何含有通用程式碼的元件復原至 必須全部停止,如以下範例所示:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server stop
       /opt/apigee/apigee-service/bin/apigee-service edge-router stop
       /opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop
       /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
       /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop
    2. 如要復原節點上的任何「other」元件,請停止該元件:
      • /opt/apigee/apigee-service/bin/apigee-service component stop
  3. 如果您要復原營利服務,請從所有管理伺服器和訊息中解除安裝 處理器節點:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
  4. 解除安裝元件以復原節點:
    1. 如要將任何含有通用程式碼的元件復原至 節點,您必須解除安裝 edge-gateway 元件,才能全部解除安裝 群組,如以下範例所示:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    2. 若要復原節點上的任何其他元件,只要解除安裝該元件,就像 範例如下:
      /opt/apigee/apigee-service/bin/apigee-service component uninstall

      其中 component 是元件名稱。

    3. 如要復原 Edge Router,您必須刪除 /opt/nginx/conf.d 檔案,除瞭解除安裝 edge-gateway 元件群組:
      cd /opt/nginx/conf.d
       rm -rf *
  5. 解除安裝 4.52.02 版的 apigee-setup
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. 安裝 4.51.00 版本的 apigee-service 公用程式和依附元件以下範例會安裝 apigee-service:
    sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord

    其中 uNamepWord 是您收到的使用者名稱和密碼 。如果省略 pWord,系統會提示您輸入。

    如果收到錯誤訊息,請確認您已逐步下載 bootstrap.sh 檔案 1.

  7. 安裝 apigee-setup
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup install
  8. 安裝舊版元件:
    /opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile

    其中 component 是要安裝的元件,configFile 則是 復原為舊版設定檔

  9. 如果您要復原 Qpid,請清除 iptable:
    sudo iptables -F
  10. 針對您要復原的元件的每個節點重複此程序。

復原至前一個修補程式版本

如要將元件復原至特定的修補程式版本,請針對每個節點執行下列操作 代管元件:

  1. 下載特定元件版本:
    /opt/apigee/apigee-service/bin/apigee-service component_version install

    其中 component_version 是要安裝的元件和修補程式版本。適用對象 範例:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.51.05-0.0.3749 install

    如果您使用的是 Apigee 線上存放區,可以決定可用的元件 建立 App Engine 應用程式版本:

    yum --showduplicates list comp

    例如:

    yum --showduplicates list edge-ui
  2. 使用 apigee-setup 安裝元件:
    /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile

    例如:

    /opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile

    請注意,您在安裝時只指定元件名稱,而不是版本名稱。

  3. 針對您要復原的元件的每個節點重複此程序。

復原 mTLS

如要復原 mTLS 更新,請在所有主機上執行下列步驟:

  1. 停止 Apigee:
    apigee-all stop
  2. 停止 mTLS:
    apigee-service apigee-mtls uninstall
  3. 重新安裝 mTLS:
    apigee-service apigee-mtls install
    apigee-service apigee-mtls setup -f /opt/silent.conf