打DPBP 170418补丁

上一篇文章中提到,从oracle 12.1.0.2之后,oracle就推荐打Database Proactive Bundle Patches(简称DPBP,参考Oracle Database – Overview of Database Patch Delivery Methods (Doc ID 1962125.1))

打补丁的过程,可以参考补丁的readme.html文档,这里简单记录一下打DPBP 170418补丁的过程。
整体来说:
DPBP 170418,补丁号为25433352,里面包含4个大的补丁包。

25397136 这其实是db的补丁集。但是不仅仅要打在db home,grid home也是需要的。
25481150 这其实是个grid的补丁集,OCW的意思是Oracle Cluster Ware,所以你从这个名字中也可以猜到是for grid用的。但是不仅仅要打在grid home,db home也是需要的。
25363750 这个是for ACFS的补丁集
21436941 这个是DBWLM,即DataBase WorkLoad Management组件。

步骤为:

1. 升级opatch到最新版本。注,在opatch 12.2.0.1.5之前,执行opatchauto时需要加-ocmrf [ocm response file]参数。如果使用这个版本之后,就不需要再加响应文件的参数了。另外,170418这个DPBP要求使用opatch版本至少为12.2.0.1.7。

2. [GRID_HOME]/OPatch/opatchauto apply [UNZIPPED_PATCH_LOCATION]/25433352。注意,这个命令需要在各个节点上依次(非并行)执行。执行的时候,会bring down crs和database,会给grid home和oracle home打上补丁。依次打的方式,也减少了停机时间。

3. datapatch -verbose。注,上面说了依次打减少了停机时间,但是停机时间还是需要的,就是在这里的运行datapatch的时间。这个步骤是升级数据字典,针对整个database的数据字典,因此只需在一个节点上跑就可以了。主要注意的是,如果是cdb模式,需要alter pluggable database all open,打开所有的pdb之后,再运行datapatch。

4. 打完之后建议用orachk检查一下。

日志如下:
运行前的信息

节点1的opatch版本检查,节点2,节点3的类似检查。

节点1的opatchauto,节点2,节点3的类似操作。

节点1的datapatch,节点2,节点3无需操作。

最后在用orachk检查一下。

题外话,你可能会觉得奇怪,我db打了25397136和25481150两个补丁,为什么我只看到了PATCH_ID为25397136的注册信息,没看到25481150的信息?

这是因为,25481150没有产生需要执行的sqlpatch脚本,首先,你可以在$ORACLE_HOME/sqlpatch下是没有看到与25481150相关的需要执行的脚本的。

而为什么没有在$ORACLE_HOME/sqlpatch下生产脚本,这是由于25481150这个补丁不需要生产执行的脚本。我们可以通过查验action.xml确认。

我们看到是不包含放到sqlpatch目录下的操作。(一般会是onewaycopy具体的脚本)

注:补丁的所有操作,都会写在这个action.xml文件里面。如备份文件,拷贝文件,删除文件,编译文件等等。注意需要最新的opatch,才能执行最新的action.xml。

相关文章

一条评论

回复 昆明一方石 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据