Oracle Database 23c : 新特性和版本发布周期计划

关于Oracle Database 23c 的发布计划已经明确公布了出来。

以下是 23c 的生命周期表,在2022年,Oracle 23c Beta版已经开始测试。新版本将在2023年发布。23c 是一个长期支持版本。(一直到 2028 年,并且扩展支持已经预计到 2031 年)

图片

Oracle 19c 和 21c 能够直接升级到 23c 版本: 图片

新特性包括,超越 MongoDB 更好的文档存储;比图数据库更好的图存储: 图片

Oracle 23 新功能

生产效率

4K列

从过往的的Oracle官方手册中我查到,Oracle在过去单表的最大列是1k列。在23C中的最多列数将会支持到4096列。

SQL Domains

按照PG里的概念,CREATE DOMAIN创建一个新的域。域本质上是一种带有可选约束(在允许的值集合上的限制)的数据类型。定义一个域的用户将成为它的拥有者。域主要被用于把字段上的常用约束抽象到一个单一的位置以便维护。例如, 几个表可能都包含电子邮件地址列,而且都要求相同的 CHECK 约束来验证 地址的语法。可以为此定义一个域,而不是在每个表上都单独设置一个约束。

在实际使用中,与PG的使用有哪些异同之处,要等到来年春天知晓。

JSON Schema

图片

Oracle对JSON的进一步支持,从字面意思和举的例子来看,这是要挑战mongodb最擅长的东西。具体使用起来如何,来年看。

Developer Role

针对开发者提供了专门的Role,通过一条exec语句实现,可以具备多种DDL的权限。对DBA来说,打包了connect和resource之后的角色更合理。

Schema level privileges

Schema级别的权限管理,Oracle你终于肯拿出来了。Oracle11g时代,以往我要做一个schema级别的权限管理,需要先从dba_tables里把所有的信息select出来,然后生成一个脚本。以至于很长时间里,我们开发人员都以为我是不想给他们干活才故意弄的这么繁琐。

一行命令能搞定的事,非要绕弯子十几年。

JS stored procedure

支持基于MLE Javascrip的存储过程。把存储过程用Javascript实现。到底支持到什么程度,还是需要来年揭晓。

Single Server Rolling maintenance

字面意思上看,单服务器滚动维护,如果我没记错,Exadata已经有了类似的功能,很好奇23c这个具体是在什么样场景下使用。

Native Property graphs

原生的图数据库存储。Oracle是想把市面上能支持的都给支持了,下一个大迭代出什么新引擎我都不觉得奇怪。

简易性

Oracle RAC on k8s

以往的Oracle确实是有跑在k8s上的,但是缺少官方支持的情况下,无论是故障排查还是后续的技术支持多少都有灰色地带,如同当年虚机上跑Oracle到底怎么支持怎么收费一样。

也能够看出来,k8s的影响力已经到了Oracle不得不正视的时候。但是我谨慎不看好第一版官方支持的RAC on k8s。

1024 bytes password

对于有超高要求的用户,是个好消息。之前在金融行业工作的时候,确实也有同事质疑过Oracle对于密码大小的限制是否能完全满足需求。

Oracle <-->Kafka Integration

过去我参与过的Oracle和Kafka之间的配置,很多时候是要通过OGG来完成,如果23C可以更加简化这一场景,是个非常好的消息。

Better error messges

图片

将错误信息进一步细化,而不是要依靠开发人员或DBA的经验来猜,这件事情在他数据库中已经做的更好,Oracle一直拖延到23C才做。

其他几项我之前工作涉及的比较少,想了半天没想出什么太有用的内容。* *值得一提的是,现场还是提出了几项SQL相关的改进:**

SELECT without FROM: 从以前select 1+1 from dual直接变成select 1+1,对于常量或者函数的开发测试更加方便。

BOOLEAN: 在PLSQL之外的场景下,终于支持了布尔类型。对于不熟悉Oracle的朋友来说,可能觉得匪夷所思,2023年才支持。

UPDATE via join: 通过join的方式来更新一个表,也是一个姗姗来迟的特性。

IF [NOT] EXISTS: 是的,你没看错,以前oracle是不支持这个关键字的,当年在其他数据库跑的业务逻辑迁移到oracle因为这个还改动很多。

GROUP BY Alias/position :以前我的某一列是函数结果比如extract() as cname,那么group by的时候我是不能用这个cname的,现在可以了。

TABLE value constructor: 最直观的就是允许insert一次插入多行了,不用再一行一行插入。(PS:这是ISO SQL标准)

更方便的上云

这部分能看出来,Oracle想要尽可能方便现有的私有部署的客户上云,但是目前提供的几个新特性恐怕远远不够。

自动升级到Keystore访问

自动升级可插拔数据库

ZDM支持的Standby和DG Broker

上云前的相关工


请使用浏览器的分享功能分享到微信等