<< 返回文章列表

Oracle Database 21c 十小新特性一览 - New Features

2020年12月14日
eygle
106

Oracle Database 21c 已经在云上提供,线下版本将于2021年上半年提供,这标志着 Oracle 进入了下一个版本周期的创新发布。

关于 Oracle 21c 其实就相当于 Oracle 20c,因为 20c从未进入公众可用的版本发布。在官方的版本计划中,20c 已经被移出,并做出如下声明:

Oracle考虑到2020年我们的客户将面临前所未有的经济和业务中断。我们决定不将Database 20c Preview版本升级为General Availability。 相反,我们将所有20c功能都合并到21c版本中,并使21c在我们的“自制数据库免费层”中可用,以便所有人都可以免费试用驱动新功能和增强功能。

image.png

在 Oracle Database 21c 十大新特性一览 - New Features 一文中,我列举了自 20c 开始的十大新特性,在本文中,我将再次遴选10个小特性,与读者分享,相应的,我将本文命名为:Oracle Database 21c 十小新特性一览。

1. In-Memory 基础级支持

Oracle In-Memory 通过列式存储,将行列融于RDBMS一体,从而加速 OLTP 和 OLAP 混合负载,自 Oracle 21c ,Oracle 推出了 In-Memory 特性的基础级功能,通过参数 INMEMORY_SIZE 设置,对 16GB以下的使用免费。从而降低了用户接触这一个性的门槛。
PIC 18.jpg

下表展示了这一新特性的设置和使用范例:
PIC 25.jpg

2. Sharding 的增强

在21c中,Oracle的 Sharding 选件进一步增强,可以通过 GDS 执行全局的备份和恢复,还可以通过 Advisor 建议助手,进行现有模式的分析,并提出 Sharding 的分片建议。
PIC 23.jpg

3. 原生的 JavaScript 支持

在原生的 JSON 数据类型支持之后,21c 还支持了数据库内部的 Javascript 代码执行,通过 DBMS_MLE 的自动引擎转换,将 javascript 的判断直接在数据库内部完成,减少了向前端传输和页面计算的过程,大大提升了性能,简化了开发。
PIC 19.jpg

4. 备库的结果集缓存支持

在21c中,主库的结果集缓存,可以在备库获得同样的支持,Result Cache 在合适的场景下,能够极大的提升复杂计算的性能,现在 Data Gaurd 也具备了这一能力:
PIC 17.jpg

5. 强制只读的 Oracle Home

在 21c 中,Oracle Home 变得强制只读,所有动态可以变化的文件,都独立在 ORACLE_HOME 之外,通过这一改进,更容易实现对于 Oracle Home 的管理、复制等工作:
PIC 15.jpg

6. 诊断控制的增强

众所周知,在 Oracle 数据库中可以设置很多诊断事件,对数据库的工作原理做出干预,而这些设置又极有可能带来数据库管理的不安定因素,所以 DIAGNOSTICS_CONTROL 参数被引入进来,从而对这些设置做出 IGNORE 或者其他判定。
PIC 16.jpg

7. 表达式参数

在 Oracle 21c 中可以指定一个表达式作为初始化参数的值。初始化参数的最佳值可能取决于环境特性,如系统配置、运行时决策及其他参数值

在以前的版本中,在设置初始化参数时需要指定一个绝对值,这意味着维持其最佳值需要手动监督和调整,从Oracle数据库21c开始,可以指定一个表达式作为某些初始化参数的值,这使得数据库能够根据环境变化自动调整参数值。这在 Oracle Autonomous Database 环境中特别有用

在 Oracle Real Application Cluster (Oracle RAC) 环境中,为参数值指定表达式也很有用。可以在所有 Oracle RAC 实例中为参数值指定相同的表达式,但该表达式将在每个实例的基础上利用当前实例的环境特征进行评估。这允许数据库对每个 Oracle RAC 实例的参数值进行微调。

PIC 20.jpg

8. ANSI SQL表达式的 EXCEPT 支持

不同版本中,对于 ANSI 标注的支持,Oracle 也是不断增强,在21中,集合操作关键字的 EXCEPT 被支持。
PIC 22.jpg

9. 关注日志 - Attention Log

在告警日志之外,21c 引入了新的日志成员 -关注日志(Attention Log),在这个日志中明确列出需要特别注意、关注的重要数据库事件,通过这个日志,用户可以及时的获得经过过滤的重要信息:
PIC 24.jpg

这类日志的示范信息如下:

{
  "WARNING"      : "Parameter PGA_AGGREGATE_LIMIT specified is high",
  "URGENCY"      : "IMMEDIATE",
  "INFO"         : "WARNING: pga_aggregate_limit value is too high for the amount of physical memory on the system PGA_AGGREGATE_LIMIT is 2048 MB PGA_AGGREGATE_TARGET is 29 MB.
 physical memory size is 7042 MB limit based on physical memory and SGA usage is 1218 MB SGA_MAX_SIZE is 5120 MB ",
  "CAUSE"        : "Memory parameter specified for this instance is high",
  "ACTION"       : "Check alert log or trace file for more information relating to instance configuration, reconfigure the parameter and restart the instance",
  "CLASS"        : "CDB Instance / CDB ADMINISTRATOR / AL-2000",
  "TIME"         : "2020-06-24T04:25:35.334-07:00"
}

10. SQL*Net 诊断增强

从Oracle Database 21c开始,每个网络连接都可以通过连接标识符进行标识。连接标识符唯一地标识了不同网络元素的跟踪和日志中的连接,并有助于关联来自这些元素的诊断数据。

当SQL * Net连接具有多个跃点时,例如从客户端到Oracle Connection Manager(CMAN),再到服务器,则很难将现有日志和跟踪中的诊断信息关联起来。但是,有了连接标识符,您现在可以轻松地关联诊断,跟踪网络数据流量并解决连接错误。

连接标识符由两个部分组成,即CONNECTION_ID和CONNECTION_ID_PREFIX。 CONNECTION_ID参数包含一个唯一值,该值在连接始于客户端时生成。 CONNECTION_ID_PREFIX是添加到连接标识符的特定于应用程序的前缀参数。
PIC 26.jpg

总结

一如既往,Oracle 21c 在细节上进行了很多增强,很多时候,于细微处方见差异,唯有细致入微才能够成就品质,这也蕴含了四十年时光、2000万行代码的触角延伸,管中窥豹与读者分享。