Oracle Database 19c,也就是12.2.0.3,最初在livesql.oracle.com上发布,是Oracle Database 12c和18c系列产品的最终版本,因此也是“长期支持”版本(以前称为“终端版本”)。
“长期支持”意味着Oracle Database 19c提供4年的高级支持(截止到2023年1月底)和至少3年的延长支持(截至2026年1月底)。这个扩展的支持窗口对我们的很多客户至关重要,因为很多客户制定了相关的升级策略。有关最新的Oracle支持计划,请参阅My Oracle Support上的文档ID 742060.1。截止目前,Oracle Database 19c已经可以在Oracle数据库一体机上使用了。
Oracle Database 19c的目标
Oracle Database 19c是大多数客户准备要升级的版本,Oracle已将稳定性作为此版本的核心目标。在Oracle Database 19c中,开发人员专注于修复已知问题,而不是添加新功能。在数年内我们已有数百人和数千台服务器每天24小时的运行测试。测试包括数据库的核心、安装程序,再到组成产品的子程序及实用工具的堆栈等所有方面。目标只有一个,保证数据库的稳定性。真正的为客户带来实惠。
走过的路
在我们讨论Oracle Database 19c中的一些改进之前,重要的是要记住Oracle数据库在过去40年中一直是企业系统的基石。在此期间,我们在客户顾问委员会的指导下添加了众多功能,从行级锁定和可伸缩读取一致性,再到逻辑上将表分成较小的分区再通过并行查询每秒扫描数十亿行记录等。其中许多功能都是业界领先的,并且在许多情况下仍然是Oracle数据库的独特之处。
当数据无法访问时,数据对企业用户没什么价值。Oracle数据库确保数据库服务器在意外中断后重新启动时保持一致。通过灾难恢复,Oracle数据库可以提供远距离数据的同步(或异步)复制,同时还可用于报表和备份。在任何服务器中断可能产生严重影响的任务关键系统中,几乎都使用了Oracle Real Application Clusters(RAC)。RAC还使客户能够将Oracle数据库扩展到非常高的吞吐量和并发性,而无需更改其应用程序。
Oracle数据库被广泛认为是业界最安全的数据存储库之一。没有其他数据库的解决方案具有如此强大的功能。无论是我们实现的简单访问控制还是将数据安全控制到行级别。我们在数据的整个生命周期中都可以对数据进行加密,以确保最大限度地减少恶意访问。
12c到18c重要功能
Oracle Database 18c和之前发布的Oracle Database 12c系列引入了数百项新功能和改进。一些重要的功能包括:
Multitenant
在Oracle数据库的云战略架构中引入了可插拔数据库(PDB)的概念,她使用户能够插入和拔出数据库,并在本地或云端的容器之间移动。这种架构支持大规模整合,能够有效地共享内存和处理器资源,并将许多数据库作为一个整体管理(比如用于备份,补丁和升级等)。
JSON Support
为开发人员提供了一种更灵活的方法来定义其持久的schema-less数据模型。除了能够将JSON存储在数据库中之外,开发人员还可以使用SQL和所有Oracle的高级分析功能来查询它。为了减轻处理大型JSON数据集合的负担,Oracle数据库还支持并行扫描和/或更新。对于希望构建应用程序并且更喜欢使用简单NoSQL API的开发人员,Oracle数据库为C,Java,PL/SQL,Python,Node和REST提供SODA(Simple Object Data Access)API。
Database In-memory
使用户能够针对其运营数据库执行快速分析,而无需购买新硬件或在处理数据时做出妥协。 Oracle数据库具有双内存模型,其中OLTP数据既可以作为行保存,高效地更新,也可以在内存以列格式存在,使其能够更快地进行扫描和聚合。过去需要花费数小时的报表现在可以在几秒钟内执行。此外,Oracle可以将JSON文档存储在内存中的列存储中,以便快速分析半结构化数据。
Sharding
为客户在使用的典型的SMP Server范围之外扩展提供了OLTP可伸缩性和故障隔离。它还支持由于性能或规则等原因需要将数据放置在地理位置的应用场景。与使用类似可扩展性方法的本地部署相比,Oracle Sharding提供了卓越的运行时性能和更简单的生命周期管理。用户还可以自动扩展分片以适应工作负载的增加。
Oracle Database 19c中的新增功能
EZConnect连接数据库接受参数
sqlplus soe/soe@//server1:1521/sales.example.com?connect_timeout=60&transport_connect_timeout=30&retry_count=3
自动执行root脚本
安装数据库时,自动执行root脚本。GI已经可以自动执行root脚本。
DataPump支持Oracle云上对象存储。LISTAGG函数支持对数据排重。DataGuard中flashback,restore point都有增强。虽然稳定性是Oracle Database 19c的重点,但并不是说没有一些值得一提的新功能和增强功能,例如:
Automatic Indexing
如果没有相关经验,优化数据库性能对许多客户来说都是一个挑战。要确定表中的哪些列需要索引,不仅有益于单个查询,而且还可能有益于多个甚至数千种变形的查询,就需要深入了解Oracle数据库的数据模型,性能相关功能的特性以及底层硬件等。在Oracle Database 19c中,我们引入了自动索引,它不断评估执行的SQL和基础表,以确定要创建哪些索引以及可能删除哪些索引。它通过专家系统完成此任务,该系统验证索引可能做出的改进,并在创建之后验证所做的假设。然后它使用强化学习来确保它不再犯同样的错误。最重要的是,随着数据模型和访问路径的变化,Oracle Database 19c能够随着时间的推移进行调整。
Active Standby DML Redirect
Active Data Guard的一个流行功能是备用数据库可以持续恢复从主数据库发送的redo信息,再利用备用数据库进行报告和备份。通过Active Data Guard利用备用数据库是企业资源充分利用的重大改进,但许多报告应用程序可能需要能够持久保存某些数据,例如记录信息以用于审计目的。在Oracle Database 19c中,现在允许用户将此类写请求发送到备用数据库。然后将这些写入透明地重定向到主数据库并首先写入(以确保一致性),再将更改发送回备用数据库。此方法允许应用程序将备用数据库用于适量的写入工作负载,而无需更改任何应用程序。
Hybrid Partitioned Tables
使用混合分区表,DBA现在可以像以前一样将数据分成可管理的分区,但DBA现在可以选择应该在数据库中保留哪些分区以进行快速查询和更新,以及哪些分区可以只读并存储在外部分区中。这些外部分区可以在标准文件系统内部或低成本HDFS上保留。DBA还可以选择将数据放在基于云的对象存储中,从而将表“拉伸”到云端。
JSON Enhancements
Oracle Database 19c中对JSON支持进行了大量持续性的增强,从简化SQL功能到部分更新JSON文档。
Memoptimized Rowstore
此功能适用于从物联网(IOT)等应用程序快速将数据插入Oracle Database 19c。通过这个功能,要写入的数据暂时缓存在Large Pool中,然后再以异步批量方式写入磁盘,进而提高性能。
Quarantine SQL Statements
SQL语句由于过度消耗处理器和I/O资源而由资源管理器终止的失控SQL语句现在可以自动隔离。这可以防止这些失控的SQL语句再次执行,从而保护Oracle Database 19c免受性能下降的影响。
Real Time Statistics
查询优化器需要对表中数据的结构和组成进行详细统计,以使它们能够就如何执行复杂查询做出“最佳”选择。这样做的问题是统计收集可能需要占用很多资源,并且需要一段时间。对于一些“实时在线”应用程序,有时找到运行批处理以收集统计信息的窗口很困难。在Oracle Database 19c中,收集统计信息,就像实时插入,更新或删除数据的操作一样简单。现在,客户无需再为由于统计信息不准确,再找合适的时间窗口做维护而烦扰。
Security
在安全方面,Oracle的内置账户可以启用schema-only模式。避免由于通过使用默认账户造成的攻击。通过Oracle的企业管理器还可以对数据库用户的权限做全方位的分析,来,进一步来保证数据的安全。
有关Oracle Database 19c中新功能的完整列表,请查看最新的文档或登录https://apex.oracle.com/database-features/查看。
有关其他平台(包括本地和Oracle云(包括自治数据库云服务))的最新Oracle Database 19c可用时间,请查看My Oracle Support上的文档ID 742060.1。