WebLogic伺服器打補丁(11g/12c)
背景
2019年04月17日,Oracle釋出新季度安全公告。該安全公告披露WebLogic伺服器存在多個高危漏洞,影響多個版本多個WebLogic元件。這次我們以本次事件為例,講解如何給WebLogic(11g/12c)伺服器打補丁。
本次漏洞受影響的包括三個Oracle WebLogic Server版本,分別是:
- 10.3.6.0.0
- 12.1.3.0.0
- 12.2.1.3.0
補丁下載
點選 進入補丁下載頁面,你需要提前註冊好oracle賬號才能下載。
該頁面內容較多,比較不容易找到需要的補丁,有個小技巧,按 Ctrl+F
進行關鍵字搜尋,搜尋 weblogic
看到有連結的地方點選進入,可以直接跳轉到補丁下載地址,如圖:
以下是我們整理好的補丁的下載地址,你也可以直接點選下載:
補丁安裝 - 10.3.6.0.0
10.3.6.0.0是通過 PSUs (patch set updates)工具對補丁進行安裝。
1. 關閉伺服器
登陸console控制檯,將所有server包括admin server關閉
2. 備份中介軟體目錄(重要)
安裝補丁前請務必備份好中介軟體目錄(是中介軟體目錄不是domain),以便修復過程發生意外可以恢復。假設我們的中介軟體目錄為 /u01/app/Oracle/Middleware
$ cd /u01/app/Oracle/Middleware $ cp -rf Middleware Middleware_bak20190423
備份時間較長,可以先去喝杯咖啡,備份完成後繼續以下步驟。
3. 上傳補丁,準備環境
將下載好的補丁,通過ftp等工具將補丁檔案 p29204678_1036_Generic.zip
上傳至 {MW_HOME}/utils/bsu/cache_dir目錄下並解壓,cache_dir 目錄如果沒有需要手動建立。如果之前有上傳過補丁,則先將之前的補丁刪除後再上傳。
-rw-r--r-- 1 oracle oinstall 101146211 Apr 19 17:09 p29204678_1036_Generic.zip -rw-r--r-- 1 oracle oinstall 136403408 Feb4 04:30 patch-catalog_26516.xml -rw-r--r-- 1 oracle oinstall 136403408 Apr 19 18:25 patch-catalog.xml -rw-rw-r-- 1 oracle oinstall61197 Apr 15 17:56 README.txt -rw-r--r-- 1 oracle oinstall93124490 Feb4 04:30 U5I2.jar
4、修改bsu.sh配置
為了避免補丁安裝過程中記憶體不足,建議對bsu.sh進行修改,將預設的記憶體最小值從256m修改為1024m;最大值從513m修改為2048m
#!/bin/sh JAVA_HOME="/u01/java/jrockit-jdk1.6.0_33-R28.2.4-4.1.0" MEM_ARGS="-Xms1024m -Xmx2048m" "$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*
5. 補丁安裝
在bsu檔案目錄/u01/app/Oracle/Middleware/utils/bsu下,執行下面命令(兩個路徑需要按實際伺服器環境上的home路徑替代):
$ cd /u01/app/Oracle/Middleware/utils/bsu $ ./bsu.sh -install -patch_download_dir={MW_HOME}/utils/bsu/cache_dir -patchlist={PATCH_ID} -prod_dir={WEBLOGIC_HOME}
- {PATCH_ID}:補丁id,可以在README.txt中找到,本次補丁PATCH_ID=U5I2
- {WEBLOGIC_HOME}:weblogic目錄,在Middleware目錄下,如(/u01/app/Oracle/Middleware/wlserver_10.3)
6. 驗證補丁是否安裝成功
補丁安裝成功以後,重啟所有server,如果補丁安裝成功,在weblogic server的啟動日誌中,可以看到以下版本資訊。
7. 補丁解除安裝
在安裝補丁的過程中,如果碰到本次補丁和之前安裝的補丁衝突,需要先解除安裝之前的補丁,再安裝新的補丁,解除安裝命令:
$ cd /u01/app/Oracle/Middleware/utils/bsu $ ./bsu.sh -remove -verbose -patchlist=U5I2 -prod_dir=/u01/app/Oracle/Middleware/wlserver_10.3
補丁安裝 - 12.2.1.3.0
weblogic從 12 版本開始,使用OPatch工具進行補丁安裝。
1、OPatch升級
12.2.1.3.0版本補丁需要使用OPatch的版本為 13.9.4.0.0 ,可通過 {ORACLE_HOME}/OPatch/opatch -version 命令檢視當前 OPatch版本,如果版本不夠則需要升級版本。
將該版本OPatch壓縮包下載後會解壓出 opatch_generic.jar ,將其上傳至 {ORACLE_HOME} 目錄,刪除已有的 {ORACLE_HOME}/OPatch/ 目錄(先備份),再執行下列命令,生成新的 {ORACLE_HOME}/OPatch/ 目錄
java -jar opatch_generic.jar -silent oracle_home={ORACLE_HOME}
2. 關閉伺服器
登陸console控制檯,將所有server包括admin server關閉
3. 備份中介軟體目錄(重要)
安裝補丁前請務必備份好中介軟體目錄(是中介軟體目錄不是domain),以便修復過程發生意外可以恢復。假設我們的中介軟體目錄為 /u01/app/Oracle/Middleware
$ cd /u01/app/Oracle/Middleware $ cp -rf Middleware Middleware_bak20190423
備份時間較長,可以先去喝杯咖啡,備份完成後繼續以下步驟。
4、上傳補丁,準備環境
OPatch在伺服器上的安裝路徑為 {ORACLE_HOME}/OPatch/(例如 /u01/Middleware/Oracle_Home/OPatch/)
通過ftp等工具將下載好的補丁檔案 p29016089_122130_Generic.zip
上傳至 {ORACLE_HOME}/PATCH_TOP/目錄下並解壓(如:/u01/Middleware/Oracle_Home/PATCH_TOP),PATCH_TOP目錄如果沒有需要手動建立。如果之前有上傳過補丁,則先將之前的補丁刪除後再上傳。
drwxr-xr-x. 4 oracle oinstall67 Mar6 03:24 29016089 -rw-r--r--. 1 oracle oinstall 39435868 Apr 22 10:06 p29016089_122130_Generic.zip
5、補丁安裝
進入到上一步驟中解壓的補丁編碼目錄中,執行安裝補丁的命令
$ cd {ORACLE_HOME}/PATCH_TOP/29016089/ $ sh {ORACLE_HOME}/OPatch/opatch apply
執行該指令碼後,如果有提示輸入Y/N則全部輸入Y,控制檯輸出 OPatch succeeded
後表示補丁安裝成功。
6、重啟伺服器
補丁安裝成功以後,重啟所有server。
7、解除安裝
如果想要解除安裝補丁,進入補丁目錄下,執行 rollback 解除安裝命令
$ cd {ORACLE_HOME}/PATCH_TOP/29016089/ $ sh {ORACLE_HOME}/OPatch/opatch rollback -id29016089 #29016089是補丁編號(PATCH_ID)
補丁安裝 - 12.1.3.0.0
12.1.3.0.0版本補丁的安裝方式和12.2.1.3.0一樣,只是替換一下補丁,都通過OPatch來安裝補丁。