如果更新至 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 |
在以下兩種情況中,您可能會想執行復原作業:
- 復原至先前的主要或次要版本。例如: 4.52.02 至 4.52.00。
- 復原至先前修補程式版本 ( 版本。例如從 4.52.00.02 到 4.52.00.01。
詳情請參閱 Apigee Edge 版本 程序。
復原順序
元件應按照升級順序反向復原,但在 Cassandra 後應復原管理伺服器。
Private Cloud 4.52.02 的一般復原順序如下:
- 復原 Postgres、Qpid 和其他數據分析相關元件
- 復原路由器和訊息處理器
- 復原 Cassandra、Zookeeper
- 復原管理伺服器
舉例來說,假設您已從 4.52.01 版將整個 Cassandra 叢集、所有管理伺服器和一些 RMP 升級至 4.52.02 版,並希望復原。此時,您應採取以下做法:
- 逐一復原所有 RMP
- 使用備份復原整個 Cassandra 叢集
- 逐一復原 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 快照一文中的步驟操作。
復原步驟
- 從要復原的節點開始:
- 在節點上停止 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>
- 對要復原的每個節點重複上述步驟,逐一執行。
- 在節點上停止 Cassandra:
- 復原並重新建構所有節點後:
- 執行任何管理伺服器節點的設定。確保管理伺服器使用的是復原版本。如果不能,請一併復原管理伺服器。
- 停止管理伺服器:
/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,請按照下列步驟還原備份並執行修復。
- 按照步驟最多步驟六步,在本機資料中心重新建構備用資源。
- 針對其餘節點,請一次對其餘的節點執行下列步驟。
- 還原您從這個節點擷取的備份 (注意:這項備份作業可能是在您開始 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。
- 還原您從這個節點擷取的備份 (注意:這項備份作業可能是在您開始 Cassandra 升級前進行而過時的資料):
清除及還原備份/VM 快照
如果您已升級整個 Cassandra 叢集,並想要復原,則只能採用這項程序。
此外,Apigee 備份是節點專屬的。無法將某個節點的備份還原至其他節點。Cassandra 備份包含節點中繼資料資訊 (例如 IP 位址、環位位置等)。
- 從叢集中 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
- 在節點上停止 Cassandra 服務:
復原 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,如下方「復原至先前的主要或次要版本」一節所述。
復原至前一個主要或次要版本
如要復原至先前的主要或次要版本,請在代管 元件:
-
下載所需版本的
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
- 如要復原為 4.51.00 版,請下載
- 停止元件以復原:
- 如要將任何含有通用程式碼的元件復原至
必須全部停止,如以下範例所示:
/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
- 如要復原節點上的任何「other」元件,請停止該元件:
/opt/apigee/apigee-service/bin/apigee-service component stop
- 如要將任何含有通用程式碼的元件復原至
必須全部停止,如以下範例所示:
- 如果您要復原營利服務,請從所有管理伺服器和訊息中解除安裝
處理器節點:
/opt/apigee/apigee-service/bin/apigee-service edge-mint-gateway uninstall
- 解除安裝元件以復原節點:
- 如要將任何含有通用程式碼的元件復原至
節點,您必須解除安裝
edge-gateway
元件,才能全部解除安裝 群組,如以下範例所示:/opt/apigee/apigee-service/bin/apigee-service edge-gateway uninstall
- 若要復原節點上的任何其他元件,只要解除安裝該元件,就像
範例如下:
/opt/apigee/apigee-service/bin/apigee-service component uninstall
其中 component 是元件名稱。
- 如要復原 Edge Router,您必須刪除
/opt/nginx/conf.d
檔案,除瞭解除安裝edge-gateway
元件群組:cd /opt/nginx/conf.d
rm -rf *
- 如要將任何含有通用程式碼的元件復原至
節點,您必須解除安裝
- 解除安裝 4.52.02 版的
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup uninstall
- 安裝 4.51.00 版本的
apigee-service
公用程式和依附元件以下範例會安裝apigee-service
:sudo bash /tmp/bootstrap_4.51.00.sh apigeeuser=uName apigeepassword=pWord
其中 uName 和 pWord 是您收到的使用者名稱和密碼 。如果省略 pWord,系統會提示您輸入。
如果收到錯誤訊息,請確認您已逐步下載
bootstrap.sh
檔案 1. - 安裝
apigee-setup
:/opt/apigee/apigee-service/bin/apigee-service apigee-setup install
- 安裝舊版元件:
/opt/apigee/apigee-setup/bin/setup.sh -p component -f configFile
其中 component 是要安裝的元件,configFile 則是 復原為舊版設定檔
- 如果您要復原 Qpid,請清除 iptable:
sudo iptables -F
- 針對您要復原的元件的每個節點重複此程序。
復原至前一個修補程式版本
如要將元件復原至特定的修補程式版本,請針對每個節點執行下列操作 代管元件:
- 下載特定元件版本:
/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
- 使用
apigee-setup
安裝元件:/opt/apigee/apigee-setup/bin/setup.sh -p comp -f configFile
例如:
/opt/apigee/apigee-setup/bin/setup.sh -p ui -f configFile
請注意,您在安裝時只指定元件名稱,而不是版本名稱。
- 針對您要復原的元件的每個節點重複此程序。
復原 mTLS
如要復原 mTLS 更新,請在所有主機上執行下列步驟:
- 停止 Apigee:
apigee-all stop
- 停止 mTLS:
apigee-service apigee-mtls uninstall
- 重新安裝 mTLS:
apigee-service apigee-mtls install
apigee-service apigee-mtls setup -f /opt/silent.conf