PSU/RU/RUR
PSU(Patch Set Update):季度补丁包,包含了bug的修复。
RU(Release Update):季度补丁包,包含查询优化器修复、功能修复、安全修复、回退修复。
RUR(Release Update Revision):季度补丁包的修复,包含安全修复、回退修复。
从12.2.0.2开始,Oracle Database开始采用RU(Release Update)和RUR(Release Update Revision)的方式发布补丁,不再使用PSU的方式。升级后的方式更有力于BUG的处理,PSU方式下如果补丁自身存在BUG只能通过单独安装新的补丁或大版本PSU进行解决,RU方式下,补丁自身的BUG或问题可通过RUR补丁进行修复,并且可以互相切换,但前提是新的patch必须是之前patch的超集,即RU应先打,RUR后打,否则会出现ORA-15018: Diskgroup can not be creatd、**ORA-15137: cluster in rolling patch**错误。
建议阅读MOS文档:Release Update介绍以及FAQ (Doc ID 2289879.1)
Q1: 是否每年的初始,新功能的数据库版本发布也会同时发布?A: 初始的新功能版本比如18.1和19.1并不会发布RevisionsQ2: 我想了解更多的信息,比如对于non-Cloud用户来说 初始版本 的发布日期。A: 没有计划针对初始生产版本(也称为18.1、19.1等)发布Revisions,因为初始生产版本仅适用于Oracle Cloud部署。然后在下一个季度里,on premise的版本才会发布,比如 release 18.2 在 2018, 或者 19.2 在 2019, 等等。 Oracle不能更具体地确定何时为非Cloud客户提供这些本地版本Q3: 在 bug 的修复被并入 Update 及新版本之前,是否仍然可以申请单独的 bug 修复?A: 是的。只要技术上可行的话,可以在支持版本的 Update 和 Revision 上申请临时补丁。Q4: 替代临时补丁是否可以在Updates和Revisions上可用?A: 替代临时补丁只在Updates上可用,在Revisions上不可用。请参考Note 1998563.1 - Proactive Replacement Interim Patches for Conflicts with Database Proactive PatchesQ5: 客户是否被要求应用新的Updates 或者 Revisions 来修复一些新的 bug?A: 不。 - 不要求为了修复新的 bug 就去应用 Updates 或者 Revisions 。然而,Oracle 强烈建议客户尽可能保持最新的 Updates / Revisions 以维持最稳定的系统,避免触发已知 bug 或者安全问题。Q6: Update中是否会包含新特性?A:小的重要的 Cloud 特性会不定期地包含到 Update 中。Q7: Revision中是否会包含新特性?A: 不会。Q8: 每个Update会发布多少Revisions ?A: 每个Update会在发布后六个月内提供Revisions ,每个Update会发布对应的2个单独的,季度发布的Revisions 。Q9: 对于每个 annual new features Release 会发布多少 Updates?A: 只要这个annual release仍是被支持的,我们就会一直发布 Updates,至少在下个annual Release发布之后的2年内。这意味着对于每一个annual new features Release都会至少发布3年 Updates。Q10: Revisions 是overlays补丁还是一个完全的补丁?A: Revisions 不是overlay补丁。 它们是完全的补丁。Q11: 在没有先应用对应的Update的情况下,是否可以安装这个Update对应的Revision ?A: 是的. 不需要先安装Update。Q12: Release Updates 是累积的吗?A: 是的。比如,7月份的 Release Update patch 包含之前所有的 Release Updates 中包含的补丁。Q13: Update 和 Revision在补丁的内容上有什么主要的不同?A: Revision 包含对 Update 的安全性和回退修复,将 Update 的生命周期延长两个季度,可以让数据库保持最新的安全修复。每个 Revision 只针对特定的 Update。Q14: 客户是否可以在 Updates 和 Revisions 之间来回切换?A: 是的。 只要客户选择的版本是另一个的累积,那么就可以在 Updates 和 Revisions 之间切换。一个简单的公式就是在相同的年度发布的情况下,把目标以及源库的版本号的后两个部分相加。如果目标版本号的后两个部分相加大于源库版本号的后两个部分相加,那么就可以应用目标版本;否则安装会失败。例 1:源版本 - 18.2.2 <<<<< 第二部分和第三部分的和是 "4"目标版本 - 18.5.0 <<<<< 第二部分和第三部分的和是 "5"结论: 目标版本 "5" 比源版本 "4" 大,所以可以应用目标版本例 2:源版本 - 18.2.2 <<<<< 第二部分和第三部分的和是 "4"目标版本 - 18.3.0 <<<<< 第二部分和第三部分的和是"3"结论: 目标版本 "3" 比源版本 "4" 小所以不能安装目标版本,会出错Q15: 从 Update 转换向相同季度发布的 Revision 会怎样?比如,从 18.5.0到18.4.1? 虽然后两位的数的和都是5,但是从 "high-priority non-security fixes" 的角度来看,却是倒退了一个季度?A: 就像在问题里提到的情况,如果从"high-priority non-security fixes"的角度想后退一个季度,那么Opatch tool会报错退出 - 声明要打的 Revision 是已经安装了 Update 的子集。Q16: 12.2.0.1会发生什么变化?A: 2017年7月对于 12.2.0.1 版本,Oracle 将发布 Database Update,Grid Infrastructure Update,OJVM Update。 12.2.0.1 版本将不会再有 PSU 或者 Bundle Patch。 2017年10月,计划发布在 Database July 2017 Release Update 上的第一个 Revision。 同样的,2018年1月,计划发布 Database July 2017 Release Update 上的第二个 Revision 。 在上面的图1中也反映了这一点。如果需要的话,Grid Infrastructure 和 OJVM 的 Revisions 也计划以相似的方式提供。Q17: 那么12.2.0.2和18c本质上是同一件事,对吗?A: 不,他们不是。 如果仅将18c视为12.2.0.2的不同标签,您将感到困惑。 您需要将12.2.0.1视为12.2的最终版本,并意识到没有Oracle Database 12.2.0.2这个版本。 从12.2.0.2开始,Oracle完全更改了发布Oracle数据库软件的范例。 该新范例就是本文档中所描述的。Q18: 数据库 12.1 和 11.2 版本会受到影响吗?A: 不会。本文所述的更改只适用于数据库和 GI(Grid Infrastructure)12.2 及之后版本。数据库 12.1 和 11.2 版本仍然使用传统的 PSU/BP 流程以及版本编号系统。Q19: 季度的 CPU 会有什么变化?A: 本文中提到的Update/Revision策略既是12.2版本及更高版本的数据库软件的季度发布的CPU项目。CPU文档会列出Updates和Revision提供的安全相关的修复。对于最近的CPU文档,请参照 "Critical Patch Updates, Security Alerts and Bulletins"Q20: 安装 Update/Revision 需要多长的停库时间?A: 当通过 RAC Rolling 或者 Data Guard/GG switchover 等方式安装时,不需要停机时间。Q21: OJVM补丁在这种新的发布模式下是否可以rolling安装?A: Oracle数据库开发正致力于减少OJVM补丁安装时的停机影响。更新信息请参考文档 Note 2217053.1 - RAC Rolling Install Process for the "Oracle JavaVM Component Database PSU" (OJVM PSU) PatchesQ22: 在应用OJVM Update前,是否需要先安装Database Update/Revision?A: 答案会随不同的OJVM Update而不同。请参考要安装的OJVM Update的README的前提条件部分。Q23: 怎样获知Updates和Revisions对应的已知问题?A: 对每个 Updates和Revisions 都会有一篇 MOS 文档来列出已知问题,与当前对 PSU,BP 和 CPU 的做法一样。Q24: Updates中是否包含优化器修复?A: 优化器的一些修复会改变执行计划,必须由客户有选择的启用。 详细信息,请参考 MOS NOTE 2147007.1>中的"Managing 'installed but disabled' module bug fixes"这一部分。 Q20: 什么产品将改用这种新的发布策略?A: 除了 non-rolling 升级的修复,这一新策略将应用到当前 Oracle Database Bundle Patches for Oracle Database, Oracle Engineered Systems, Oracle E-Business Suite, Oracle Fusion Applications,以及 SAP products。 Oracle Engineered Systems 包括 Exadata,SPARC SuperCluster, MiniCluster 和 ZDLRA。Q25: 哪些产品使用了这个新的patch策略?A: 除了 non-rolling upgradeable 的fix,这个新的patch策略在如下产品上使用:Oracle Database Bundle Patches for Oracle Database (general), Oracle Engineered Systems, Oracle E-Business Suite, Oracle Fusion Applications, 和 SAP products。Oracle Engineered Systems include Exadata, SPARC SuperCluster, MiniCluster 和 ZDLRA.Q26: 如何查看我所有的 $ORACLE_HOME 是处于相同的安全级别?A: 在同一个季度周期中(本文图1中相同的列中列出)提供的版本 具有相同级别的安全内容。 一个简单的公式就是,对于相同年度发布版本,通过把版本号的第二部分和第三部分相加。 如果和相同,那么它们就包含相同的安全级别内容。Q27: 是否每个年度发布的版本都是完全的发布/安装,不依赖之前的版本?A: 每个年度发布的版本都是完全的发布/安装,不依赖之前的版本。Q28: Windows 平台的补丁安装模式是否有变化?A:不会。Windows 平台的数据库安装补丁策略不会更改。Q29: 新的版本号码系统的3个部分具体的含义是?A: 年.更新.发布(Year.Update.Revision)Year 是发布的年份的后两位数字。比如 “18”会用在2018年发布的版本上Update 代表 Release Update (0, 1, 2, 3, ....)Revision 代表Update Revision 级别 (0, 1, 2)Q30: 为什么我在某些文档或者数据库的输出中看到5位(而不是3位)?A: 第四位是数据库的增量版本。有时候用在Oracle云部署上,有时候Oracle Support会用它。第五位是保留位。对于大部分的客户,只使用3位的格式。Q31:和Revision同期发布的Update是否包含Revision的内容?A:是的。 比如18.4.0和Revisions 18.2.2以及18.3.1同期发布,Update 18.4.0版本包含和Revisions 18.2.2以及18.3.1包含的安全内容以及回退修复。Q32: 我是否可以期望Revision (比如18.2.3)中的修复也包含在另一个Update 里(比如18.6.0)?A: 相同季度提供的版本包含相同的安全内容 (本文图1中相同的列中列出)。Q33: 如果一个客户当前的版本是18.2.x,那么当版本19发布时如何升级? 是否可以直接升级还是需要临时过渡?A: 可以直接迁移到Oracle 19Q34: Updates/Revisions和产品升级的关系?A: Updates/Revisions和产品升级无关。他们是版本12.2以及更高版本里的补丁相关的策略。而产品的升级(比如从12.2.0.1到18.x.x)是在不同的Oracle文档中进行处理。比如Oracle® Database Database Upgrade Guide 18c, E88788-01。Q35: 对于Oracle 18版本的技术支持策略是怎样的?A: Oracle Database 18以及Oracle Database 19会使用12.2的技术支持策略,就像已有的版本发布策略一样。在新的年度版本发布后仍然有2年的错误修复期可以提供Updates, Revisions 和单独的 bug 修复。假如目前是19.4.2这个RUR版本,是否可以升级19.5.0/19.5.1/19.6.0?不可以从19.4.2->19.5.0,19.5.0中不包含19.4.2新增的安全修复和回退修复。可以从19.4.2->19.5.1,19.5.1中已经包含了19.4.2所有新增的安全修复和回退修复。可以从19.4.2->19.6.0,19.6.0中已经包含了19.4.2所有新增的安全修复和回退修复。
打补丁顺序:GI–>DB-OJVM
步骤:
参见readme.html
grid:
/u01/app/19.0.0/grid/OPatch/opatchauto apply /u01/soft/31750108/ -oh /u01/app/19.0.0/grid/
oracle:
/u01/app/oracle/product/19.0.0/db_1/OPatch/opatchauto apply /u01/soft/31750108/ -oh /u01/app/oracle/product/19.0.0/db_1/
常见问题:
报错1.java.io.FileNotFoundException: /u01/app/oraInventory/ContentsXML/oui-patch.xml (Permission denied)
chmod 660 /u01/app/oraInventory/ContentsXML/oui-patch.xml
报错2.CRS-6706: Oracle Clusterware Release patch level (‘nnn’) does not match Software patch level (‘mmm’)
**
https://blog.csdn.net/xxzhaobb/article/details/105863140
— 参考MOS文档处理
CRS-6706: Oracle Clusterware Release patch level (‘nnn’) does not match Software patch level (‘mmm’) (文档 ID 1639285.1)
Patching 12.2.0.1 Grid Infrastructure gives error CRS-6706: Oracle Clusterware Release Patch Level (‘748994161’)
Does Not Match Software Patch Level (文档 ID 2348013.1) — 实际参考这个文档
[root@node19c02 bin]# ./clscfg -localpatch
[root@node19c02 bin]# ./rootcrs.sh -lock —实际操作发现grid_home/bin没有此文件,find / -name 查找到的路径操作。
[root@node19c02 bin]# ./crsctl start crs
启动CRS后,回退ORACLE_HOME,GI_HOME的补丁。
[root@d1 ~]# /u01/app/19.0.0/grid/OPatch/opatchauto rollback /xx/psu_soft -oh $GRID_HOME
[root@d1 ~]# /u01/app/oracle/db_1/OPatch/opatchauto rollback /xx/psu_soft -oh $ORACLE_HOME
报错3.ORACLE_HOME/inventory/oneoffs/29834717 is corrupted. java.lang.RuntimeException: No Patch exists,Please check.
# cd /oracle/app/oracle/product/19.0.0/dbhome_1/inventory/oneoffs/
# scp -r 30* wddb2:/oracle/app/oracle/product/19.0.0/dbhome_1/inventory/oneoffs/
• PRVH-0111 : Path "/u01/app/19.3.0/grid/lib/libagtsh.so" with permissions "rwxr-x---" does not have read permissions for others on node "xydb7node1".
• PRVH-0113 : Path "/u01/app/19.3.0/grid/lib/libagtsh.so" with permissions "rwxr-x---" does not have execute permissions for others on node "xydb7node1".
• PRVH-0111 : Path "/u01/app/19.3.0/grid/lib/libagtsh.so.1.0" with permissions "rwxr-x---" does not have read permissions for others on node "xydb7node1".
• PRVH-0113 : Path "/u01/app/19.3.0/grid/lib/libagtsh.so.1.0" with permissions "rwxr-x---" does not have execute permissions for others on node "xydb7node1".
• PRVH-0111 : Path "/u01/app/19.3.0/grid/lib/clntshcore.map" with permissions "rw-r-----" does not have read permissions for others on node "xydb7node1".
• PRVH-0111 : Path "/u01/app/19.3.0/grid/lib/clntsh.map" with permissions "rw-r-----" does not have read permissions for others on node "xydb7node1".
• PRVH-0111 : Path "/u01/app/19.3.0/grid/lib/libocci.so" with permissions "rwxr-x---" does not have read permissions for others on node "xydb7node1".
[root@xydb7node1 ~]# chown grid:oinstall /etc/oracleafd.conf
[root@xydb7node1 ~]# chown grid:oinstall /u01/app/19.3.0/grid/crs/install/cmdllroot.sh
[root@xydb7node1 ~]# /u01/app/19.3.0/grid/OPatch/opatchauto resume
