復原 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 元件。舉例來說,如果路由器必須存取具有特殊權限的通訊埠 (例如 1000 以下的通訊埠),則您必須以根層級或可存取這些通訊埠的使用者身分執行路由器。或者,您也可以分別以一個使用者身分執行元件和另一個元件,做為另一個使用者執行。

含有通用程式碼的元件

以下 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
    • 解除安裝 management-server:
      /opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
    • 下載並執行舊版本的啟動作業。舉例來說,如要下載並執行 4.52.01 版的啟動程序,請按照下列步驟操作:
      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. 如要復原節點上的任何「其他」元件,請停止該元件:
      • /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,除瞭解除安裝 edge-gateway 元件群組,您還必須刪除 /opt/nginx/conf.d 檔案的內容:
      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 公用程式及其依附元件。以下範例會安裝 4.51.00 版本的 apigee-service
    sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord

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

    如果收到錯誤訊息,請確實在步驟 1 中下載 bootstrap.sh 檔案。

  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 線上存放區,可以透過下列指令確認可用的元件版本:

    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