Ubuntu上更新 WebLogic 补丁的标准流程
一 准备与环境确认
- 确认版本与目录:记录 WebLogic 主版本(如 10.3.6、12.1.3)与安装路径(如 $WL_HOME/wlserver_10.3 或 $MW_HOME/wlserver)。
- 准备账号与补丁:使用具有 Oracle Support 权限的账号从 My Oracle Support 下载与当前版本匹配的 PSU/CPU/Overlay 补丁(ZIP 包内含 JAR 与说明)。
- 选择工具:
- WebLogic 10.3.6 使用 BSU(位于 $WL_HOME/utils/bsu)。
- WebLogic 12c(12.1.3 及以上) 使用 OPatch(位于 $ORACLE_HOME/OPatch)。
- 规划维护窗口与回退方案:提前通知业务,准备 完整备份(域目录、配置、应用、数据库)与回退脚本。
二 10.3.6 使用 BSU 安装补丁(含冲突与内存要点)
- 停止服务与清理进程:确保 AdminServer 与所有受管 Server 已停止,排查并结束残留 java 进程,避免文件占用导致安装失败。
- 查看已打补丁:
- 命令:cd $WL_HOME/utils/bsu
- 命令:./bsu.sh -view -status=applied -prod_dir=$WL_HOME/wlserver_10.3
- 准备补丁文件:将下载的 ZIP 解压到 $WL_HOME/utils/bsu/cache_dir(解压后应能看到 .jar 与说明文件)。
- 调整内存(常见 OOM 场景):编辑 bsu.sh,适度增大 JVM 堆(如 -Xmx2048m/-Xms4096m 等),再执行安装。
- 安装示例:
- 命令:./bsu.sh -install -patch_download_dir=$WL_HOME/utils/bsu/cache_dir -patchlist=XXXX -prod_dir=$WL_HOME/wlserver_10.3 -verbose
- 冲突处理:若提示互斥(如 “Patch XXXX is mutually exclusive …”),需先按依赖顺序卸载冲突补丁,再安装新补丁;不要一次性卸载多个,按提示逐个处理依赖。
- 卸载示例:./bsu.sh -remove -patchlist=OLDID -prod_dir=$WL_HOME/wlserver_10.3 -verbose
- 验证:再次执行 “查看已打补丁” 命令,确认 Patch ID、版本与时间 正确。
三 12c 及以上使用 OPatch 安装补丁
- 停止服务:确保 AdminServer 与受管 Server 全部停止。
- 检查 OPatch 版本:cd $ORACLE_HOME/OPatch;执行:./opatch version(必要时先升级 OPatch)。
- 应用补丁:
- 命令:cd <补丁解压目录>
- 命令:./opatch apply(按交互提示完成;静默可用 -silent 参数并配合响应文件)。
- 回退:./opatch rollback -id=<补丁号>。
- 验证:启动域,查看 $DOMAIN_HOME/servers/AdminServer/logs/startup.log 与 server.log 中构建/补丁信息。
四 验证与回退
- 启动与日志:按顺序启动 AdminServer → 受管 Server,检查 启动日志 是否报错,确认 补丁号/构建时间 生效。
- 功能回归:对关键业务做 冒烟测试,关注 JDBC、JMS、EJB、WebService、数据源、集群 等是否正常。
- 回退预案:若出现异常,按备份与回退步骤恢复 域目录/补丁层,必要时先卸载最新补丁再恢复至目标版本。
五 常见坑位与实用建议
- 互斥冲突必须先卸载:出现 “mutually exclusive / Conflict(s) detected” 时,按提示的依赖顺序逐个卸载旧补丁,再安装新补丁,避免一次性传多个导致检测耗时或失败。
- 进程未停干净导致失败:安装/卸载前务必确认 无 java/weblogic 进程 占用相关目录与文件。
- BSU 内存不足:安装大补丁时编辑 bsu.sh 提升 JVM 堆,否则易 OOM 或异常中断。
- 补丁包放置路径:BSU 必须将 ZIP 解压到 cache_dir,命令中的 -patch_download_dir 指向该目录。
- 下载与匹配:从 Oracle Support 获取与 版本/PS/CPU 周期 匹配的补丁,避免错配导致安装失败或运行异常。