CentOS 上 WebLogic 更新补丁实操指南
一 准备与版本识别
- 明确版本分支:WebLogic 10.3.6 使用 bsu.sh 打补丁;WebLogic 12c(12.1.3/12.2.1.x) 使用 OPatch 打补丁。先确认版本再执行对应流程。
- 下载补丁:从 Oracle Critical Patch Update 页面或 My Oracle Support 获取与你的版本、JDK 兼容的补丁(需授权账号)。
- 环境检查:准备 JDK(与补丁要求一致)、确认 ORACLE_HOME/MW_HOME/WL_HOME 路径、确保磁盘与权限充足。
- 备份与变更记录:全量备份 Middleware 或 ORACLE_HOME 目录,保留回滚方案与操作步骤记录。
二 通用操作流程
- 停止服务:干净停止 AdminServer 与所有 Managed Server(必要时用 jps -v 确认无 java 进程残留)。
- 备份:对 Middleware 或 ORACLE_HOME 做完整备份(离线拷贝或快照)。
- 安装补丁:按版本执行对应工具(见下一节)。
- 冲突检查与解决:遇到冲突先卸载冲突补丁或按 README 调整顺序再安装。
- 验证:使用版本/清单命令核对补丁是否生效。
- 启动与回归:启动域,访问控制台与关键业务,观察日志无异常。
三 按版本执行安装
- WebLogic 12c(12.1.3 / 12.2.1.x,使用 OPatch)
- 升级 OPatch(如要求):
- 查看版本:${ORACLE_HOME}/OPatch/opatch version
- 升级方法:将下载的 opatch_generic.jar 上传至 ${ORACLE_HOME},备份并删除旧 ${ORACLE_HOME}/OPatch,执行:
java -jar opatch_generic.jar -silent oracle_home=${ORACLE_HOME}
- 应用补丁:
cd ${ORACLE_HOME}/OPatch
./opatch apply /path/to/patch.zip
- 验证:
./opatch lsinventory
./opatch lspatches
- 回滚(如需要):
./opatch rollback -id <BUG_ID>
- WebLogic 10.3.6(使用 bsu.sh)
- 调整内存(可选,提升大补丁成功率):编辑 ${MW_HOME}/utils/bsu/bsu.sh,设置
MEM_ARGS=“-Xms1024m -Xmx4096m”
- 上传与解压补丁到:${MW_HOME}/utils/bsu/cache_dir
- 安装补丁:
cd ${MW_HOME}/utils/bsu
./bsu.sh -install -patch_download_dir=${MW_HOME}/utils/bsu/cache_dir -patchlist=<PATCH_ID> -prod_dir=${WL_HOME}
- 验证:
${WL_HOME}/server/bin/setWLSEnv.sh
java weblogic.version
- 回滚(如需要):
./bsu.sh -remove -patchlist=<PATCH_ID> -prod_dir=${WL_HOME}
四 常见问题与处理
- OPatch 版本过低:补丁 README 会注明所需 OPatch 版本,按提示升级后再执行。
- 补丁冲突:OPatch 检测冲突需先卸载冲突补丁;bsu 亦可通过 -remove 回滚后再装新补丁。
- bsu 检测冲突阶段很慢:属正常行为,请勿中断,等待冲突检测完成。
- fuser 不可用导致 OPatch 失败:安装 psmisc(yum install -y psmisc),或临时设置环境变量 OPATCH_NO_FUSER=TRUE 再执行。
- 内存不足:适当增大 bsu.sh 的 MEM_ARGS(如 -Xmx4096m)后重试。
五 生产变更建议
- 先在测试环境验证补丁的兼容性与回退路径;变更窗口内严格按步骤执行,变更前后保留完整日志与清单快照;必要时灰度/分批上线,出现异常立即按回滚方案恢复。