oracle19cNewFeatures(oracle19c新特性)
1.应⽤开发
这个⾥⾯是对java,jsion的功能加强了
Java的应⽤程序连续性:声明式请求划分
在⾃动模式下配置Java的Application Continuity时(即服务FAILOVER_TYPE = AUTO),Java数据库连接(JDBC)驱动程序在创建带有重播数据源的JDBC连接后,会在运⾏时注⼊beginRequest调⽤。
此功能确保Java应⽤程序和第三⽅连接池的停机时间为零,⽽⽆需进⾏代码更改。
Java的应⽤程序连续性:新状态管理
此功能引⼊了新的会话状态,包括AL8KW_ERR_OVLAP,AL8KW_EDITION,AL8KW_SQL_TXLP和AL8KW_ROW_ARCHIVAL。这些会话状态正常活动期间保存和恢复在故障转移时FAILOVER_RESTORE设置和故障转移等于AUTO。
此功能增强了Java应⽤程序连续性的透明度。
物化视图⽀持包含JSON_TABLE的查询
现在,具有JSON_EXISTS,JSON_VALUE和其他功能的查询可以利⽤在使⽤JSON_TABLE函数的查询上创建的实例化视图。
当列中的JavaScript对象符号(JSON)⽂档包含数组时,此功能特别有⽤。这种类型的实例化视图为访问这些JSON数组中的数据提供了快速的性能。
JSON更新操作
现在,您可以使⽤新的SQL函数JSON_MERGEPATCH更新JavaScript对象符号(JSON)⽂档,并通过⼀个语句将⼀个或多个更改应⽤于多个⽂档。
此功能提⾼了JSON更新操作的灵活性。
SQL / JSON语法简化
现在,您可以对字段投影,SQL / JSON路径表达式和SQL / JSON⽣成函数JSON_OBJECT使⽤更简单的语法。
⽤于JavaScript对象表⽰法(JSON)处理的SQL接⼝更易于⽤于某些操作。
JSON对象映射
现在,您可以将JavaScript对象表⽰法(JSON)数据与SQL对象类型和集合类型之间进⾏映射。
此功能使使⽤SQL对象和集合的程序更易于与基于JSON的应⽤程序进⾏交互。
新的SQL / JSON函数JSON_SERIALIZE和JSON数据指南对GeoJSON数据的⽀持
您可以使⽤新的SQL / JSON函数JSON_SERIALIZE将JavaScript对象表⽰法(JSON)数据序列化为⽂本。聚合函数JSON_DATAGUIDE现在可以检测GeoJSON地理数据。
LISTAGG汇总的DISTINCT选项
现在,LISTAGG聚合函数通过使⽤新的DISTINCT关键字来⽀持重复消除。
所述LISTAGG根据聚合函数订单的每个组中的⾏的查询ORDER BY表达式,然后串接的值成⼀个字符串。您可以使⽤新的DISTINCT关键字从指定的表达式中删除重复的值,然后再将其串联为单个字符串。这消除了使⽤聚合的LISTAGG函数之前创建复杂查询处理以查不同值的需要。使⽤DISTINCT选项删除LISTAGG函数中的重复值。
结果是更简单,更快,更有效的SQL。
值得注意的是,oracle11g 开发⽀持wm_concat,但是12c之后,要⽤wm_concat,需要换成listagg,在升级的时候,需要让业务测试,以免出现不必要的业务问题。
2.可⽤性
动态更改Oracle Data Guard Broker快速启动故障转移⽬标
快速启动故障转移⽬标备⽤数据库可以动态更改为⽬标列表中的另⼀个备⽤数据库,⽽⽆需禁⽤快速启动故障转移。
在早期版本的Oracle数据库中,必须禁⽤快速启动故障转移才能移⾄新的⽬标备⽤数据库。这使代理配置处于完全⽆法使⽤⾃动故障转移的时期。您可以使⽤SET FAST_START FAILOVER TARGET命令来动态更改快速启动故障转移⽬标备⽤数据库。
Format
SET FAST_START FAILOVER TARGET TO database-name [NOWAIT];
DGMGRL> SET FAST_START FAILOVER TARGET TO Boston;
Changing fast-start failover target to ‘Boston’…
Succeeded.
DGMGRL> SHOW FAST_START FAILOVER;
Oracle Data Guard Broker中的简化数据库参数管理
通过允许通过SQL * Plus进⾏所有参数管理,简化了Oracle Data Guard代理配置中的数据库参数管理。消除了数据库的Data Guard参数设置和Data Guard Broker的属性设置之间的不⼀致。
现在,您可以使⽤SQL * Plus ALTER SYSTEM命令或通过新EDIT DATABASE ... SET PARAMETER命令在Data Guard Broker命令⾏界⾯(DGMGRL)中管理所有与Oracle Data Guard相关的参数设置。在DGMGRL中进⾏的参数更改将⽴即在⽬标数据库上执⾏。
Oracle Data Guard Broker的快速启动故障转移的仅观察模式
“仅观察”模式使您可以测试⾃动快速启动故障转移,⽽不会影响Oracle Data Guard代理配置中的⽣产数据库。
配置快速启动故障转移时,可以使⽤仅观察模式创建测试模式,该模式检查正常⽣产过程中何时发⽣故障转移或其他交互。您可以使⽤此测试中的信息来更精确地调整快速启动故障转移属性。您还可以发现环境中的哪些情况会导致⾃动故障转移。
将还原点从主站点传播到备⽤站点
在主数据库上创建的还原点将传播到备⽤站点,以便即使在执⾏故障转移操作之后也可以使⽤它们。
在主站点上定义了正常还原点或保证的还原点,以在发⽣逻辑损坏时实现快速的时间点恢复。这些还原点存储在控制⽂件中。发⽣故障转移时,备⽤数据库将成为主数据库。但是,还原点信息会丢失。将还原点从主数据库传播到备⽤数据库可简化故障转移后的还原和恢复过程,因为备⽤数据库是使⽤在主数据库上创建的还原点进⾏更新的。
闪回主数据库时闪回备⽤数据库
在主数据库上执⾏闪回操作时,可以⾃动闪回Oracle Data Guard设置中的备⽤数据库。
在主数据库上执⾏闪回操作时,备⽤数据库不再与主数据库同步。在早期版本中,您需要执⾏某些步骤以将备⽤数据库与主数据库同步。此功能引⼊了⼀个新参数,当对主数据库执⾏闪回操作时,该参数可使备⽤数据库⾃动闪回。这样可以减少时间,精⼒和⼈为错误,从⽽加快同步速度并减少恢复时间⽬标(RTO)。
Oracle Data Guard多实例重做应⽤程序可与内存中列存储⼀起使⽤
现在可以在活动Data Guard备⽤数据库上同时启⽤“内存中列存储”和“ Data Guard多实例重做应⽤”。以前,这两个功能是互斥的。
现在,您可以在同⼀Active Data Guard备⽤数据库上使⽤最快的重做应⽤技术(Data Guard多实例重做
应⽤)和最快的分析查询技术(内存列存储),以充分利⽤这两个功能。多实例重做应⽤使⽤Active Data Guard备⽤数据库上的内存列存储中的信息,以尽可能提⾼应⽤速度。
活动Data Guard DML重定向
偶然数据处理语⾔(DML)操作可以在Active Data Guard备⽤数据库上运⾏。当需要进⾏某些写操作时,这将使更多应⽤程序受益于使⽤Active Data Guard备⽤数据库。
DML重定向有助于在主数据库和备⽤数据库之间实现负载平衡。在Active Data Guard备⽤数据库上发布偶然DML时,更新将传递到执⾏该更新的主数据库。事务的结果重做将更新备⽤数据库,然后将控制权返回给应⽤程序。
PDB恢复⽬录
当⽬标数据库是可插拔数据库(PDB)时,⽀持与恢复⽬录的连接。
Oracle Database 19c版为多租户容器数据库(CDB)和PDB级别的备份和还原提供了完整的备份和恢复灵活性,包括恢复⽬录⽀持。您可以使⽤虚拟专⽤⽬录(VPC)⽤户来精细控制权限,以在PDB级别执⾏备份和还原操作。元数据视图也受到限制,因此VPC⽤户只能查看已被授予⽤户权限的数据。
定期清除闪回⽇志,以提⾼快速恢复区域⼤⼩的可预测性
通过⾃动删除超出保留期限的闪回⽇志,可以改善快速恢复区域的管理和数据库的运⾏状况。
快速恢复区域对于数据库⾄关重要,因为它存储备份,联机重做⽇志,归档的重做⽇志和闪回⽇志。因为许多数据库都可以使⽤快速恢复区域,所以当快速恢复区域变满时,多个数据库会受到影响。从存储管理的⾓度来看,此功能使闪回空间的使⽤变得可预测,因为闪回所使⽤的空间不超过保留所需的空间。它还允许您通过调整回闪保持⼒来控制累积的空间压⼒。
利⽤Oracle Data Guard调整⾃动中断解决⽅案的新参数
可以调整Oracle Data Guard⾃动中断解决⽅案以满⾜您的特定需求。
Oracle Data Guard在主数据库和备⽤数据库上有多个进程,它们通过⽹络相互通信以管理重做传输和归档。在某些故障情况下,⽹络挂起,断开连接和磁盘I / O 问题,这些过程可能挂起,从⽽可能导致重做传输和间隙解决⽅⾯的延迟。Oracle Data Guard具有内部机制来检测这些挂起的进程并终⽌它们,从⽽允许进⾏正常的停机解决⽅案。现在,您可以使⽤两个新参数DATA_GUARD_MAX_IO_TIME和DATA_GUARD_MAX_LONGIO_TIME,根据⽤户⽹络和磁盘I / O⾏为来调整特定Oracle Data Guard配置的等待时间。
细粒度补充测井
细粒度的补充⽇志记录为部分数据库复制⽤户提供了⼀种对不感兴趣的表禁⽤补充⽇志记录的⽅式,因此,即使在数据库或架构级别启⽤了补充⽇志记录,对于不感兴趣的表也没有补充⽇志记录开销。
当仅数据库中的某些表需要补充⽇志记录时(例如在Oracle GoldenGate部分复制配置中),使⽤此功能可以⼤⼤减少资源使⽤和重做⽣成⽅⾯的开销。补充⽇志记录是为逻辑备⽤数据库或完整的数据库复制要求⽽设计和实现的。在仅复制表⼦集的环境中,这会增加不必要的开销。
Oracle Sharding  “分⽚”
多表家族对系统管理的分⽚的⽀持
在19c中,可以在分⽚数据库中创建多个表族,每个表族都可以使⽤不同的分⽚键进⾏分⽚。
现在可以将访问不同表系列的不同应⽤程序托管在⼀个分⽚数据库中。此功能仅适⽤于系统管理的分⽚数据库。
三.⼤数据与数据仓库
⾃动索引
⾃动索引功能可根据应⽤程序⼯作负载的变化⾃动执⾏索引管理任务,例如在Oracle数据库中创建,重建和删除索引。
jdbc连接oracle
此功能通过在Oracle数据库中⾃动管理索引来提⾼数据库性能。
SQL诊断和修复增强功能
SQL诊断和修复⼯具(例如SQL测试⽤例⽣成器和SQL修复顾问)已得到增强,以提供更好的诊断和修复功能来管理有问题的SQL语句。
这些增强功能可以更有效地诊断和修复有问题的SQL语句。
基于位图的计数不同的SQL函数
使⽤新的位向量SQL运算符可加快SQL查询中的COUNT DISTINCT操作。要为数字表达式计算COUNT(DISTINCT),可以创建表达式的位向量表⽰形式,并在最终位计数之前对其进⾏汇总。可以在实例化视图中实例化⽣成的位向量。
您可以通过进⼀步分组⽐⽬标查询更⼤的GROUP BY键来构造位向量,以便可以使⽤⼀个物化视图通过使⽤ROLLUP来重写带有COUNT(DISTINCT)表达式的多个GROUP BY查询。
在⼤多数情况下,将位向量SQL函数与实例化视图结合使⽤,可以显着提⾼具有COUNT(DISTINCT)操作的查询的性能,这在数据仓库环境中很常见。⾃然会并⾏评估新的运算符,并利⽤硬件优化的位图操作。通过在较低级别的聚合级别使⽤位向量创建实例化视图,可以使⽤ROLLUP重⽤相同的实例化视图以在较⾼级别的聚合级别重写查询。
相关话题
内存中外部表的⼤数据和性能增强
内存中外部表增加了对ORACLE_HIVE和ORACLE_BIGDATA驱动程序,并⾏查询,Oracle Real Application Clusters,Oracle Active Data Guard和按需填充的⽀持。
通过使⽤新的⼤数据驱动程序,可以避免在将数据填充到内存中列存储(IM列存储)中之前实现数据的成本和复杂性。您可以使⽤Oracle数据库和数据库内存中的SQL分析功能来分析内部和外部数据。⽀持并⾏查询和完全扫描填充,这意味着应⽤程序在访问驻留在数据库外部的数据时具有较少的限制。
相关话题
⾃动SQL计划管理
⾃动SQL计划管理⽆需⽤户⼲预即可解决计划回归问题。例如,如果⾼负载的语句执⾏不理想,则SQL计划管理演进顾问可以⾃动定位这些语句,然后测试并接受最佳计划。
SQL计划管理在⾃动⼯作量存储库(AWR)中搜索SQL语句。通过按最⾼负载进⾏优先级排序,它会在所有可⽤资源中寻替代计划,从⽽将性能更好的计划添加到SQL计划基准中。Oracle数据库还提供了计划⽐较⼯具和改进的提⽰报告。
使⽤⾃动化可以⼤⼤减少SQL语句性能下降的影响。
Oracle Database在常规数据操作语⾔(DML)操作期间⾃动收集在线统计信息。
在执⾏DBMS_STATS统计信息收集作业之间,统计信息可能会过时。通过在DML操作期间⾃动收集⼀些统计信息,数据库可以扩展DBMS_STATS收集的统计信息。最新的统计信息使优化器可以⽣成更优化的计划。
⾼频⾃动优化器统计信息收集
您可以配置轻量级的⾼频⾃动任务,该任务定期收集过时对象的优化程序统计信息。
在执⾏DBMS_STATS作业之间,统计数据可能过时。通过更频繁地收集统计信息,优化器可以⽣成更优化的计划。
混合分区表
混合分区表功能通过使分区既可以驻留在Oracle数据库段中也可以驻留在外部⽂件和源中来扩展Oracle分区。此功能显着增强了⼤数据SQL分区的功能,其中表的⼤部分可以驻留在外部分区中。
混合分区表使您可以将内部分区和外部分区集成到单个分区表中。使⽤此功能,您还可以将⾮活动分区移动到外部⽂件(例如Oracle Data Pump⽂件),以获得更便宜的存储解决⽅案。
不过我感觉⼤多数这种业务场景⽤起来的少。
四.数据库整体
能够在静默模式下使⽤DBCA创建Oracle数据库的副本
现在,您可以在静默模式下使⽤数据库配置助⼿(DBCA)的createDuplicateDB命令来创建Oracle数据库的副本。
此功能使开发⼈员可以处理Oracle数据库的相同副本。
能够在静默模式下使⽤DBCA将PDB重定位到另⼀个CDB
现在,您可以在静默模式下使⽤数据库配置助⼿(DBCA)的relocatePDB命令将可插拔数据库(PDB)移⾄另⼀个多租户容器数据库(CDB)。
通过此功能,可以在静默模式下使⽤DBCA⾃动执⾏重新定位PDB的PDB⽣命周期操作。
通过以静默模式使⽤DBCA克隆远程PDB来创建PDB的能⼒
现在,您可以通过以静默⽅式使⽤数据库配置助⼿(DBCA)的createPluggableDatabase命令的createFromRemotePDB参数克隆远程PDB来创建可插拔数据库