作者介绍
杨志洪,dbaplus社群联合发起人,新炬网络首席布道师,对数据库、数据管理有深入研究,合译《Oracle核心技术》《Oracle Exadata专家手册》。
大规模升级来临,咱们来谈谈Oracle 12cR2使用经验。
一、升级到12cR2的必要性
随着2019年2月13日,Oracle 19c (Oracle 12.2.0.3) for Exadata 版本发布,Oracle 12cR2体系的数据库版本终于迎来了长期支持版本(Oracle 12c的最后一个大版本),也就是说数据库版本还在Oracle 10g/11g的系统是时候考虑升级了。
特别是在Oracle 11.2.0.4以前的版本,用了db link的系统,务必要升级。
其实,根据Oracle数据库生命周期和版本演进路线,到2018年12月31日,Oracle 11.2已经结束了免费的扩展服务期(Fee Waived ES),一些新遇到的bug补丁用普通的SR账号将没有权限下载。
同时考虑到SCN天花板速率算法变化的问题,12c升级就变得更加必要了(当然,应用没有变化,或者没有使用dblink的可以不用考虑)。
Oracle每个版本的bug都很多,不过并非是Oracle数据库软件不行,而是因为Oracle是OLTP领域的绝对王者,提供了太多方便的功能,bug就多了。所以每次升级前,我们都会去撸一遍fix list,看看有没有新的bug被其他人发现并解决了。
到目前为止,Oracle 12.2系列的fix patch数量是2078个:
当然,这补丁数量还是远远低于Oracle11.2系列的27782个:
也远低于Oracle 10.2系列版本的26281个(这些补丁均不包含集群补丁):
这个结果有些出乎意料,12cR2上的patch数量比前2个版本少了一个数量级。一个可能性是12cR2的bug少了很多,另一个可能性是12cR2还没有迎来大规模升级,而今年就是升级到12cR2的最佳时机。
二、Oracle 12c体系的一些新特性
Oracle 12c相比Oracle 11g,有3个特性被广为期待:
多租户:12cR1最多允许252个租户,12cR2-19c最多允许4098个租户,由max_pdbs参数控制
In-Memory Option
Sharding
从两年多的案例来看:
Sharding功能几乎没有被使用
主要原因是:在12.2,一个SDB中只支持一个Table Family,一个正常业务数据库都会需要有多个Table Family;而在Oracle 19c里,增加了Multiple Table Families特性,或许可以好好用一下
In-Memory Option没有大规模用起来
原因是一方面是使用场景,另一方面是维护成本,多租户特性成了这个版本的扛鼎之作。
多租户特性(Multitenant)是12c体系最重要的特性,在12.1.0.1版本引入。开创性地在一个容器数据库(cdb)中可以包含很多个可插拔数据库(pdb),每个pdb之间可以有自己独立的参数和资源占用限制,所以该特性成为了12c版本中最受欢迎的特性。
很多企业使用多租户特性整合那些零碎且单独占用一个数据库的小应用,