4.17.09 復原程序

私有雲版本 4.17.09 版本

如果 Edge 4.17.09 更新期間發生錯誤,您可以復原導致該錯誤的元件,然後重試更新。例如,如果 Postgres 9.4 的更新失敗,您可以復原 Postgres 節點,然後重試更新。

在以下兩種情況中,您可能會選擇執行復原:

  1. 復原至較舊版本。例如:從 4.17.09 到 4.17.01。
  2. 復原至同一個版本中的舊版本。

請採取下列程序,在這兩種情況下執行復原作業。

誰可以執行復原作業

執行復原作業的使用者應與原先更新 Edge 的使用者,或以超級使用者身分執行的使用者相同。

根據預設,Edge 元件會以「Apigee」使用者的身分執行。在某些情況下,您可能會以不同使用者的身分執行 Edge 元件。舉例來說,如果路由器需要存取具有特殊權限的通訊埠 (例如低於 1000 的通訊埠),您就必須以根層級的身分執行路由器,或以可存取這些通訊埠的使用者身分。或者,您可以只執行一個元件,並以另一個使用者的身分執行另一個元件。

可以復原的元件

執行復原作業時,請注意下列條件:

  • 下列五個邊緣元件共用相同的程式碼。因此,如要復原節點中五個元件的其中一個,您必須復原節點中安裝的五個元件。舉例來說,如果您在節點上安裝了「管理伺服器」、「路由器」和「訊息處理者」,那麼您必須復原這三個版本,才能復原兩者。
    共用代碼的五個元件如下:
    • 管理伺服器
    • 路由器
    • 訊息處理器
    • Qpid 伺服器
    • Postgres 伺服器
  • 如果您是從 Edge 4.16.01 更新,請勿復原 Cassandra。這個版本的 Edge 包含經過更新的 Cassandra 版本。如果您復原任何元件,請將 Cassandra 保留在 4.17.09 版本。

復原 4.17.09

本節包含將 Edge 4.17.09 復原至前一個程序的程序。本節分為兩個部分:

  • 如果您只有從 4.16.01 或 4.16.05 版更新 - 將 Postgres 更新更新至 9.4 版
    每個更新程序的最後一個部分應從 4.16.01 或 4.16.05 版更新至 9.4 版。如果更新失敗,您可以使用這項程序復原更新。
  • 復原所有其他 Edge 元件
    使用這項程序復原任何其他 Edge 元件。

復原 Postgres 9.4 更新

如要在主要待命設定中更新 Postgres 時更新 Postgres 更新,您必須:

  • 升級新的待命節點,成為 Postgres 主要執行個體。新的 Postgres 主要執行個體將與先前的 Edge 安裝版本相同。
  • 將舊的待命節點設為新主要執行個體的待命節點。舊的待命節點將與之前的 Edge 安裝版本相同。
  • 透過數據分析和消費者群組註冊新的主要執行個體和待命節點。

復原作業完成後,不再需要舊的主要執行個體節點。然後,您可以停用舊的主要執行個體節點。

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

    如果 Postgres 並未執行,請啟動這個節點:
    > /opt/apigee/apigee-service/bin/apigee-all start
  2. 確認舊有主要執行個體節點和舊版待命節點上停止 Postgres:
    > /opt/apigee/apigee-service/bin/apigee-all 狀態

    如果 Postgres 正在執行,請停止:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-postgres-server stop
    > /opt/apigee/apigee-service/bin/Api-service/bin/apigee-php
  3. 如果已安裝,請在舊版待命節點上啟動 Qpid:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server start

    注意:在許多設定中,舊的待命節點只會託管 Postgres,而非 Qpid。
  4. 將新的待命節點升級為 Postgres 主要執行個體:
    1. 將新的待命節點升級為新主要執行個體
      > apigee-service apigee-postgresqlpromo-standby-to-master new_standby_IP

      如果出現系統提示,請輸入「Apigee」使用者的 Postgres 密碼 (預設為「postgres」)。
    2. 編輯您用於安裝目前邊緣的 Edge 設定檔,指定下列項目:
      # 個新主要執行個體的 IP 位址:
      PG_MASTER=new_standby_IP
      # 舊待命節點的 IP 位址
      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 位址:
      PG_MASTER=new_standby_IP
      舊待命節點的 IP 位址
      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 狀態

      如果未執行,請啟動這個代理程式:
      > /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 (分析) 群組名稱,以及 name 下方的消費者群組名稱。 同時也會在「postgres-server」欄位和「datastores」欄位中傳回舊 Postgres 主要執行個體和待命節點的 UUID。使用應用程式的方式。


















  8. 在舊的主節點上執行以下 cURL 指令,藉此取得舊主要執行個體的 UUID 位址:
    > curl -u sysAdminEmail:password http://<node_IP>:8084/v1/servers/self:





    如果 Postgres 伺服器並未運作,您可以在「管理伺服器」中執行下列指令,決定 UUID:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/servers?pod=analytics

    這個指令的輸出結果會針對各個 Postres 節點的 IP 位址列出 UUID。
  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.1 group-0-1

    masterUUID,standbyUUID 的順序與上述相同 (您在上方查看目前的數據分析和消費者群組資訊時的順序)。您可能需要將其指定為 standbyUUID,masterUUID

    資料儲存庫屬性取用者群組的屬性應留空。
  11. 從 Analytics (分析) 群組中移除舊主要執行個體和待命節點:
    > curl -u sysAdminEmail:password -X DELETE "http://<ms_IP>:8080/v1/analytics/groups/ax/axgroup-001/servers?uuid=masterUUID,standresUUID stand-post"
    }
  12. <wbr> 建議<wbr> 客戶數據


  13. 驗證數據分析群組:
    > curl -u sysAdminEmail:password http://<ms_IP>:8080/v1/analytics/groups/ax

    數據分析群組和消費者群組中所列的新主要執行個體和待命節點應會顯示 UUID。
  14. 重新啟動 Edge Management 伺服器:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-management-server 重新啟動
  15. 重新啟動所有 Qpid 伺服器:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-qpid-server 重新啟動
  16. 重新啟動所有 Postgres 伺服器:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-postgres-server 重新啟動
  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」中的程序停用舊的 Postgres 主要執行個體。

    注意:如果舊的主要節點正在執行 Qpid,您可以讓伺服器維持執行 Qpid。確認正在執行。如果尚未啟動,請按照下列步驟操作:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-management-server start

    或者,您也可以從舊的主要執行個體解除安裝 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 和 msgOut 的計數。當 msg=0msgIn=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 解除安裝
    > /opt/apigee/apigee-service/bin/apigee-service apigee-qpidd 解除安裝
  6. 具有 具有 具有 具有 具有 另外 另外 另外 Cloud 具有具有 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外 另外事件事件事件事件事件事件事件 另外 另外 另外事件事件 另外


  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. {/0}


  11. 重新啟動所有訊息處理器:
    > /opt/apigee/apigee-service/bin/apigee-service Edge-message-processor 重新啟動
  12. 在新 Qpid 伺服器中執行下列指令,檢查佇列是否已建立完成:
    > qpid-stat -q

    隨著 Qpid 伺服器處理訊息,您看到的訊息為 msg、msgIn 和 msgOut

從 4.17.09 版復原個別元件

執行復原作業時,您必須下載當前 Edge 版本的 bootstrap.sh 檔案:

  • 如要復原至 4.17.05 版,請下載 bootstrap_4.17.05.sh
  • 如要復原至 4.17.01 版,請下載 bootstrap_4.17.01.sh
  • 如要復原至 4.16.09 版,請下載 bootstrap_4.16.09.sh
  • 如要復原至 4.16.05 版,請下載 bootstrap_4.16.05.sh
  • 如要復原至 4.16.01 版,請下載 bootstrap.sh

針對託管元件的每個節點:

  1. 停止元件即可復原:
    1. 如要復原節點中的下列任一元件,您必須全部停止:管理伺服器、路由器、訊息處理工具、Qpid 伺服器或 Postgres 伺服器:
      • > apigee-service Edge-management-server 停止
      • > apigee-service 邊緣路由器停止
      • > apigee-service Edge-message-processor 停止
      • > apigee-service Edge-qpid-server 停止
      • > apigee-service Edge-postgres-server 停止
    2. 如果您要復原節點中任何其他元件,只要停止該元件即可:
      • > apigee-service comp 停止
  2. 如要復原營利功能,請將該管理服務從所有管理伺服器和訊息處理器節點中解除安裝:
    > apigee-service Edge-mint-閘道
  3. 解除安裝元件,以便在節點上復原:
    1. 如果您復原節點中下列任何元件,然後解除安裝所有元件:管理伺服器、路由器、訊息處理工具、Qpid 伺服器或 Postgres 伺服器:
      > apigee-service Edge-閘道 解除安裝
    2. 如果您復原節點中任何其他元件,請只解除安裝該元件:
      > apigee-service comp 解除安裝
    3. 如果您「正在復原路由器」,則必須刪除 /opt/nginx/conf.d 的內容:
      > cd /opt/nginx/conf.d
      > rm -rf *
  4. 如何復原元件:
    1. 解除安裝 4.17.09 Apigee-setup 版本:
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup 解除安裝
    2. 請下載 4.16.01、4.16.05、4.16.09、4.17.01 或 4.17.05 版本的 bootstrap.sh:

      例如 4.16.09
      > curl https://software.apigee.com/bootstrap.4.1/1t.9.1/mpst-9.1/mpst1...
    3. 安裝 4.16.01、4.16.05 或 4.16.09 apigee-service 公用程式和依附元件。

      以 4.16.09 為例
      > sudo bash /tmp/bootstrap_4.16.09.sh apigeeuser=uName apigeepassword=pWord

      其中 uNamepWord 是您從 Apigee 收到的使用者名稱和密碼。如果您略過 pWord,系統會提示您輸入。
    4. 安裝 4.16.01、4.16.05、4.16.09、4.17.01 或 4.17.05 版本的 apigee-setup
      > /opt/apigee/apigee-service/bin/apigee-service apigee-setup 安裝
    5. 安裝 4.16.01、4.16.05、4.16.09、4.17.01 或 4.17.05 元件版本:
      > /opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
      安裝檔案 1.6.9
    6. 如要復原 Qpid,請清除 iptables:
      > sudo iptables -F
  5. 如要將元件復原至 4.17.09 版的特定版本:
    1. 下載特定元件版本:
      > /opt/apigee/apigee-service/bin/apigee-service comp-version 安裝

      ,其中 comp-version 是要安裝的元件和版本。例如:
      > /opt/apigee/apigee-service/bin/apigee-service Edge-ui-4.17.09-0.0.3749 安裝

      如果您使用 Apigee 線上存放區,則可以使用下列指令判斷可用的元件版本:
      > yum --showduplicates list pp

      範例:
    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
      <沒有設定名稱。

如果復原時發生問題,請與 Apigee 支援團隊聯絡。