乐趣区

WebLogic服务器打补丁11g12c

背景

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 补丁下载
  • 12.1.3.0.0 补丁下载
  • 12.2.1.3.0 补丁下载

补丁安装 – 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 Feb  4 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 oinstall     61197 Apr 15 17:56 README.txt
-rw-r--r-- 1 oracle oinstall  93124490 Feb  4 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 13.9.4.0.0 下载

将该版本 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 oinstall       67 Mar  6 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 -id  29016089

#29016089 是补丁编号 (PATCH_ID)

补丁安装 – 12.1.3.0.0

12.1.3.0.0 版本补丁的安装方式和 12.2.1.3.0 一样,只是替换一下补丁,都通过 OPatch 来安装补丁。

退出移动版