以前 Oracle的周期是约5年省级一个大版本,在这个大版本上做小的升级(PSU与BP),在12c发布以后,oracle数据库产品的新版本发布改为每年一次。随着版本的变化,oracle的升级也发生了变化。12.2以后,主要是通过 RU(Release Updates)与 RUR(Release Update Revisions)升级,那么什么是 RU(Release Updates)与 RUR(Release Update Revisions),该怎么选择呢?
怕我的理解有误,还是贴一下官方给出的说明:
为了支持与安全相关的修复以及高优先级的非安全修复,将在每年的1月,4月,7月和10月每个季度发布一个 Release Updates (Updates)。 Oracle的季度发布的Updates包含客户最有可能遇到的错误的修复:
查询优化器错误修复,在之前版本的PSU以及BP中并不包含的这些修复被加入到Updates中,但是默认是禁用的。
Updates包含安全相关的补丁。
Updates会经过 广泛的测试,包括功能测试,压力测试,性能测试以及破坏性测试。
及时应用Updates可以降低碰到已知问题的可能性。
Updates在RAC环境下可以使用rolling的方式不停机安装。
除了季度性发布的Updates, Release Update Revisions (Revisions) 也会每个季度发行,包含对Updates的回退修复以及包含最新的安全方面的修复。
在每个Update发布后的六个月内,会有2个针对这个Update的Revisions 。比如, Release.Update.1 和 Release.Update.2,这里"1" 和 "2"代表的是Revision。
Oracle推荐客户保持应用最新的Updates,这样可以避免很多已知的问题。并且可以避免申请很多小补丁,并显著降低更多的补丁维护的操作。
某些客户可能已达到稳定状态,并希望优先考虑安全更新而不是功能修复。在这种情况下,他们可能选择应用 Revisions。当他们应用 Release.Update.1,他们落后Update的内容3个月。 当他们应用 Revision Release.Update.2,他们落后Update的内容6个月。通过选择延迟3或6个月的新Update的内容,客户可以采取更保守的方法来进行数据库软件维护,但是他们仍有可能会碰到已在最新Update中包含的已知问题。
在Updates和Revisions 之间来回切换是可能的。但是是有限制的,新的patch必须是之前patch的超集。为了避免补丁冲突,客户应该坚持一贯的政策,即在每季维护周期中始终采用相同的Revision级别 (比如 Release.Update.0, Release.Update.1 或者 Release.Update.2)
从12.2.0.1 数据库软件以及更新的版本开始,Update 和 Revision策略取代了之前的 Patchset Update (PSU) 和 Database Bundle Patch (DBBP) 策略。从2017年7月开始,之前的术语'Patchset', 'Patchset Update', 以及"Database Bundle Patch' 不再适用于 12.2.0.2 及更高版本。注意,数据库版本12.1 和11.2 仍然会每季度发布 PSUs 和 BPs。
再贴上一张官方的版本升级时间轴图片。
我的理解是:
RU(Release Updates)是每一个季度的版本升级。包括:
最新的BUG修复
最新的安全漏洞补丁
最新添加的功能
以19c为例,对应的升级版本升级路线是(19.1.0.0.0->19.2.0.0.0->19.3.0.0.0 ..... )到现在是19.8.0.0.0
RUR是对RU的修订版本,包括:
最新的BUG修复
最新的安全漏洞补丁
这里并没有添加最新的功能。并且只有对应RU版本的修订版。比如,在2020年7月,除了会发布RU(19.8.0.0.0)回会发布上个季度的.1补丁(19.7.1.0)和上上个季度的.2补丁(19.6.2.0)
所以我的理解是:
如果是新安装的数据库,那么推荐安装最新的RU。
如果是对已有数据库的升级,建议还是升级RUR更加稳妥一点,除非有明确需要要使用最新的功能。
最后,RU与RUR是可以相互转换的,判断条件oracle也提供了。
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" 小所以不能安装目标版本,会出错
参考文章:
Release Update介绍以及FAQ (Doc ID 2289879.1)
https://www.sohu.com/a/289232430_505827
https://www.cndba.cn/dave/article/4063
原文:
https://www.cnblogs.com/dbapro/p/13587070.html