復原 Apigee Edge 4.19.01

Private Cloud v4.19.01 版

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

您可以將 Edge 4.19.01 復原至下列 Feature Release 版本:

  • 版本 4.18.05
  • 版本 4.18.01
  • 版本 4.17.09*

* 如要從 4.19.01 復原至 4.17.09,您必須 復原 Postgres,以及將元件復原到 每個節點如果復原至 4.18.01 或 4.18.05,您不需要在升級時復原 Postgres 程序並未包含 Postgres 更新。

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

  1. 復原至先前的功能版本。例如: 4.19.01 至 4.18.05。
  2. 復原至同一版本中先前的更新版本。適用對象 例如從 4.19.01.02 到 4.19.01.01。

詳情請參閱 Apigee Edge 版本 程序

誰可以執行復原作業

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

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

含有通用程式碼的元件

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

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

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

復原至前一個功能版本

如要從 4.19.01 復原至 4.17.09,您必須 復原 Postgres,以及將元件復原 每個節點如果您從 4.18.01 或 4.18.05 復原,不必在升級時復原 Postgres 程序並未包含 Postgres 更新。

如要復原至先前的 Feature 版本,請針對代管 元件:

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

    • 如要復原至 4.18.05 版,請下載 bootstrap_4.18.05.sh
      curl https://software.apigee.com/bootstrap_4.18.05.sh -o /tmp/bootstrap_4.18.05.sh 
    • 如要復原至 4.18.01,請下載 bootstrap_4.18.01.sh
      curl https://software.apigee.com/bootstrap_4.18.01.sh -o /tmp/bootstrap_4.18.01.sh 
    • 如要復原至 4.17.09,請下載 bootstrap_4.17.09.sh
      curl https://software.apigee.com/bootstrap_4.17.09.sh -o /tmp/bootstrap_4.17.09.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.19.01 版本的 apigee-setup
    /opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
  6. 安裝 4.18.05、4.18.01 或 4.17.09 版本的 apigee-service 公用程式和依附元件以下範例會安裝 apigee-service:
    sudo bash /tmp/bootstrap_4.17.09.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. 針對您要復原的元件的每個節點重複此程序。

如要從 4.19.01 復原至 4.17.09,您必須 復原 Postgres,以及將元件復原 每個節點如果您從 4.18.01 或 4.18.05 復原,不必在升級時復原 Postgres 程序並未包含 Postgres 更新。

復原至前一個更新版本

如要將元件復原至特定版本,請對各節點執行下列操作 代管元件:

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

    其中 component_version 為要安裝的元件和更新版本。適用對象 範例:

    /opt/apigee/apigee-service/bin/apigee-service edge-ui-4.17.09-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. 針對您要復原的元件的每個節點重複此程序。

如要從 4.19.01 復原至 4.17.09,您必須 復原 Postgres,以及將元件復原 每個節點如果您從 4.18.01 或 4.18.05 復原,不必在升級時復原 Postgres 程序並未包含 Postgres 更新。

復原 Postgres 9.6 更新

如果您已從 4.17.09 版升級至 4.19.01,就必須復原 除了 Edge 元件外,還會更新 Postgres。

如何在主待命設定中更新 Postgres 時,復原 Postgres 更新:

  • 將新的待命節點升級為 Postgres 主要執行個體。新的 Postgres 主資源會是 的版本與之前安裝的 Edge 版本相同。
  • 將舊待命節點設為新主要執行個體的待命節點。舊的待命節點 會與您之前安裝的 Edge 版本相同。
  • 向數據分析和用戶群組註冊新的主要節點和待命節點。

完成復原後,就不再需要舊的主要節點。你可以 然後停用舊的主節點

  1. 確認新的待命 Postgres 節點正在執行:
    /opt/apigee/apigee-service/bin/apigee-all status

    如果 Postgres 未執行,請啟動:

    /opt/apigee/apigee-service/bin/apigee-all start
  2. 確認 Postgres 已在舊的主要節點和舊待命節點上停止:
    /opt/apigee/apigee-service/bin/apigee-all status

    如果 Postgres 正在執行,請停止執行:

    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server stop > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  3. 如果已安裝,請在舊待命節點上啟動 Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server start
    敬上
  4. 將新的待命節點升級為 Postgres 主要執行個體:
    1. 將新的待命節點升級為新主要執行個體
      apigee-service apigee-postgresql promote-standby-to-master new_standby_IP

      如果出現提示,請輸入「apigee」的 Postgres 密碼使用者 (預設為 「postgres」。

    2. 編輯您用於安裝最新 Edge 版本的設定檔,以指定 包括:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    3. 設定新主要執行個體
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFile
  5. 重新建構舊待命節點:
    1. 編輯您用於安裝最新 Edge 版本的設定檔,以指定 包括:
      # IP address of the new master:
      PG_MASTER=new_standby_IP
      # IP address of the old standby node
      PG_STANDBY=old_standby_IP
    2. 移除舊待命節點上的資料目錄:
      cd /opt/apigee/data/apigee-postgresql/pgdata > rm -rf *
    3. 將舊待命節點重新設定為新主要執行個體的待命節點:
      /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
    4. 確認 Postgres 會在舊的待命節點上執行:
      /opt/apigee/apigee-service/bin/apigee-all status

      如果未執行,請啟動:

      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server start
  6. 查看 新主要執行個體上的 /opt/apigee/apigee-postgresql/conf/pg_hba.conf 檔案。
  7. 執行下列指令,查看目前的數據分析和消費者群組資訊 在管理伺服器上:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    這個指令會在 name 欄位中傳回 Analytics 群組名稱,以及 在 consumer-groups 下方 name 欄位中的消費者群組名稱。此外, 會傳回舊 Postgres 主要執行個體和待命節點的 UUID postgres-server 欄位和 datastores 欄位中。您應該會看到 格式如下:

    {
      "name" : "axgroup-001",
      "properties" : {
      },
      "scopes" : [ "VALIDATE~test", "sgilson~prod" ],
      "uuids" : {
        "qpid-server" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
        "postgres-server" : [
          "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256"
        ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "8381a053-433f-4382-bd2a-100fd37a1592", "4b6856ec-ef05-498f-bac6-ef5f0d5f6521" ],
        "datastores" :
          [ "ab1158bd-1d59-4e2a-9c95-24cc2cfa6edc:27f90844-efab-4b32-8a23-8f85cdc9a256" ],
          "properties" : {     }
        }
      ],
      "data-processors" : {
      }
    }
  8. 執行下列 curl 指令,取得舊主要執行個體的 UUID 位址: 舊的主節點:
    curl -u sysAdminEmail:password http://node_IP:8084/v1/servers/self

    輸出內容結尾處會顯示節點的 UUID,格式如下:

    "type" : [ "postgres-server" ],
    "uUID" : "599e8ebf-5d69-4ae4-aa71-154970a8ec75"
    敬上
  9. 重複上述步驟,取得舊待命節點和新待命節點的 IP 位址 主要節點。
  10. 從用戶群組中移除舊的主要執行個體和待命節點:
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores/masterUUID,standbyUUID" -v

    其中 axgroup-001consumer-group-001 是 數據分析和用戶群組masterUUID,standbyUUID的順序與本身相同 上方顯示的是您在上述目前的數據分析和消費者群組資訊時。個人中心 可能需要將其指定為 standbyUUID,masterUUID

    consumer-groupsdatastores 屬性現在應如下所示: 並將空無一物。

  11. 從分析群組中移除舊的主要執行個體和待命節點:
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v

    uuids 下的 postgres-server 屬性現在應留空。

  12. 透過數據分析和使用者群組註冊新的 PG 主節點和待命節點:
    curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standbyUUID&type=postgres-server" -v
    curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d ''
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/datastores?uuid=masterUUID,standbyUUID" -v
  13. 驗證數據分析群組:
    curl -u sysAdminEmail:password http://ms_IP:8080/v1/analytics/groups/ax

    數據分析群組應會顯示新主要執行個體和待命節點的 UUID 和消費端群組

  14. 重新啟動 Edge Management Server:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  15. 重新啟動所有 Qpid 伺服器:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
  16. 重新啟動所有 Postgres 伺服器:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  17. 在兩個伺服器上發出下列指令碼,驗證複製狀態。系統 兩台伺服器上應顯示相同的結果,以確保複製成功:

    在新主要執行個體上,執行下列指令:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

    驗證其是否為主版本。在舊的待命節點上:

    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

    驗證裝置是否為待機。

  18. 在提出多個 API 要求後重複上一個步驟,確認節點位於 同步處理。
  19. 使用 更新 Apigee Edge 4.16.01/4.16.05 至 4.17.09

    或者,您可以從舊的主要執行個體解除安裝 Qpid。 在新的主要節點上安裝 Qpid。解除安裝 Qpid 後,您可以停用 還是舊的主節點

從舊的主要執行個體解除安裝 Qpid,然後在新的主要執行個體上安裝 Qpid

如何從舊主要執行個體解除安裝 Qpid,並在新的主要執行個體上安裝:

  1. 禁止訊息處理者存取舊主要執行個體上的 Qpid 通訊埠 5672,方法如下: 在所有訊息處理器執行下列指令:
    iptables -A OUTPUT -p tcp -d 10.233.147.20 --dport 5672 -j DROP
  2. 請執行下列指令,確保 Qpid 訊息佇列沒有任何內容。你無法 解除安裝 Qpid,直到處理完所有待處理訊息為止:
    qpid-stat -q

    這個指令會顯示包含 msg, msgIn, and msgOut 計數的資料表。 系統會在 msg=0時處理所有訊息, 和 msgIn=msgOut

  3. 請在舊主要執行個體執行下列指令,確認 Qpid 伺服器的 UUID 舊的主要執行個體請儲存這些資訊,以供後續程序使用:
    curl -u sysAdminEmail:password http://node_IP::8083/v1/servers/self
  4. 在舊主要執行個體上停止 Qpid:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server stop
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd stop
  5. 解除安裝 Qpid 伺服器:
    /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server uninstall
    /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd uninstall
  6. 從數據分析和用戶群組中移除舊的 Qpid 伺服器:
    curl -u sysAdminEmail:password -X DELETE -H "Content-Type: application/json" -d '' \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers/qpid_UUID" -v
    curl -u sysAdminEmail:password -X DELETE \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
  7. 從 Zookeeper 中移除舊的 Qpid 伺服器:
    curl -u sysAdminEmail:password -X DELETE \
      http://ms_IP:8080/v1/servers/qpid_UUID
  8. 在新的主要執行個體上安裝 Qpid:
    /opt/apigee/apigee-setup/bin/setup.sh -p qs -f configFile
  9. 執行下列指令,決定新主要執行個體上 Qpid 伺服器的 UUID: 新的主要執行個體請儲存這些資訊,以供後續程序使用:
    curl -u sysAdminEmail:password
      http://node_IP::8083/v1/servers/self
  10. 向數據分析和用戶群組註冊新的 Qpid 伺服器:
    curl -u sysAdminEmail:password -X POST -H "Content-Type: application/json" -d '' \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=qpid_UUID&type=qpid-server" -v
    curl -u sysAdminEmail:password -X POST -H "Content-Type:application/json" -d '' \
      "http://ms_IP:8080/v1/analytics/groups/ax/axgroup-001/consumer-groups/consumer-group-001/consumers?uuid=qpid_UUID" -v
  11. 重新啟動所有訊息處理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  12. 在新的 Qpid 伺服器上執行下列指令,檢查佇列是否已建立:
    qpid-stat -q

    確保您看到 msgmsgInmsgOut 處於 會隨著 Qpid 伺服器處理訊息而更新。

如果在復原版本時遇到問題,請與 Apigee Edge 支援團隊聯絡。