在2017年之前,Oracle 的版本路线是非常清晰的,我接触过的几个版本有:9i、10g、11g、12c。 但是到了2018年之后,Oracle 改变了版本的命名规则,以至于现在还有很多人还无法准确的分清Oracle 12c、18c、19c、20c、21c 他们之间的关系。
本文我们将从生命周期的角度,来解析Oracle 版本的秘密。
Oracle 软件之所有版本的问题,和它的软件生命周期有一定的关系,我们先看它每个版本的生命周期规则:
Oracle 软件的每个版本都会有这3个生命周期。 但是因为SS周期的费用太贵,所以正常我们只会用到PS 和 ES 的周期,即8年。
在Oracle 18c 之前,Oracle 的版本格式由5位数字组成,比如:11.2.0.4.0
Oracle 18c开始,Oracle 的版本还是5位,但是意义却发生改变。
第一个、第二个和第三个数字提供有关Oracle数据库版本的信息:
关于RU、RUR、补丁的概念我们以后的文章再进行说明。
我们这里看2张Oracle 官方的软件发布路线图:
参考:Release Schedule of Current Database Releases (Doc ID 742060.1)
当一个版本的生命周期结束以后,就无法在购买到软件授权和维保服务。 比如我们现在无法买到Oracle 11.2.0.4 的授权,连Oracle 18c的生命周期也都已经结束,目前我们能购买到的版本,只有Oracle 19c、20c、21c。
下表是各个版本生命周期的结束时间,原表比较大,我这里截图了前面的部分,从这里看到,Oracle 18c的生命周期是2021年6月30号结束的,Oracle 19c的生命周期在2024年4月30号。
实际上,从我这样一个接触Oracle 十几年的老兵来看,这几年Oracle 版本变化确实比较快,也确实是需要花一些时间来消化和整理。
从上面的几个图,我们其实还可以看到另外2个版本的信息:Long Term Release 和Innovation Release.
官网对着2个版本有说明,我这里直接引用,不再翻译:
Long Term Release:
Oracle Database Long Term Releases are ideal for use cases that benefit from less frequent upgrades to newer releases. Long Term Releases offer the highest level of stability and the longest length of error correction support. These releases have 5 years of Premier Support followed by 3 years of Extended Support. When combined with Extended Support, customers typically have almost 4 years to upgrade from one Long Term Release to the next Long Term Release.
Innovation Release:
In between Oracle Database Long Term Releases, Oracle delivers Oracle Database Innovation Releases that include many enhancements and new capabilities which will also be included in the next Long Term Release. Innovation Releases are designed to enable customers to continuously use leading-edge technologies to rapidly develop or deploy new applications or augment existing applications. Support for Innovation Releases includes at least 2 years of Premier Support, but there is no Extended Support. Production workloads can be deployed on Innovation Releases if upgrading to the next database release within one year after the next database release ships is factored into the deployment plan.
从之前的2张图片也可以非常清晰的看出,Oracle 也在不断淡化之前的老版本号的问题。在早期的路线图中,我们还可以看到新版本号和老版本号之间的对应关系。 如果按旧的版本号规则,18c 等于 12.2.0.2。 19c 等于12.2.0.3。
在新的版本路线图中,Oracle 19c 将是一个长期版本。如果按旧的观点,我们应该等的是12.2.0.4, 类似于11.2.0.4。 但是Oracle 现在直接告诉我们,没有这个版本了。 19c 将是12c 家族的最后一个长期支持版本。
我们在上文铺垫了很多有关版本的信息,那么在实际使用中,我们该如何选择?
因为目前Oracle 开始了新的命名规则,简单的说,我们在选择版本的时候只有一个标准,就是选择Long Term Release 版本,也就是我们之前提到的Oracle 19c,目前19c的RU 已经迭代到了19.15, 并且还将持续迭代到2024年。
另外,虽然我们现在也可以下载到20c和21c,但是这2个版本都是Innovation Release,这也因为着着2个版本更多的具有测试的意味,这2个版本会存在较多的bug。
从实际生产来说,我们目前可以选择的只有Oracle 19c。 当然,我们也可以等到2023年, 23c 也会是一个Long Term Release 版本。
最后,我们再回到技术本身, 不同版本其实对应的是不同的技术路线,Oracle 12c、18c、19c, 这3个版本实际上是同一个架构,即12.2 家族。 Oracle 20c、21c、22c、23c 会是另外一个技术家族。
不同的技术家族,往往代表着非常大的架构变化。 12.2 家族和 11g 家族最大的技术变化,就是引入了多租户(CDB)、In-Memory、Sharding 等特性,虽然从开发者角度来看,Oracle 还是那个Oracle,但从运维者角度来看,就是一个非常大的变化,需要重新来学习一遍。 因此我在2019年专门出版了一本书籍:《Oracle 18c 必须掌握的新特性》 ,详细的介绍了12.2 家族中引入的这些新特性。
虽然目前我们能听到很多国产数据库的声音,但Oracle作为传统的关系型数据库王者,它的地位依旧无法撼动,在追赶Oracle 的这条道路上,国产数据库还有很长的路要走,但我相信,在我的技术生涯中,会看到那一天。