如何查看oracle数据库版本信息(oracle备份整个数据库)

如果是在几年前讨论Oracle升级的问题,其实会存在很多的异议,如今再来看待这个问题,我觉得情况有了变化,我来尝试重新解读一下这个问题。

Oracle数据库版本背景

首先来说下Oracle的版本背景。

根据Oracle的产品线规划,18c开始的新版本将是年度版,版本将是发布年度的最后两位数字。原本计划作为12.2.0.2的版本就是现在发布中的18c,12.2.0.3将以19c的版本形式发布。预期Oracle数据库19将是12.2的最后一个版本(“长期支持”版本)。

所以经历了8,8i,9i,10g,11g,12c之后,接下来的就是18c,19c,现在是2020年了,最新版本按照规划还是19c,可没有20c,要不会被笑话。

从版本V2发展至今,我细数了如下的一些版本情况。

版本发布年版本
19792.3
19833.1.3
19844.1.4.0
19855.0.22
19886.0.17
19927.0.12
19978.0.3
19988.1.5.0
20019.0.1.0
20029.2.0.1
200310.1.0.2
200510.2.0.1
200711.1.0.6
200911.2.0.1
201312.1.0.1
201612.2.0.1
201818.1.0
201919c

如果要从整体看出版本的差异情况,可以看下面的柱状图。

这个图没有体现版本之间的时间差,仅仅从版本的变化情况来看。

Oracle升级该怎么选版本,目前看已经没有异议了

仅仅从这个图上就能够看出一种鲜明的差异,那就是类似SQL Server这样的年度版本,能够对于版本的差异没有那么敏感。

Oracle数据库版本规划

我们能够看到有很多的版本,如果要选择升级数据库,到底是选择12c还是18c,还是19c呢,我们来看一个版本路线图,可以参考在MOS 官方文章:Release Schedule of Current Database Releases (文档 ID 742060.1)

Oracle升级该怎么选版本,目前看已经没有异议了

这个图是理解整个内容的核心,可以看到19c的定位是长期版本,而且扩展服务的截止时间是目前最长的。

相比而言18c的生命周期就会短许多,有点像昙花一些的过渡版本,从性价比来看似乎还不如早一些的12.2.0.1这个版本,如何和当时的时间背景联系起来,应该是一批早期用户从11g升级,在没有12.2版本发布时,选择了升级到12.1.0.2,所以看到的12.2.0.1和18c的发布时间也很接近。

值得一提的是,在2020年4月15日,Oracle修改了12.2.0.1的扩展服务截止时间,从2020年12月1日扩展到了2020年3月31日。(Added Limited Error Correction for 12.2.0.1 from Dec 1, 2020 until March 31, 2022)

Oracle数据库服务支持

对于扩展服务,我们可能有些陌生,大体分来,支持的强度分为三个级别:Premier Support(最高优先级的支持),Extended Support(中等优先级的支持),Sustaining Support(最低优先级的支持)。

如果和上面的图联系起来,其实就是对于扩展服务打了一些补丁,可以举个例子来说明,比如主流版本是11g,那么会有一个相对稳定产品生命周期,比如是5年,那么在这5年内是官方大力支持的阶段,会修复一系列的版本bug,推出一些改进和新功能,临近产品生命周期,就需要考虑升级,如果不升级服务支持力度上就会打一定的折扣,比如说扩展服务周期是2年,那么2年后正常来说是无法下载一些补丁更新的,如果过了扩展服务周期还没有升级,如果是大客户,花钱继续支持也可以,如果又跨越了多个时段,但是原来的版本支持还是需要,就需要做定制化的支持了。

对于数据库版本来说,10g是个坎,升级到11g是个坎,升级到12c的选择空间从上图来看就比较有限了,目前可选的就是12.2.0.1,18c和19c了。我们来看下这3个版本,我来划一下重点。

版本补丁截止时间备注和说明
19cLong-Term ReleaseMar 31, 2023 with no ES/ULAMar 31, 2026 with ES/ULAPremier Support (PS) ends Mar 31, 2023, Extended Support (ES) fees will be required beginning Apr 01, 2023 through Mar 31, 2026Error Correction / Patching is available through Mar 31, 2026 with paid ES. Without paid ES, patching is only available until Mar 31, 2023.
18cAnnual ReleaseJun 08, 2021Error Correction / Patching is available until Jun 08, 202118c is not eligible for Extended Support (ES)
12.2.0.1Annual Release* March 31, 2022 with Limited Error Correction from Dec 1, 2020Error Correction / Patching is available until Nov 30, 2020Limited Error Correction (Sev 1 and Security Updates only) is available from Dec 1, 2020 – March 31, 2022 See Note 161818.1 for details.12.2.0.1 is not eligible for Extended Support (ES)Gen 1 ExaCC, OCC DBCS, and ODA will have 3 additional months of support life. The end of life dates for databases on these platforms is: 28-Feb-2021

从上面的图来看,为了求稳,我们不是选择最接近的低版本,而是要首选尽可能稳定的大版本,避免后续的大版本改动。如果说得更清楚些,那就是选择19c.

版本的情况基本说完了,我们来看下升级的正确姿势,因为环境的差异,肯定初始版本都不大相同。

Oracle数据库版本升级矩阵

对于11g的数据库来说,如果是11g的最新版本,则可以直接升级到19c,这是一个极大的利好消息,避免了过渡升级带来的潜在隐患和服务不可用过长。

对于12c以上的版本(12.1.0.2以上),则可以直接升级到19c。

升级的过程可以考虑纯手工方式升级数据字典,也可以考虑使用DBUA来做。

Oracle 19c – Complete Checklist for Upgrading to Oracle Database 19c (19.x) using DBUA (Doc ID 2545064.1)

如果使用DBUA来升级,直接升级可以参考如下的表格:

Source DatabaseTarget Database
11.2.0.4 and Higher19.x
12.1.0.219.x
12.2.0.119.x
18.119.x

对于有些版本来说,则不可以直接升级,就需要过渡,比如你的版本是11.2.0.2,则需要先升级到11.2.0.4之后才可以升级到19c.

Source DatabaseIntermediate upgrade pathTarget database
11.2.0.1/11.2.0.2/11.2.0.3–>11.2.0.4–>19.x
11.1.0.6/11.1.0.7–>11.2.0.4–>19.x
10.2.0.2, 10.2.0.3, 10.2.0.4, 10.2.0.5–>11.2.0.4/12.1.0.2–>19.x
10.1.0.5–>11.2.0.4/12.1.0.2–>19.x
9.2.0.8 or earlier–>11.2.0.4–>19.x
12.1.0.1–>12.1.0.2/12.2.0.1–>19.x

5 尝鲜新版本

此外,如果我们想先尝尝鲜,做下测试