美创运维日记|Oracle数据库的软件版本需知
客户A:11g扩展服务到期了,新上环境版本为什么你们推荐19.3?
客户B:跨越那么多版本,会不会操作起来难度很大?
客户C:那为什么还有厂商在安利10g/11g?
实习生D:从12c到18c到19c,中间的13-17去哪了?
(关于oracle数据库的疑问)
不要怕!你的疑惑,我一一道来:
关于以上问题,我们必须从Oracle的版本号变化说起。
以2018年为一个分界线,在这之前,Oracle公司都是数据库迭代了较大的特性,以特性来命名大版本。
Oracle·大版本
Oracle 9i
Oracle 的9i 版本i是指internet,从8i的ops 正式更名为RAC,采用Cache Fusion,大幅提高,目前该版本基本已经绝迹,但是在一些大型企业相对稳定的业务模式下,还有一些系统用着。从笔者了解到,越来越多的新系统以更适配当下或未来的业务模式,逐步替代老系统,从而实现平滑的淘汰诸如8i/9i的数据库环境。
Oracle 10g
Oracle 10g中的g指的是grid(网格),从10g开始推出了ASM存储管理,支持网格管理,支持负载均衡,从9i到10g的数据库推出了一系列的"新特性",当然,现在回头看,已经稀松平常。
Oracle 11g
在11g中虽然还是网格,但是,扩大了网格的特性,提高了可用性,减少停机时间,增强了安全性。从主机用户层面讲集群和数据库区分,用asm服务替换asmlib,还有adg的推出,增强了备份恢复,提供了相对完备的错误诊断,可以很方便的实现读写分离。从9i开始推出的一些数据库自动管理的特性在经历了多个版本研发,在该版本中实现了大幅的简化。作为目前市面上主流版本之一,11g以稳定高效的服务,以及越来越便捷的部署步骤,得到了市场的认可。
Oracle 12c
12c也是一个划时代的版本,C指的是cloud(云),提供云平台管理,推出CDB/PDB,支持分片,为实现数据分片满足一众客户急切上云的需求。
时间就来到了2018年,Oracle开始以年份来命名版本号。
在2018年推出的数据库就以18c命名
在2019年推出的数据库就以19c命名
自然,在2020年推出数据库就是20c了。
到这,我们就解答了开篇提问中的第4个问题。
版本号·命名
关于具体版本号,我们就从Oracle各个版本的官方文档中去找答案吧。
下图是关于9i版本的命名规则:
9i版本的命名规则
第一位是版本号(version number)
第二位是新特性发布的版本号(new features release number)
第三位是维护发布版本(maintenance release number)
第四位是常规补丁集版本号(generic patch set number)
第五位是平台特定版本号(platform specific patch set number)
下图是关于10g版本的命名规则:
10g版本的命名规则
第一位是数据库的主版本号(Major Database Release Number),通常标志一些新功能的发布
第二位是数据库的维护版本号(Database Maintenance Release Number)
第三位是应用服务器发布的版本(maintenance release number)
第四位是组件的特定版本号(Component-Specific Release Number)
第五位是平台特定版本号(platform specific patch set number)
下图是关于11g版本的命名规则:
11g版本的命名规则
对比10g和11g的命名规则我们发现,除了第三位数字的定义变更了,其余都是一样的
第三位在11g中定义为融合中间价的版本号,与oracle数据库版本没有太多的关系
12c则完全沿袭了11g的版本命名,具体参看下图:
12c版本的命名规则
重头戏来了,关于18c/19c的定义如下:
18c/19c版本的命名规则
第一个数字的解释依然是数据库发布的主版本号,但是oracle官方文档的注释为:This numeral indicates the major release version. It also denotes the last two digits of the year in which the Oracle Database version was released for the first time.(该数字表示主要发行版本。它还表示第一次发布Oracle数据库版本的年份的最后两位数字。)
第二个数字是Oracle RU(release update)的发布季度
第三个数字是Oracle RUR(release update revision)的发布季度
第四个数字是数据库的增量版本
第五个数字是为了未来更好的命名规则预留的数字
大家是不是对于目前oracle主流的版本有了一个清晰的印象。
目前Oracle还是关系型数据库的老大,兼容的SQL标准还是一致的。至于你需要如何选择一个正确的数据库版本来适配应用,笔者的建议是:因为到2020年12月对于11g的扩展支持也要结束了,而从2019年第二季度开始,Oracle官方对于11g的常规季度补丁已经需要提供特殊密码才能够下载。
如果是新上应用优先部署高版本的数据环境进行可用性测试和压力测试。
如果你不想使用类似CDB/PDB的环境,其实从12c开始oracle依然支持12c之前的普通标准的数据库模式,所以,拥抱新版本吧。
对于早年间,在oracle dba间流传的,版本升级别走太快,容易掉坑里,而在12c之后,这句话可能不能这么武断的说了,你可以把19c理解为最稳定的12c。
就在近日,Oracle已经推出了20c,我们一起测试起来吧。
冲鸭
局限于篇幅,我们以后再来讲讲数据软件生命周期和补丁那些事。
参考文献
Oracle 各个版本官方文档中的《Database Administrator's Guide》
美创科技拥有强大的运维中心数据库服务团队,其中Oracle ACE 1人、OCM 10余人、数十名Oracle OCP、MySQL OCP、红帽RHCA、中间件weblogic、tuxedo认证、达梦工 程师,并著有《Oracle DBA实战攻略》,《Oracle数据库性能优化方法和最佳实践》,《Oracle内核技术揭秘》等多本数据运维优化书籍。
美创科技结合多年来在数据中心运维领域的知识经验沉淀,自主研发OSM(数据库运行安全管理平台)和OKP(运维一体机),并架构美创运维云,实现数据中心全景监控和数据库智能化运维,有效保障生产业务运行的稳定性和数据库完整性。