Linux中WebLogic如何升级
小樊
33
2025-12-14 11:44:29
Linux下WebLogic升级操作指南
一 升级策略与前置检查
- 明确目标:是做补丁集/CPU/PSU更新,还是跨小版本/跨主版本升级。跨版本通常需新建域或使用官方迁移工具,不建议就地替换二进制。
- 兼容性规则:同一Administrative Domain内的所有服务器实例必须处于相同的主版本与次版本;集群内所有实例必须处于相同的补丁集级别;管理服务器补丁集级别需不低于受管服务器。以上为硬性要求,违反会导致域无法启动或异常。
- 版本选择:优先选择当前稳定受支持的版本(如WebLogic 14.1.1或更高),并核对与操作系统、JDK、硬件的官方支持矩阵。
- 备份与变更窗口:全量备份域目录、应用、数据源配置、密钥库、启动脚本、环境变量等;在灰度/测试环境验证后再上生产;安排停机窗口与回滚预案。
二 原地补丁升级步骤 适用于11g与12c
- 通用准备
- 停止服务:先停受管服务器,再停管理服务器;必要时禁用节点管理器自动重启。
- 检查空间与权限:确保ORACLE_HOME/中间件目录有足够空间,执行用户具备读写权限。
- 11g(WebLogic 10.3.x)使用 BSU
- 设置产品目录:例如 export WEBLOGIC_HOME=/u01/app/oracle/middleware/wlserver_10.3
- 查看已打补丁:
- cd $WEBLOGIC_HOME/utils/bsu
- ./bsu.sh -prod_dir=$WEBLOGIC_HOME/wlserver_10.3 -status=applied -verbose -view
- 安装补丁(示例补丁ID为FMJJ):
- 将补丁包解压至 $WEBLOGIC_HOME/utils/bsu/cache_dir
- ./bsu.sh -install -patchlist=FMJJ -patch_download_dir=$WEBLOGIC_HOME/utils/bsu/cache_dir -prod_dir=$WEBLOGIC_HOME/wlserver_10.3 -verbose
- 冲突处理:如报冲突补丁(如RVBS),先卸载再装:
- ./bsu.sh -remove -patchlist=RVBS -prod_dir=$WEBLOGIC_HOME/wlserver_10.3 -verbose
- 验证:
- ./bsu.sh -report -output_format=text | grep --color “FMJJ”
- 12c(WebLogic 12.1.3 及以上)使用 OPatch
- 设置变量:export ORACLE_HOME=/u01/app/oracle/middleware/oracle_common(或实际安装目录)
- 进入OPatch:cd $ORACLE_HOME/OPatch
- 检查与冲突:./opatch lsinventory;必要时先回滚冲突补丁:./opatch rollback -id 25388793
- 打补丁:./opatch apply /path/to/patch/26519417(示例)
- 验证:./opatch lspatches -bugs | grep --color “12.1.3.0.171017”
- 启动与回归:按顺序启动管理服务器→受管服务器→节点管理器;登录控制台检查版本号、补丁列表、数据源、应用部署状态,并进行冒烟测试。
三 跨版本升级路径 重建域或迁移
- 推荐路径
- 准备新环境:在新目录安装目标版本WebLogic,使用与目标JDK匹配的版本;创建新域或按官方指引进行域迁移。
- 迁移应用与配置:优先采用应用重新部署的方式,从旧域导出必要配置(如数据源、JMS、安全领域等)在新域重建;避免直接拷贝旧域目录覆盖新域。
- 兼容性验证:对照官方兼容性说明与升级指南,重点验证持久化数据、生成类、API行为差异;必要时对应用做小幅调整与回归测试。
- 切换上线:在灰度环境充分验证后,短暂停机切换VIP/负载均衡指向新集群,保留旧环境回滚能力。
- 重要提示
- 同一域内严禁混用不同主/次版本;集群内补丁集必须一致。
- 若必须跨大版本,务必阅读对应版本的Upgrade Guide并按兼容性矩阵执行。
四 回滚与常见问题处理
- 回滚方案
- 补丁回滚(OPatch):./opatch rollback -id <BUG_ID>(12c)
- 补丁回滚(BSU):./bsu.sh -remove -patchlist=<PATCH_ID> -prod_dir=…(11g)
- 版本回滚:切回旧域/旧实例,恢复备份的域目录与应用包,按启动顺序恢复服务。
- 常见问题
- 冲突补丁:安装前用 lsinventory/lspatches 检查,按提示先卸载冲突补丁再装。
- 工具依赖缺失:OPatch执行报“fuser could not be located”时,安装psmisc包(yum install -y psmisc),或在极端情况下设置环境变量OPATCH_NO_FUSER=TRUE后再执行(不推荐长期使用)。
- 内存不足:编辑 bsu.sh 调整 MEM_ARGS(如 -Xmx1024m),避免打补丁时OOM。
- 启动顺序错误:务必先管理服务器,再受管服务器,最后节点管理器,否则域可能异常。