悠悠楠杉
CentOS环境下WebLogic升级全流程指南:从准备到验证的深度实践
一、升级前的"健康体检"不可少
在开始升级前,我们的运维团队需要像中医把脉一样对现有环境进行全面诊断。上周刚处理过某金融客户因忽略系统依赖导致升级失败的案例,教训深刻。建议重点检查:
- 系统资源审计(实测案例):bash
内存检查(建议可用内存>8GB)
free -h
存储空间验证(/tmp至少10GB)
df -h /tmp
JDK版本兼容性(WebLogic 14要求JDK8u241+)
java -version
- 现有环境快照:bash
创建配置备份目录
mkdir /backup/weblogic_$(date +%Y%m%d)
备份domain配置
tar -zcpf /backup/weblogic$(date +%Y%m%d)/domain.tar.gz $DOMAINHOME
记录当前补丁版本
$ORACLE_HOME/OPatch/opatch lsinventory
二、升级包获取的"门道"
很多新手会直接到Oracle官网下载最新补丁,但去年某次升级事故让我们意识到:并非最新就是最合适。建议:
通过MOS(My Oracle Support)查询推荐补丁集:
- 登录后搜索"WebLogic Recommended Patches"
- 根据当前版本选择"Rolling Patch"或"Patch Set Update"
下载时注意文件校验(曾遇过下载损坏导致安装失败):bash
校验SHA256
sha256sum fmw14.1.1.0.0wlslitegeneric.jar
对比MOS提供的校验值
三、实战升级六步法
以下为经过20+次生产验证的标准化流程(以14.1.1升级为例):
- 环境隔离:bash
停止所有受管节点
$DOMAIN_HOME/bin/stopManagedWebLogic.sh node1
停止AdminServer
$DOMAIN_HOME/bin/stopWebLogic.sh
- 补丁应用(关键步骤):bash
创建OPatch回滚点
$ORACLE_HOME/OPatch/opatch util createRollback -id 28186730
应用补丁(注意jdk路径参数)
java -jar p28186730141100Generic.jar -jreLoc $JAVA_HOME
- 配置迁移(易错点):bash
只迁移修改过的配置文件
cp /backup/weblogic20230815/config/jdbc/*.xml $DOMAINHOME/config/jdbc/
特别注意setDomainEnv.sh中的内存参数
diff /backup/weblogic20230815/bin/setDomainEnv.sh $DOMAINHOME/bin/
- 逐节点验证:bash
先启动AdminServer观察日志
tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
按业务优先级启动受管节点
四、避坑指南(血泪经验)
- 时区陷阱:CentOS默认时区可能引发日志时间错乱bash
升级前统一时区
timedatectl set-timezone Asia/Shanghai
- 文件句柄限制:高并发场景需调整bash
修改limits.conf
echo "weblogic soft nofile 65535" >> /etc/security/limits.conf
- SELinux冲突:建议临时关闭
bash setenforce 0
五、升级后"保健"措施
- 健康检查脚本(保存为check_wls.sh):bash
!/bin/bash
ps -ef | grep -i weblogic | grep -v grep || echo "WebLogic process not found!"
curl -I http://localhost:7001/console | grep 200 || echo "Console unavailable"
- 性能基准测试:bash
使用wlst执行压测
java weblogic.WLST load_test.py
- 监控指标观察期(至少72小时):
- JVM GC频率变化
- JDBC连接池利用率
- 线程池等待数
结语
WebLogic升级不是简单的版本替换,而是涉及系统、网络、存储的全链路工程。记得去年双十一前某次升级,因为提前做了全链路压测,成功避免了促销期间的性能瓶颈。建议每次升级后更新《中间件变更手册》,记录实际遇到的特殊情况和解决方案,这些实战经验才是运维人员最宝贵的财富。