首先把补丁安装的几个步骤写下,很多人会忽略很多细节,等安装报错了才会去改些参数等信息。这里把我的安装步骤具体写下。
Weblogic PSU补丁安装过程
1、 修改增加内存:
vi /oracle/weblogic/wls1036/utils/bsu/bsu.sh
“$JAVA_HOME/bin/java” -Xms1521m -Xmx1521m -jar patch-client.jar $*
2、查看版本语句:
/oracle/weblogic/wls1036/utils/bsu/bsu.sh -view -prod_dir=/oracle/weblogic/wls1036/wlserver_10.3 -status=applied -verbose
如果有老补丁已经安装请卸载该补丁后再安装最新补丁,防止冲突异常。
3、新建目录cache_dir:
cd /oracle/weblogic/wls1036/utils/bsu
mkdir cache_dir
4、上传补丁包到cache_dir目录并解压:
unzip p25388747_1036_Generic.zip
5、确保xml文件patch-catalog.xml和patch-catalog_xxxx.xml文件在patch_download_dir(cache_dir)目录:
ll *.xml
注意:
patch-catalog.xml文件,第一次安装会自动生成,确保这个文件在patch_download_dir(cache_dir)目录,日后升级都不要动此文件,要保留。
patch-catalog_xxxx.xml文件,从My Oracle
Support(MOS)下载的每个补丁都包含。
6、补丁安装语句:
/oracle/weblogic/wls1036/utils/bsu/bsu.sh -install -patch_download_dir=/oracle/weblogic/wls1036/utils/bsu/cache_dir -patchlist=RVBS -prod_dir=/oracle/weblogic/wls1036/wlserver_10.3
注意:
patchlist=RVBS //补丁号,也就是解压后的补丁包(RVBS.jar)的名称
patch_download_dir=/oracle/weblogic/wls1036/utils/bsu/cache_dir
//补丁解压到当前目录
prod_dir=/oracle/weblogic/wls1036/wlserver_10.3 //指定weblogic home下 wlserver_10.3目录
7、查看补丁是否安装语句:
bsu.sh -view -prod_dir=/Oracle/Middleware/wlserver_10.3 -status=applied -verbose
查到到patch id是RVBS //补丁号 说明补丁RVBS安装成功。
安装补丁的基本过程就是些,目录及参数仅供参考。
Weblogic PSU补丁安装常见问题
碰见的问题:bsu执行view查看补丁,无法查看到补丁id,但是控制台可以查看到已打补丁。
那么问题来,为什么一定要查看到补丁id?,我们查它的目的是什么?
1.
查看到补丁id,说明补丁被Smart Update可以识别到。
2.
说明补丁被安装成功被使用的。
3.
查补丁目的是为了确定这个补丁是否和我们即将要安装的补丁是否冲突。如果新补丁包含老的补丁,需要卸载后再安装新补丁。
下面具体介绍碰见问题及处理过程。
weblogic安装补丁查看信息问题
执行查看补丁信息,目的确定是否是最新补丁
./bsu.sh -view -prod_dir=/home/wls1036/Oracle/Middleware/wlserver_10.3 -patch_download_dir=/home/wls1036/Oracle/Middleware/utils/bsu/cache_dir -status=applied -verbose
Print 信息:
Patch ID:后续的没有打印,说明没有发现Patch ID。但是很确定之前打过补丁的,其它机器操作没有碰见问题,只有这一台碰见问题。
Smart Update无法识别到Patch ID,第一个想到的就是patch_download_dir(cache_dir)下有没有xml文件。
首先想到的解决办法,一直使用的方式。
确保始终将文件”patch-catalog.xml”保留在”Download_Dir”(/home/wls1036/Oracle/Middleware/utils/bsu/cache_dir)中,因为它是第一次生成的。
从My Oracle Support(MOS)下载的每个补丁都包含patch-catalog_xxxx.xml文件。 需要将此文件与修补程序一起复制到cache_dir,以便Smart Update可以确定哪个修补程序目录最新。
不要在cache_dir中重命名patch-catalog.xml,也不要重命名patch-catalog_xxxx.xml。 只需将patch-catalog_xxxx.xml与从MOS下载的每个补丁一起复制到cache_dir即可。
上面内容具体参考:How to Make Sure to Display Correct
Patch Information by BSU Command? (文档 ID 2138230.1)
在确定patch_download_dir(cache_dir)目录下没有包含之前的xml,把之前安装的补丁解压到patch_download_dir(cache_dir)目录。
重新执行令,Smart Update依然无法识别到Patch ID。
这时候我在想不应该是这样的,之前每次安装这样操作都能识别到的,也没有异常现象啊。我开始怀疑是不是对方命令有问题,我仔细检查,并加了几个参数,还是没有解决问题。
这时候我怀疑patch_download_dir(cache_dir)目录指定的不对,毕竟是他们说的没有我们自己实际操作,大家有没有仔细看Print 信息,Print 信息中Download_Dir指定的就是我们使用的/home/wls1036/Oracle/Middleware/utils/bsu/cache_dir目录,这时候我又想到这个目录是否和非Windows系统下os用户$HOME/.java/.userPrefs/com/bea/plateng/patch/?app?wls1033?utils?bsu/prefs.xml文件中的指定的目录是否一致。
可以确定指定的目录是一致的并没有问题。
这时候我想xml文件和downloaddir目录都已经具备安装补丁条件,不应该出现这种问题。
这情况第一次见,执行又没有异常信息,很是苦恼。
毕竟是程序,我在想会不会有debug方式能查出点猫腻呢。于是仔细查看下
bsu.sh命令。
发现bsu.sh日志可以打印debug ,真是太好了,于是加上这个参数再次执行查看log。
./bsu.sh -view -prod_dir=/home/wls1036/Oracle/Middleware/wlserver_10.3 -patch_download_dir=/home/wls1036/Oracle/Middleware/utils/bsu/cache_dir -status=applied -verbose -log=bsu.log -log_priority=debug
查看bsu.log发现异常信息。
异常显示没有权限,确认用户及安装介质、补丁、目录权限等都没有问题。
最后怀疑是bug,查mos发现果然 触发了bug。
Mos解释原因:
Per Bug 17669419:SMARTUPDATE未能应用PSU PATCH L51R
看起来BSU正在尝试创建”.temp”文件。
由于权限问题,此调用失败。 所以看起来是这个用户无法写入默认的tmp目录。
解决办法:
指定-Djava.io.tmpdir系统属性并将其指向非默认可写目录,然后重新安装补丁。
创建tmp目录:
cd /home/wls1036/Oracle/Middleware/utils/bsu/cache_dir/
mkdir tmp
修改bsh.sh脚本添加-Djava.io.tmpdir参数
vi /oracle/weblogic/wls1036/utils/bsu/bsu.sh
“$JAVA_HOME/bin/java” -Xms1521m -Xmx1521m -Djava.io.tmpdir=/home/wls1036/Oracle/Middleware/utils/bsu/cache_dir/tmp -jar patch-client.jar $*
里问题解决了,可以查看到Patch ID,可以卸载Patch ID补丁了。
可以查看到正确的输出信息:
weblogic安装补丁后问题
一般安装补丁很少碰见问题,主要碰见问题就是在上一节”查看weblogic安装补丁信息问题”多一些。
2018年7月17日补丁季度发布,不知道大家有没有注意到在7月17日下午又发了一个补丁”p28168795_1036_Generic样本版补丁”。
这个样本版补丁安装后,adminServer不识别config.xml中的cache-in-app-directory描述符。
具体原因我就不写了,有兴趣大家看下mos文章了解下:After rollback of PSU2+ on WLS 10.3.6,
“java.lang.AssertionError: weblogic.management.provider.EditFailedException”
error while starting AdminServer (文档 ID 2230967.1)
总结
安装补丁无外乎就这些情况,安装问题不用着急,根据不同情况不同解决吧。
Weblogic12c补丁安装已经使用opatch安装,对oracle数据库补丁安装熟悉的的可能更好上手,Weblogic12c目前常见问题是opatch组件的版本问题,下载需要单独针对weblogic版本的opatch下载,这地方容易下错版本,可以看下补丁包中的readme去具体下载。