12c左右的版本打补丁姿势会有不同变化,我的是weblogic 12.3.1.0,
必须将Opatch的版本升级13.9以上,要不然无法使用Opatch来打补丁。
如果需要下载相关的补丁和升级.zip可以转至这里下载
注意:
1>所有的命令都是英语模式,所有的命令单词之间都是有空格
2>发的三个压缩包,第一个 P28186730_139424_Generic.zip是用来升级weblogic打补丁工具Opath的,必须先升级Opatch再用Opatch来打补丁,解压之后进入会得到6880880文件夹
3>我的目录可能与你的目录不太相同,你的可能是 D:\GWSDE\Middleware\Oralce_home这样的,那么你的Oracle_home = 我的weblogic 其他同理做改变
3>第二个P29204657_121300_Generic.zip是补丁,解压得到29204657文件夹,主要修复:通过反序列化JtaTransactionManager类实现jndi注入,覆盖以前的修复内容详情参见附件:29204657修复.txt
3>第三个P31178516_121300_Generic.zip是补丁,解压得到31178516文件夹,主要修复:Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。覆盖以前的修复内容详情参见附件:31178516修复.txt
第一步:关闭weblogic服务器
1.>查看本地有几个weblogic的服务在运行
win+R 键打开运行输入cmd 确定执行
有两种方式查看本地有几个服务器及对应端口
1方法最好最准确,但必须知道对应的端口,2是应对不清楚端口,且不清楚几个的情况
- 桌面上有对应的stopweblogic.cmd,或者7001.cmd这样的,有几个那就有几个对应的服务在开启,
使用命令netstat -ano | findst 7001 7001是端口,查看是否这个端口是否开启是否关闭,最方便快捷准确,7002,7003,7004也是一样的,
2>如果桌面没有对应的脚本,在命令窗口执行tasklist | findstr java
如果没有任何输出那么本地没有weblogic在运行,
如果有内容 那么记下有几个java应用,分别记下他的PID号码如下图8664,方便后续对比。
如果有多个,那就是运行了多个实例,每个PID都要记下来
2.>找到weblogic 目录
打补丁之前必须先关闭weblogic,如果多个端口都在运行实例,必须所有都关闭,
weblogic目录必须要找到,一般在D:E:F:盘中一层或者两层目录即可找到
实在不知道的可以在 进入D:或者E: 在右上角搜索weblogic 第一个结果就是点击进入
- > 进入目录中 点击关闭脚本
桌面上如果有stopweblogic7001.cmd stopweblogic7002.cmd,直接关闭,就可以不用参照以下步骤
再然后到 weblogic下找到user_projects-->domains-->base_domain-->bin
详细的目录如下图,如果有多个 base_domain,例如
Base_domain7001、 base_domain7002.......的话每个的bin中的stopWebLogic.cmd都需要点击执
执行完一个再执行一个
4.> 查看是否执行成功
执行完之后,想要确定是否执行成功,我们需要下边的步骤
同样的有两种方式,对应上边两种查看的方式,
win+R 键打开运行输入cmd 确定执行
1>对应上边的 netstat -ano | findstr 7001 7002、7003各个端口查看有无输出,是否关闭。
2>在命令窗口执行tasklist | findstr java
如果没有任何输出那么关闭weblogic成功 准备第二步----升级Opatch
如果有内容 那么对照上一步找到的PID查看是否少了的个数与你点击cmd关闭的个数相对应,如关闭了四个,那就应该本来八个减四个还有四个,代表关闭四个weblogic成功。
如果最初有八个,关闭了四个,命令下还有五个,那就代表还有一个weblogic没有成功关闭。 不要关闭非weblogic的应用,防止其他的应用失效
记下那个pid 8664
执行 taskkill /pid 8664 -t -f
第二步:升级Opatch版本
- 找到本地的JDK目录 将JDK粘贴出来备用
一般在C:\Program File\Java\ 下,将整个JDK复制到和weblogic平行目录中
再将JDK目录名粘贴出来,如下图,后面需要用到这个路径的名字
D:\software\jdk1.8.0_131
- 将我们给的三个压缩包解压,会得到三个p开头的目录,
进入到其中,一个目录中会有一个,总共得到三个数字开头的文件夹,
- 进入weblogic目录中的Opatch目录将上一步的三个数字文件夹放入其中
目录如下图
这样的话在weblogic\Opatch 目录下就有三个数字文件夹了,保证有三个就可以开始下边的操作了。
- 进入6880880 文件夹
摁住 Ctrl + Shift 右键空白处,点击 “在此处打开命令窗口(W)”
- 升级Opatch 找到之前第一小步的JDK的目录粘贴过来执行命令
D:\software\weblogic\OPatch\6880880>D:\software\jdk1.8.0_131\bin\java.exe -jar opatch_generic.jar
上面的蓝色部分是你自己的JDK目录就是第一步中得到的JDK目录,加上\bin\java.exe
而这个opatch_generic.jar 是这个目录下的jar包
可以输入一个首字母o用tab键自动补全来快速输入
三部分之间都有空格,命令完成之后回车键执行
进入安装界面之后选择安装位置
选择weblogic 所在主目录 进行安装
我的就是 D:\software\weblogic
目录的选择就是你安装weblogic的目录,点击浏览选择成你的weblogic目录,选择到这一层然后下一步
语言选择不用选择直接下一步,
自动更新选择跳过自动更新,
安装类型选择不用选直接下一步
Java主目录位置,选择我们第一步粘贴JDK的位置,切记这个路径不能有中文也不能有空格,像C:\Program File\这种都会最后失败。
选择JDK的安装目录和下图标示的这一样就可以,
之后一直下一步就可以
完成之后进入Opatch目录,
依然是 Ctrl+Shift 右击空白处,点击“在此处执行窗口命令(W)”
执行 opatch version 如果是13.9.4.2.4那么升级Opatch就成功了。
第三步 安装补丁
除了6880880文件不用再操作了,剩下两个都需要操作一遍,我们先用29204657作为示例,
- 进入29204657 文件夹
同样,Ctrl+Shift 鼠标右击空白处--->在此处执行命令窗口
..\opatch apply -jdk D:\software\jdk1.8.0_1.31
四部分之间都有空格,蓝色部分是之前的JDK路径 替换成你本地的JDK, 之后回车键执行,
会询问你两次是否继续, y|n 都是点击y即可,小写的,
出现 OPatch succeeded就成功了,
同样的做法再去31178516 文件夹中操作一遍,必须进入文件夹,再
Ctrl+Shift 鼠标右击空白处,在此处执行命令窗口
第四步 查看是否安装成功
安装完成之后查看是否安装成功
在31178516这个命令窗口执行命令 ..\Opatch lsinventory
如果有31178516 和23596385的话,就证明安装补丁成功