Database 23ai:功能亮点

了解 Oracle Database 23ai 如何将 AI 引入数据,通过 AI 轻松支持应用开发和关键任务工作负载。

我们将每周分享一个 Oracle Database 23ai 新特性,通过详细示例带您快速入门。请收藏本页面,每周第一时间查看 Oracle Database 23c 精选特性。

Oracle Database 23ai:数据、开发……只要有需要,AI 就能助您一臂之力 (2:33)
Oracle Database 23ai 正式发布

Larry Ellison 和 Juan Loaiza 共同探讨了 Oracle Database 23ai 背后的生成式 AI 策略。

面向开发人员的 Oracle Database 23ai 功能亮点

了解我们专为开发人员构建的一些功能:

AI Vector Search 支持您直接在数据库中使用业务数据构建生成式 AI 管道,从而将 AI 引入数据。易于使用的本机向量功能可让您的开发人员构建新一代 AI 应用,将关系数据库处理与相似性搜索和检索增强生成相结合。通过直接对业务数据运行向量搜索,您无需迁移数据以及管理和集成多个数据库的复杂性、成本和数据一致性问题。

开发人员应该了解的其他功能包括:

…以及更多功能!

  • Transparent Application Continuity 可保护 C/C++、Java、.NET、Python 和 Node.js 应用免受底层软件、硬件、通信和存储层中断的影响……

  • 如果一个事务在持有行锁的情况下长时间不提交或回滚,可能会妨碍其他高优先级事务......

  • DBMS_SEARCH 执行 Oracle Text 普适搜索。使用 DBMS_SEARCH,您可以轻松在多个表和视图上创建单一索引...

  • 我们在 Memoptimized Rowstore Fast Ingest 中引入增强功能,支持分区、压缩表、使用直接写入快速刷新以及直接内存中列存储填充..……

  • Oracle Globally Distributed Database 在 Oracle Database 23c 中推出了 Raft 复制功能,让用户能够在节点或数据中心中断时,实现非常快速(不到 3 秒)的故障转移,确保零数据丢失……

  • 本周,我们将重点介绍 SQL Analysis Report。这是一个易于使用的功能,可帮助开发人员编写更好的 SQL 语句..……

应用可用性 — 数据库客户端零停机

Transparent Application Continuity 可保护 C/C++、Java、.NET、Python 和 Node.js 应用免受底层软件、硬件、通信和存储层中断的影响。通过 Oracle Real Application Clusters (RAC)、Active Data Guard (ADG) 和 Autonomous Database(共享和专有),即使 RAC 集群的节点或子集发生故障或进行脱机维护时,Oracle Database 也仍可继续访问。

Oracle Database 23c 带来了许多新的增强功能,包括批处理应用程序支持,例如打开游标(也称为会话状态稳定游标)。

Automatic Transaction Rollback

如果一个事务在持有行锁的情况下长时间不提交或回滚,可能会妨碍其他高优先级事务。此功能允许应用为事务处理分配优先级,并由管理员为每个优先级设置超时。如果低优先级事务妨碍了高优先级事务并超过了既定的超时时间,数据库将自动回滚低优先级事务并解除行锁,从而允许高优先级事务继续进行。

Automatic Transaction Rollback 可减少管理负担,同时帮助优先级更高的事务处理维持事务处理的延迟/SLA。

快速摄取增强功能

我们在 Memoptimized Rowstore Fast Ingest 中引入增强功能,支持分区、压缩表、使用直接写入快速刷新以及直接内存中列存储填充。这些增强功能使 Fast Ingest 功能适用于更多需要快速摄取数据的情况。现在,Oracle Database 可以更好地支持需要快速数据摄取功能的应用。数据摄取后,您可以在同一数据库中处理所有数据。这将减少对特殊加载环境的需求,从而降低复杂性和数据冗余。

Globally Distributed Database 中的基于 Raft 的复制

Oracle Globally Distributed Database 在 Oracle Database 23c 中推出了 Raft 复制功能,让用户能够在节点或数据中心中断时,实现非常快速(不到 3 秒)的故障转移,确保零数据丢失。Raft 复制使用基于共识的提交协议,并通过指定复制因子以声明方式进行配置。Distributed Database 中的所有分片将充当数据子集的“引领者”和“追随者”。其中,所有分片均服务于应用流量,形成了主动—主动—主动对称分布式数据库架构。

这有助于在零数据丢失的情况下,提高可用性、简化管理并优化 Globally Distributed Database 环境的硬件利用率。

SQL Analysis Report

本周,我们将重点介绍 SQL Analysis Report。这是一个易于使用的功能,可帮助开发人员编写更好的 SQL 语句。SQL Analysis Report 可汇报 SQL 语句的常见问题,特别是可能导致 SQL 性能欠佳的问题。该功能可在 DBMS_XPLAN 和 SQL Monitor 中找到。

  • 区块链和不可变表(自 Oracle Database 19c 起可用)可使用加密安全方法保护数据,防止数据被外部黑客和内部恶意/泄露账户篡改或删除...

  • 除了现有的对象、系统和管理权限外,Oracle Database 如今还支持模式权限...

  • 使用 SQL Firewall 检测异常并防止 SQL 注入攻击。SQL Firewall 会检查所有 SQL,包括 IP 地址和操作系统用户等会话上下文信息...

  • Oracle Database 23c 新推出了一个新角色 DB_DEVELOPER_ROLE,它能够为应用开发人员提供在 Oracle Database 上设计、实施、调试和部署应用所需的所有权限…

区块链表

区块链和不可变表(自 Oracle Database 19c 起可用)可使用加密安全方法保护数据,防止数据被外部黑客和内部恶意/泄露账户篡改或删除。它能够通过仅插入限制来防止非授权更新或删除(即使是 DBA 操作),利用加密哈希链实施身份验证,基于签名表摘要检测任何大规模回滚,支持最终用户使用私钥对插入的行进行签名。时至今日,Oracle Database 23c 带来了丰富的增强功能,包括逻辑复制(基于 Oracle GoldenGate)和滚动升级(基于 Oracle Active Data Guard)支持;分布式事务(涉及区块链表)支持;高效、基于分区的批量删除(适用于过期的行);以及插入/提交性能优化。

Oracle Database 23c 还支持添加/删除列(不影响加密哈希链、用户特定链和关于筛选行的表摘要)、委托签名功能和数据库反签名;还使用 Oracle Flashback 和区块链历史表审计非区块链表历史变更,将加密安全数据管理扩展到了常规表。

这些功能尤其适合内置审计迹或日志使用场景,能够有效满足财务分类账、付款历史、监管合规性跟踪、法律日志和所有表示资产的数据的保护需求,防止非授权篡改和删除操作导致重大法律、商誉或财务损失。

模式权限

除了现有的对象、系统和管理权限外,Oracle Database 如今还支持模式权限。模式权限特性可以简化数据库对象授权,有助于更好地实施最小权限原则,消除关于访问权限的主观猜测,进而提高安全性。

SQL Firewall

使用 SQL Firewall 检测异常并防止 SQL 注入攻击。SQL Firewall 会检查所有 SQL,包括 IP 地址和操作系统用户等会话上下文信息。它嵌入到数据库内核中,将记录和(如果启用)阻止未经授权的 SQL,确保自身无法被绕过。通过实施 SQL 和经过批准的会话上下文允许列表,SQL Firewall 可以预防许多零日攻击,并降低凭证被盗用或滥用的风险。

DB_DEVELOPER_ROLE

Oracle Database 23c 新推出了一个新角色 DB_DEVELOPER_ROLE,它能够为应用开发人员提供在 Oracle Database 上设计、实施、调试和部署应用所需的所有权限,无需管理员再主观猜测应用开发需要哪些权限。

  • Oracle Database 现支持符合 ISO SQL 标准的布尔数据类型,您可以在表中存储 True(真)和 False(假)值,在 SQL 语句中使用布尔表达式...

  • Oracle Database 现支持您在 UPDATE 和 DELETE 语句中使用 FROM 子句将目标表连接到其它表。这些其它表可以限定可更改哪些行或为哪些行赋予新值...

  • 现在您可以在 GROUP BY、GROUP BY CUBE、GROUP BY ROLLUP 和 GROUP BY GROUPING SETS 子句中使用列别名或指定 SELECT 项位置。此外,HAVING 子句也支持列别名...

  • Oracle Database 中的 DDL 对象创建、修改和删除现已支持 IF EXISTS 和 IF NOT EXISTS 语法修饰符...

  • 借助 Oracle Database 23c,开发人员可以更轻松地基于 INTERVAL 值计算总值和平均值...

  • INSERT、UPDATE 和 DELETE 语句的 RETURNING INTO 子句经过增强,可以返回受相应语句影响的旧值和新值...

  • 您现在可以运行只有 SELECT 表达式(不带 FROM 子句)的查询。这个新特性可提高 SQL 代码可移植性并便于开发人员使用。

  • 通过创建 SQL 宏,您可以将常见 SQL 表达式和语句分解为可在其它 SQL 语句中重用的参数化构造...

  • 如果可以,SQL 语句中的 PL/SQL 函数会自动转换(转译)为 SQL 表达式…

  • Oracle Database SQL 引擎现支持对多种语句类型使用 VALUES 子句…

  • 注解可帮助您更好地存储和检索数据库对象元数据。作为一种自由格式文本字段,它们支持您自定义业务逻辑或用户界面...

  • Usage Domains(有时也称为 SQL Domains 或 Application Usage Domains)是适合用作轻量级类型修饰符的高级字典对象,可集中记录应用的预期数据使用情况...

  • 现在,您可以在单个行中存储更多属性,进而简化某些应用的应用设计和实施…

布尔数据类型

Oracle Database 现支持符合 ISO SQL 标准的布尔数据类型,您可以在表中存储 True(真)和 False(假)值,在 SQL 语句中使用布尔表达式。布尔数据类型能够以标准化方式存储 Yes 和 No 值,且可以轻松迁移至 Oracle Database。

在 UPDATE 和 DELETE 语句中直接连接数据库表

Oracle Database 现支持您在 UPDATE 和 DELETE 语句中使用 FROM 子句将目标表连接到其它表。这些其它表可以限定可更改哪些行或为哪些行赋予新值。利用这一直接连接特性,您可以更轻松地编写 SQL 语句来更改和删除数据。

GROUP BY 列别名

现在您可以在 GROUP BY、GROUP BY CUBE、GROUP BY ROLLUP 和 GROUP BY GROUPING SETS 子句中使用列别名或指定 SELECT 项位置。此外,HAVING 子句也支持列别名。这些新的 Database 23c 增强功能可帮助您更轻松地编写 GROUP BY 和 HAVING 子句,从而提高 SQL 查询的可读性和可维护性,并提高 SQL 代码的可移植性。

IF [NOT] EXISTS

Oracle Database 中的 DDL 对象创建、修改和删除现已支持 IF EXISTS 和 IF NOT EXISTS 语法修饰符。由此,您可以控制当一个给定对象存在或不存在时是否报错,在脚本中按应用简化错误处理。

INTERVAL 数据类型聚合

借助 Oracle Database 23c,开发人员可以更轻松地基于 INTERVAL 值计算总值和平均值。现在,你可以通过此增强功能将 INTERVAL 数据类型传递给 SUM 和 AVG 聚合和分析函数。

RETURNING INTO 子句

INSERT、UPDATE 和 DELETE 语句的 RETURNING INTO 子句经过增强,可以返回受相应语句影响的旧值和新值。开发人员可以对每个 DML 类型使用相同的逻辑来获取语句执行前和执行后的值。旧值和新值仅对 UPDATE 语句有效。INSERT 语句不返回旧值,DELETE 语句不返回新值。

作为 SQL 命令执行的一部分,该子句能够获取受 INSERT、UPDATE 和 DELETE 语句影响的旧值和新值,这为开发人员提供了读取这些值的统一方法,并减少了数据库必须执行的工作量。

SELECT 语句不带 FROM 子句

您现在可以运行只有 SELECT 表达式(不带 FROM 子句)的查询。这个新特性可提高 SQL 代码可移植性并便于开发人员使用。

SQL 宏

通过创建 SQL 宏,您可以将常见 SQL 表达式和语句分解为可在其它 SQL 语句中重用的参数化构造。SQL 宏既可以是标量表达式(常用于 SELECT 列表以及 WHERE、GROUP BY 和 HAVING 子句),也可以是表表达式(常用于 FROM 子句),还可以用于封装计算和业务逻辑。相比 PL/SQL 结构,SQL 宏可以显著提升性能,还可以提高开发人员效率,简化协作开发和优化代码质量。

SQL Transpiler

如果可以,SQL 语句中的 PL/SQL 函数会自动转换(转译)为 SQL 表达式。将 PL/SQL 函数转换为 SQL 语句可以缩短总执行时间。

Table Value Constructor

Oracle Database SQL 引擎现支持对多种语句类型使用 VALUES 子句,帮助您在不依赖现有表的情况下使用新语法指定数据行,从而动态地实现数据行实体化。Oracle Database 23c 支持对 SELECT、INSERT 和 MERGE 语句使用 VALUES 子句。利用新引入的 VALUES 子句,开发人员无需再编写大量代码来执行即席 SQL 指令,因此这在提高可读性的同时也减少了开发人员工作量。

使用注解

注解可帮助您更好地存储和检索数据库对象元数据。作为一种自由格式文本字段,它们支持您自定义业务逻辑或用户界面。利用注解(名值对或仅仅一个名称),您可以在所有应用中一致地使用数据库对象,简化开发工作并提高数据质量。

Usage Domains

Usage Domains(有时也称为 SQL Domains 或 Application Usage Domains)是适合用作轻量级类型修饰符的高级字典对象,可集中记录应用的预期数据使用情况。Usage Domains 可用于定义数据使用和实现标准化操作,以封装一组检查约束条件、显示属性、排序规则和其他使用属性,并且无需应用级元数据。

表中一个或多个列的 Usage Domains 不会修改底层数据类型,因此也可以在不破坏应用或创建可移植性问题的情况下,添加到现有数据。

Wide Tables — 现支持多达 4096 列

现在,您可以在单个行中存储更多属性,进而简化某些应用的应用设计和实施。

数据库表或视图中所支持的列数已增加到 4096。相较于以前仅支持 1000 列的限制,这项新特性让您可以构建可在单个表中存储属性的应用。某些应用(如机器学习和流式物联网 (IoT) 应用工作负载)可能需要使用列数超过 1000 的非规范化表。

  • Oracle Database 23c 和 CMAN-TDM 现在提供的连接管理和监视功能包括隐式连接池、多池 DRCP、per-PDB PRCP 等…

  • Oracle Database 23c 中的管道功能使 .NET、Java 和 C/C++ 应用无需等待服务器响应即可向数据库发送多个请求...

  • 多语言引擎 (MLE) 模块调用功能支持开发人员在 SQL 和 PL/SQL 中调用模块中存储的 JavaScript 函数。基于 PL/SQL 编写的调用规范能够将 JavaScript 链接到 PL/SQL 代码单元...

  • 作为 Oracle Database 23c 的其中一项新功能,该客户端功能能够将 Oracle 配置信息(如连接字符串)存储在 Microsoft Azure 应用配置或 Oracle Cloud Infrastructure Object Storage 中…

  • 可观测性的三大支柱分别是指标、日志记录和分布式跟踪。此发行版提供了增强的日志记录、新的调试(首次故障诊断)以及新的跟踪功能…

  • Oracle Database 23c 推出了 Transportable Binary XML (TBX),这是一种全新的自包含 XMLType 存储方法。TBX 支持分片、XML 搜索索引和 Exadata 下推操作,提供比其他 XML 存储选项更好的性能和可扩展性…

实现高可扩展性的连接管理

Oracle Database 23c 和 CMAN-TDM 现在提供的连接管理和监视功能包括隐式连接池、多池 DRCP、per-PDB PRCP 等。通过利用 DRCP 和 PRCP 中的新功能,可以增强 C、Java、Python、Node.js 和 ODP.NET 应用的可扩展性和功能。使用 Oracle Database 23c 中新的 V$TDM_STATS 动态视图的统计信息,有效监控 PRCP 池的使用情况。

数据库驱动程序异步编程和管道

Oracle Database 23c 中的管道功能使 .NET、Java 和 C/C++ 应用无需等待服务器响应即可向数据库发送多个请求。Oracle Database 将对这些请求进行排队并逐个处理,以便客户端应用可以继续工作,直到收到请求完成通知。这些增强功能可改善最终用户体验、提高数据驱动的应用的响应能力,提供端到端可扩展性,避免性能瓶颈,并提高服务器和客户端的资源利用效率。

对于需要立即返回的客户端请求,Oracle Database 管道要求 .NET、Java 和 C/C++ 驱动程序中具备异步或响应式 API。这些机制可用于 Oracle Database,无论是否使用数据库管道。

对于 Java,Oracle Database 23c 在 Java Database Connectivity (JDBC)、Universal Connection Pool (UCP) 和 Oracle R2DBC Driver 中提供响应式扩展。它还支持驱动程序 (Project Loom) 中的 Java 虚拟线程以及 Reactive Streams 库,例如 Reactor、RxJava、Akka Streams、Vert.x 等。

JavaScript 存储过程

多语言引擎 (MLE) 模块调用功能支持开发人员在 SQL 和 PL/SQL 中调用模块中存储的 JavaScript 函数。基于 PL/SQL 编写的调用规范能够将 JavaScript 链接到 PL/SQL 代码单元。这意味着开发人员可以在任何调用了 PL/SQL 函数的位置使用 JavaScript 函数。

多云配置和安全集成

作为 Oracle Database 23c 的其中一项新功能,该客户端功能能够将 Oracle 配置信息(如连接字符串)存储在 Microsoft Azure 应用配置或 Oracle Cloud Infrastructure Object Storage 中。此新功能使用 Oracle JDBC、.NET、Python、Node.js 和 Oracle Call Interface 数据访问驱动程序,简化了应用的云技术配置、部署和连接。这些信息存储在配置提供程序中,提供了分离应用代码和配置的优势。

可与云端和数据库的 OAuth 2.0 单点登录结合使用,进一步简化管理。Oracle Database 23c 客户端可以使用 Microsoft Entra ID、Azure Active Directory 或 Oracle Cloud Infrastructure 访问令牌登录数据库。

Java 和 .NET 应用的可观测性、OpenTelemetry 和诊断性

可观测性的三大支柱分别是指标、日志记录和分布式跟踪。此发行版提供了增强的日志记录、新的调试(首次故障诊断)以及新的跟踪功能。JDBC 和 ODP.NET 驱动程序还使用用于跟踪数据库调用的异常分支进行检测;此异常分支使用 OpenTelemetry 启用分布式跟踪。

Transportable Binary XML

Oracle Database 23c 推出了 Transportable Binary XML (TBX),这是一种全新的自包含 XMLType 存储方法。TBX 支持分片、XML 搜索索引和 Exadata 下推操作,提供比其他 XML 存储选项更好的性能和可扩展性。

得益于更多数据库架构(例如分片或 Exadata)的支持及其在不同服务器、容器和 PDB 之间轻松迁移和交换 XML 数据的功能,TBX 允许您的应用在更多平台和架构上充分利用这种新的 XML 存储格式。

您可以通过以下任一方式,将不同格式的现有 XMLType 存储迁移到 TBX 格式:

Insert-as select 或 create-as-select

联机重新定义

Oracle Data Pump

  • JSON 数据类型是经过 Oracle 优化的二进制 JSON 格式,称为 OSON。它旨在提高数据库和数据库客户端(21c 及更高版本)的查询速度和 DML 性能...

  • JSON Relational Duality 是 Oracle Database 23c 引入的一个创新特性,它能够统一关系和文档数据模型,将两者优势结合在一起...

  • Oracle Database 支持使用 JSON 来存储和处理弹性模式的数据。在新版本的 Oracle Database 23c 中,Oracle Database 现已支持使用 JSON Schema 来验证 JSON 数据的结构和值...

  • PL/SQL JSON 构造函数经过增强,可以接受对应的 PL/SQL 聚合类型实例,返回填充了聚合类型数据的 JSON 对象或数组类型。

  • 借助 Oracle Database API for MongoDB,开发人员可以继续使用连接到 Oracle Database 的 MongoDB 工具和驱动程序,同时访问 Oracle 的多模型功能和自治驱动数据库...

JSON 二进制数据类型

JSON 数据类型是经过 Oracle 优化的二进制 JSON 格式,称为 OSON。它旨在提高数据库和数据库客户端(21c 及更高版本)的查询速度和 DML 性能。

JSON Relational Duality 视图

JSON Relational Duality 是 Oracle Database 23c 引入的一个创新特性,它能够统一关系和文档数据模型,将两者优势结合在一起。这意味着,开发人员可以基于单一信息源构建关系模式或 JSON 模式应用,同时获得这两种模型的优势。他们只需进行一次数据存储,即可使用任一方法访问、写入和修改数据。此外,开发人员还能够充分利用符合 ACID 规则的事务处理和并发控制,不再需要在复杂的对象关系映射或数据不一致问题之间进行取舍。

JSON Schema

Oracle Database 支持使用 JSON 来存储和处理弹性模式的数据。在新版本的 Oracle Database 23c 中,Oracle Database 现已支持使用 JSON Schema 来验证 JSON 数据的结构和值。SQL 运算符 IS JSON 经过增强,可以接受 JSON Schema,并且添加了各种 PL/SQL 函数来验证 JSON 并将数据库对象(如表、视图和类型)描述为 JSON Schema 文档。

默认情况下,JSON 数据是无模式的,这带来了极大的灵活性。但是,如果您需要确保 JSON 数据具有特定的结构和类型,可以通过行业标准的 JSON Schema 验证来完成。

为 JSON Schema 开发做出贡献
Oracle 积极推动 JSON Schema 开发,这是一款开发工具,它将基于 JSON 的声明式语言实现标准化,支持您批注和验证 JSON 文档。JSON Schema 目前正处于请求注解 (RFC) 阶段。

PL/SQL JSON 构造函数支持聚合类型

PL/SQL JSON 构造函数经过增强,可以接受对应的 PL/SQL 聚合类型实例,返回填充了聚合类型数据的 JSON 对象或数组类型。

PL/SQL JSON_VALUE 运算符经过增强,它的返回子句可以接受类型名称,后者用于定义运算符要返回的实例的类型。JSON 构造函数支持聚合数据类型,这简化了 PL/SQL 应用与支持 JSON 的语言之间的数据交换。

与 MongoDB 兼容的 API

借助 Oracle Database API for MongoDB,开发人员可以继续使用连接到 Oracle Database 的 MongoDB 工具和驱动程序,同时访问 Oracle 的多模型功能和自治驱动数据库。客户可以在 Oracle Cloud Infrastructure (OCI) 上运行 MongoDB 工作负载。在一般情况下,现有 MongoDB 应用几乎不需要进行任何更改,只需更改连接字符串即可运行。

Oracle Database API for MongoDB 属于标准 Oracle REST Data Services 的一部分,作为 Oracle Autonomous Database 的一部分进行预配置和完全管理。

  • 在 2023 年结束之际,让我们一起回顾 Oracle Database 23c 今年推出了哪些新特性…

  • Oracle Database 23c 推出了在线迁移工具,可编排自动化、源和目标兼容性诊断和修复,提供一体化的用户体验,简化了从 Oracle Advanced Queuing (AQ) 到 Transactional Event Queues (TxEventQ) 的过程…

  • Oracle Database 23c 提供更精细的 Oracle Database 与 Apache Kafka 应用兼容性…

  • Lock-Free Reservations 特性可确保并发事务在频繁更新行时继续无阻滞运行。顾名思义,Lock-Free Reservations 支持对行进行无锁保留(而不是锁定行)…

  • Oracle 进一步扩展了云原生和 Kubernetes 支持,凭借全新面向 Oracle Database 的 Observability Exporter…

  • Oracle Database 23c 新增的 Saga 框架可为在数据库中构建异步 Saga 应用提供统一框架…

AQ to TxEventQ Online Migration Tool

Oracle Database 23c 推出了在线迁移工具,可编排自动化、源和目标兼容性诊断和修复,提供一体化的用户体验,简化了从 Oracle Advanced Queuing (AQ) 到 Transactional Event Queues (TxEventQ) 的过程。您既可以选择短期或长期迁移方案,也可以选择在迁移过程中是否要停止 AQ,避免运营中断。

对于现有 AQ 客户,如果想要获得 Kafka Java 客户端和类似 Confluent 的 REST API 的更高吞吐量队列和 Kafka 兼容性,可以轻松地从 AQ 迁移到 TxEventQ。TxEventQ 提供可扩展性、性能、基于密钥的分区和本机 JSON 有效负载支持,有助于使用多种语言(包括 Java、JavaScript、PL/SQL、Python 等)轻松地编写事件驱动的微服务/应用。

Kafka API

Oracle Database 23c 提供更精细的 Oracle Database 与 Apache Kafka 应用兼容性,支持轻松将 Kafka Java 应用迁移至 Transactional Event Queues (TxEventQ)。这意味着 Kafka Java API 现在可以连接 Oracle Database 服务器,使用 TxEventQ 作为消息传递平台。

开发人员可以使用 JDBC 瘦驱动程序,轻松将现有的使用 Kafka 的 Java 应用迁移至 Oracle Database。同时,利用 Oracle Database 23c 的客户端库功能,Kafka 应用可以连接 Oracle Database(而非 Kafka 集群),并透明地使用 TxEventQ 作为消息传递平台。

无锁列值保留

Lock-Free Reservations 特性可确保并发事务在频繁更新行时继续无阻滞运行。顾名思义,Lock-Free Reservations 支持对行进行无锁保留(而不是锁定行),能够验证更新能否成功,延迟更新直到事务提交时间。Lock-Free Reservations 可有效改善用户体验,提高事务并发性能。

Grafana 可观测性

Oracle 进一步扩展了云原生和 Kubernetes 支持,凭借全新面向 Oracle Database 的 Observability Exporter,支持客户轻松导出符合行业标准的 Prometheus 格式的数据库和应用指标,并创建 Grafana 仪表盘来监视 Oracle Database 和应用的性能。

Oracle Database 23c 中的 Saga API

Oracle Database 23c 新增的 Saga 框架可为在数据库中构建异步 Saga 应用提供统一框架。Saga 能够使现代高性能微服务应用开发更轻松、更可靠。

Saga 是跨多个数据库的业务事务处理,作为一系列独立的本地事务处理实施。Saga 避免了同步分布式事务中出现的全局事务持续时间锁定,简化了维护全局应用状态的一致性要求。Saga 框架与 Oracle Database 23c 中的 Lock-Free 可保留列相集成,以此提供自动 Saga 补偿,简化了应用开发。

Saga 框架模拟 MicroProfile LRA 规范。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. Oracle专指Oracle境外公司而非甲骨文中国。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。