以下是 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