生产上经常会进行weblogic补丁升级操作,本文以升级补丁EJUW为例,weblogic版本为10.3.6.0.
Weblogic版本查询
weblogic版本查询方式:
1.命令方式1
cd /usr/weblogic/Oracle/Middleware/utils/bsu
./bsu.sh -prod_dir=/usr/weblogic/Oracle/Middleware/wlserver_10.3/ -status=applied -verbose -view
/usr/weblogic/Oracle/Middleware为weblogic安装目录
2.命令方式2
cd /usr/weblogic/Oracle/Middleware/wlserver_10.3/server/bin
source ./setWLSEnv.sh
java weblogic.version
3.web控台方式
在weblogic控制台主页 >服务器概要 >AdminServer >监视 >一般信息中也能查到版本
补丁下载
参考链接:https://blog.csdn.net/qshpeng/article/details/77494188
补丁安装
以下操作都在启动weblogic服务的应用用户下进行
cd /usr/weblogic/Oracle/Middleware/utils/bsu
如果有使用过bsu.sh,则会有cache_dir目录,否则请新建或执行bsu.sh生成。
上传patch至cache_dir目录并解压
unzip p20780171_1036_Generic_psu12.zip
解压出来的jar名就是Patch ID,是后面安装的参数。
停止Admin和各server进程,确认无weblogic进程。
补丁安装:
cd ../
./bsu.sh -install -patch_download_dir=/usr/weblogic/Oracle/Middleware/utils/bsu/cache_dir -patchlist=EJUW -prod_dir=/usr/weblogic/Oracle/Middleware/wlserver_10.3 -verbose
启动weblogic,在启动日志中有已打补丁的信息。
确认修复的bug:
source /usr/weblogic/Oracle/Middleware/wlserver_10.3/server/bin/setWLSEnv.sh
java /usr/weblogic/Oracle/Middleware/wlserver_10.3/server/bin/weblogic.version
./bsu.sh -prod_dir=/usr/weblogic/Oracle/Middleware/wlserver_10.3/ -status=applied -verbose -view
控台查看:
启动Admin和各server进程。
内存溢出
在执行补丁安装过程中可能会报内存溢出错误:‘Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded’;解决办法:
view bsu.sh
MEM_ARGS="-Xms4096m -Xmx4096m"
编辑bsu.sh,将参数-Xms和-Xmx调大。
补丁卸载
新的补丁包安装时会与之前的补丁包有冲突,需卸载之前的升级包:
cd /usr/weblogic/Oracle/Middleware/utils/bsu
./bsu.sh -remove -patchlist=EJUW -prod_dir=/usr/weblogic/Oracle/Middleware/wlserver_10.3 -verbose
将安装命令的参数install改为remove,去掉patch_download_dir参数即是卸载命令。
卸载完再重新执行补丁升级步骤即可。
补丁卸载和安装都需要一定时间,请耐心等待。