更新时间:2024-10-22 GMT+08:00
分享

V2.0-3.x版本

本章节介绍云数据库 GaussDB的内核V2.0-3.x版本更新说明。版本号说明、版本映射关系以及如何查看版本号请参考数据库引擎版本说明

表1 V2.0-3.226.0版本更新说明

时间

需求名称

描述

2024.5

PITR模块化解耦

GaussDB进程启动与barrier文件加载解耦,barrier文件内容错误时,不影响GaussDB启动,不影响GaussDB可用性。

PITR模块DFX能力提升

增加PITR相关系统视图和系统函数,为运维人员提供便捷的运维手段,PITR运维效率提升,信息搜集能力从小时级/数分钟级提升至数秒级。

基于物理坏块自动修复支持秒级主机修复备机页面

当DN的备机发现存在页面CRC错误时,从主机获取正确页面并在合适的时机覆盖错误页面以进行修复。

备机重建能力增强

增加备机到备机的增量build,传输增量日志和数据,使故障备机更快恢复;build过程建槽,使build过程中日志可以正常回收,避免造成不必要的日志堆积,同时避免日志差异较大时,build完成后回放本地日志耗时较长时主机为其保留足够的日志,避免日志回收造成反复触发build。

容灾集群RTO优化

灾备集群内的实例按当前的机制,如果断连需要回放完所有日志才会重新发起连接,断连时间受回放速度和待回放日志量的影响较大,大压力下容易造成灾备集群实例长时间断连以及主集群日志堆积。

现在由cm拉起断连实例的预解析线程,快速扫描实例全量日志,之后即可从最新日志处发起连接请求,大大缩短了主备同步恢复的时间。

内存超会话打印

在多级内存管控的基础上,增加内存超限后的SQL语句记录功能,方便出现内存 超限问题后复现问题进行分析,主要功能如下:

  • 单个SQL内存超过上限后报错,打印详细的SQL语句。
  • 单个会话内存超过上限后报错,打印详细的SQL语句。
  • 超过work_mem上限落盘前增加等待事件并日志打印当前SQL语句。
  • 全局内存超过上限后,打印占用内存top10的会话和线程以及会话和线程对应的线程类型和SQL语句。

逻辑解码适配极致RTO

备机逻辑解码功能需访问历史版本的系统表,在极致RTO开启的场景下为防止页面回收,以及使用正确的快照访问系统表,备机逻辑解码访问系统表逻辑要进行适配修改。

热补丁管理

将list接口,对接到管控,用于管控查询到内核侧真正生效的补丁信息。

FullSQL支持分布式备机

在分布式DN备机中,支持记录查看Full SQL/Slow SQL。支持在DN备上查看,支持在CN上通过函数get_global_full/slow_sql_by_timestamp查看。

页面损坏修复

新增页面手动修复操作。

execute direct on支持分布式备机查询

目前分布式已经支持备机读,分布式备机有读业务,需要对备机进行运维监测。但是目前的运维操作从CN上无法直接访问备DN查询视图函数等,定位问题难度大。另外目前分布式下WDR持久化的global的视图无法获取到备DN的数据,需要扩展到备机上。因此需要对execute direct on、distqry_remote_function_result_handler支持连接到分布式任意一个或多个备机上进行DFX查询,提高DFX能力。

定位定界能力增强

CM新增系统资源的检查,如果资源使用率超过阈值,会记录日志,方便后续问题定位。

物理复制槽主动清理

主备使用的物理复制槽,基于流式复制的容灾方案使用的物理复制槽在流式复制关系断连后,日志受max_size_for_xlog_prune保护会发生回收。此时该流式复制相关槽位处于非激活态,即使流式复制后续恢复也会因为wal segments removed导致备机全量重建。因此在日志因为达到max_size_for_xlog_prune上限触发回收时,可以主动对主备使用的物理复制槽,基于流式复制的容灾方案使用的物理复制槽进行清理。

支持多种SQL限流规则

在数据库系统中,时常会出现某类SQL执行异常,占用较多系统资源,或者出现某类SQL因异常或业务需求并发激增,影响其他业务执行,甚至整个数据库系统无法响应其他业务请求的情况。为了解决该问题,GaussDB实现了SQL限流的能力,可以从多维度限制某类SQL执行的并发数。

逻辑复制槽日志管理

管理逻辑复制槽保留WAL日志。

安全加固

解决安全漏洞:

CVE-2024-2511

CVE-2024-1013

CVE-2024-25062

CVE-2024-0727

CVE-2023-52323

CVE-2023-6237

CVE-2023-46219

CVE-2023-50472

CVE-2023-50471

表2 V2.0-3.223.0版本更新说明

时间

需求名称

描述

2023.11

CM磁盘检测能力增强

CM磁盘检测能力增强。cma将磁盘检测逻辑剥离到独立模块,使其具备检测磁盘状态并上报给cms仲裁的能力。

安全加固

解决安全漏洞:

CVE-2023-46218

CVE-2023-5678

CVE-2023-5363

CVE-2023-45853

CVE-2023-45322

CVE-2023-38546

CVE-2023-38545

CVE-2023-4807

CVE-2022-34038

CVE-2023-36054

CVE-2023-3817

CVE-2023-3446

CVE-2023-2975

CVE-2023-28370

CVE-2023-2650

CVE-2023-28320

CVE-2023-28321

CVE-2023-28322

CVE-2023-32082

CVE-2023-1255

CVE-2023-29469

CVE-2023-28484

CVE-2021-28235

CVE-2023-27538

CVE-2023-27536

CVE-2023-27535

CVE-2023-27534

CVE-2023-0466

CVE-2023-0465

CVE-2023-0464

CVE-2023-27533

CVE-2022-4304

CVE-2022-4450

CVE-2023-0215

CVE-2023-0217

CVE-2023-0216

CVE-2022-4203

CVE-2023-0401

CVE-2023-0286

CVE-2022-42898

CVE-2022-3996

CVE-2022-40303

CVE-2022-40304

CVE-2022-29824

CVE-2021-37750

表3 V2.0-3.220.0版本更新说明

时间

需求名称

描述

2023.8

支持Global PLSQL Cache优化存储过程内存占用

基于存储过程的共享缓存,完整解除存储过程兼容性识别的内存冲高问题,必须针对现有PLSQL Session级别的缓存进行优化:

  1. Global PLSQL Cache:所有Session共享一份PLSQL编译中间产物,各自执行状态独立维护。
  2. 语法节点优化:针对语法节点的数据结构组织进行优化,降低单个编译产物的内存使用情况。
  3. Global PLSQL Cache高并发调用适配。
    • ref count引用计数准确。
    • 编译产物数据结构拆分增强。
    • 高并发调用存储过程压力增强适配。

性能规格:

  1. PLSQL的编译产物缓存以前如果是M的话,大概降低到 M / N(N为长连接数)。
  2. 等同于现有GPC性能规格。

规格约束:

只支持集中式。

存储过程参数处理及失效重编译支持

  1. Out超长参数异常处理。
  2. 支持sql语法内的失效重编译。
    • 存过内SQL语句需检查。
    • 存过内表达式需检查。
  3. =右侧合法性校验。
  4. 多个传参的函数或者存过的传参换行时使用加号,语法兼容。
  5. 存储过程core时补充ffic信息。
  6. 集合类型能力增强,支持元素长度校验和元素精度转换,支持校验带索引的集合类型的索引长度。

规格和约束:

编译失效对象支持脚本重编译,支持schema/compile_all参数,不支持reuse_settings参数。

存储过程游标和历史对应慢SQL查询支持

  1. 兼容insert xxx select xxx用法,select target list中同时存在无参函数和无参函数作为传参 (集中式 + 分布式)。
  2. SQL语句中WHERE条件中存在col=func(xxx)用法时,性能与O持平 。
  3. 支持查看存储过程中的历史慢SQL (集中式)。

交付形态:GaussDB(集中式 + 分布式)。

分布式支持单副本容灾适配

单副本支持容灾商用,规格与约束:

  1. 主集群仅支持1主2备。
  2. 不承诺高可用SLA。
  3. 不支持容灾切换后,容灾集群升级为1主2备。
  4. 只支持Quorum单节点单副本集群。

交付形态:GaussDB(集中式 + 分布式)。

类型转换及union操作和Package适配

  1. GaussDB 类型转换能力增强。
  2. bpchar类型(包含多个后补空格)与text类型做等值匹配操作的时候,无法正常匹配数据匹配索引。
  3. union操作在sql重写丢失排序信息。
  4. Package报错行数提示不准确。
  5. 数组类型在访问超过定义数组长度的元素时,不会抛出异常只返回null。

交付形态:GaussDB(集中式)。

GB18030新标准支持

  1. 支持GB18030等级3,支持全部87887个汉字;要求支持GB18030的新政采标准在2023年8月1日强制执行 。
  2. GaussDB支持GB18030-2022字符集。
  3. 支持新国标gb18030-2022字符集。

Dorado双集群支持流式容灾

GaussDB双集群(Dorado)方案支持流式容灾。

  1. Dorado双集群作为异地流式复制主集群支持容灾操作。
  2. Dorado双集群作为异地流式复制灾备集群支持容灾操作。
  3. 三集群形态下支持备份,节点修复,节点替换,版本升级等功能。
  4. Dorado双集群容灾切换场景内核RTO倒换满足2分钟。
  5. 容灾交叉及升级场景能力适配。

交付形态:GaussDB(集中式)。

Gsloader容错能力增强

  1. gs_loader存在违反约束时不全部回滚数据。
  2. gs_loader存在错误数据时支持不全部回滚数据,支持rows参数(指定事务提交行数)。
  3. 导入数据如包含\n、半个字、超字符集等场景,容错机制没有将错误数据正确写入bad文件及错误表中,请确认优化版本。

小型化升级待提交场景支持小版本升级

小型化部署,升级待观察期间可继续小版本升级,并支持逐级回滚。

升级系统对象权限加固

升级过程中会造成用户设置的系统对象权限丢失,特性通过升级前后的权限备份恢复,确保用户设置过的系统对象权限在升级前后保持一致。

安全加固

解决安全漏洞:

CVE-2023-3817

CVE-2023-32001

CVE-2023-3446

CVE-2023-2975

CVE-2023-28370

CVE-2023-2650

CVE-2023-28320

CVE-2023-28321

CVE-2023-28322

CVE-2023-32082

CVE-2023-1255

CVE-2023-29469

CVE-2023-28484

CVE-2021-28235

CVE-2023-27536

CVE-2023-27538

CVE-2023-27535

CVE-2023-27534

CVE-2023-0466

CVE-2023-0465

CVE-2023-0464

CVE-2023-27533

CVE-2022-4304

CVE-2022-4450

CVE-2023-0215

CVE-2023-0217

CVE-2023-0216

CVE-2022-4203

CVE-2023-0401

CVE-2023-0286

CVE-2022-42898

CVE-2022-3996

CVE-2022-40303

CVE-2022-40304

CVE-2022-29824

CVE-2021-37750

表4 V2.0-3.201/V2.0-3.207/V2.0-3.208版本更新说明

时间

需求名称

描述

2023.4

start with递归性能优化

Start With性能优化,主要包括:

  • start with…connect by语句优化。
  • start with...connect by语句带connect_by_isleaf字段查询性能优化。

支持查看当前存储过程正执行的SQL

支持查看当前存储过程正执行的SQL。

支持会话级高可用属性

  1. 支持session级备机连接检测和session级日志强同步。
    1. session级备机连接检测:开启该功能后,当前session主备模式会检测备机是否可连接;若不能连接,主机会直接报错。
    2. session级日志强同步:开启该功能后,当前session将提供主备之间的强同步。
  2. 单机模式:
    1. session级备机连接检测参数可设定成功,但并不启动备机连接检测,主机正常写入后即反馈成功;
    2. session级日志强同步可设定成功,但并不启动主备强同步,主机正常写入后即反馈成功。
  3. 备机全量build:
    1. 全量build过程中(备机不可连):

      session级备机连接检测参数可设定成功,但并不启动备机检测,主机正常写入后即反馈成功。

      session级日志强同步参数可设定成功,启动主备强同步;打开most_available_sync开关,设置keep_sync_window;当备机断连时间超过keep_sync_window之后,新建立的强同步session,会设置为最大可用模式,不等待备机同步。

    2. 全量build完成后,备机恢复build过程中的日志时:

      session级备机连接检测参数可设定成功,并启动备机连接检测;

      session级日志强同步可设定成功,并启动主备强同步。

  4. 在断网场景下,检测时效性依赖tcp_user_timeout、wal_sender_timeout参数;正常主、备关闭连接下(包括备机wal receiver进程正常退出、进程crash等场景),会同步刷新备机连接状态。

规格:

  1. 一主一备两节点部署,备机异步同步。
  2. 备机不可连接写报错,业务重试。

current of cursor语法支持

支持current of cursor语法:

cursor语句:

  1. 仅支持select单表的简单查询:
    1. 不支持子查询。
    2. 不支持limit/offset。
    3. 不支持start with。
    4. 不支持with语句。
  2. 不支持多表。
  3. 不支持分区表。
  4. 不支持列存。
  5. 不支持hash bucket表。
  6. 不支持order by。

update语句:

  1. 仅支持update单表。
  2. 仅支持在存储过程中使用。
  3. 不支持多表。
  4. 不支持多个where条件。
  5. 不支持with/using、order by语法。

CM磁盘只读检测能力增强

CM磁盘只读检测能力增强。

  1. 只读状态从数据库获取,保证准确性。
  2. 仲裁时只仲裁当前超过阈值的节点,同分片其他节点不受影响。
  3. 主机只读保护后自动主备切换,选可用备机升主保证实例能正常提供工作。

OM运维数据库连接优化

OM运维数据库连接优化:不采用peer认证,同时解决并发冲突和运维性能提升的问题。

统一命名为GaussDB

改名为GaussDB。

扩容重分布锁超时自动拉起

扩容提供自动重试机制,当多次锁超时后,自动退出。暂停一段时间之后再进行重试,错过业务高峰期进行切表,降低对用户业务的影响。

软件组件生命周期匹配产品生命周期

软件组件生命周期匹配产品生命周期。

  1. 更新较新的下层软件组件(如: 开源、第三方件、自研平台等)。
  2. 在产品版本生命周期内可及时修复安全漏洞。

单副本部署能力加强(面向非生产环境)

  1. 支持监控指标。
  2. 支持磁盘容量满触发只读告警。
    1. OM接口上报适配单机模式。
    2. CM在DCC上持久化“只读告警”信息。

优化器自适应和鲁棒性提升

代价模型失效场景下的算子倾向性保证,多版本计划选择能力增强,智能统计信息增强,提高优化器自适应能力和鲁棒性。

  1. 在代价趋同的场景提供算子倾向性机制来避免优化器选择错估的差计划,实现统计信息失效场景下计划性能提高50%。
  2. 智能统计信息鲁棒性增强,对当前多列统计信息进行整合,实现创建一种统计模型对于高频值的评估性能提升50%。整体性能提升20 - 30%。
  3. 当前很多慢查询需要使用业务hint才能解决,需要多版本计划支持更多场景,并且提供自主逃生机制,自动解决特定场景10%以上的慢查询。TPCC性能劣化5%以内。仅支持集中式。

极端场景数据逃生

在极端场景下恢复客户数据,将磁盘数据文件输出为COPY命令可识别的数据格式,可将数据导入新实例,供客户选择是否使用。

正常数据恢复应基于当前已经有的冗余手段,本方案仅作为如下场景均失效的情况下的极端方案:

  1. 节点修复/主备build。
  2. 容灾。
  3. 备份恢复。
  4. 热补丁。
  5. 其它使集群可满足预期使用的能力。

功能约束:

  1. 仅解析落盘数据。
  2. 离线解析数据无法保证数据一致性。
  3. 不保证xlog回放。
  4. 数据库应处于离线状态。
  5. 仅支持astore/ustore heap表数据解析。

段页式加强及Ustore Undo支持

Ustore的undo文件切换段页式管理:解决现有机制产生大量1M的undo文件,导致文件句柄泄露问题。

支持分布式全局二级索引技术

支持分布式全局二级索引技术:

  1. 支持对非分布列上创建全局unique索引。
  2. 实现非基表分布键点查典型场景性能是普通索引性能的3倍。
  1. 支持Astore。

功能约束:

  • 支持创建普通UBTree索引,不支持局部索引、表达式索引。
  • 不支持创建与基表分布一致的GSI。
  • 不支持对基表的GSI分布列做update。
  • 不支持create GSI concurrently,parallel。
  • 支持对基表为hash分布的行存Astore表、分区表创建hash分布的GSI,不支持基表为replicate、bucket、段页式、list/range分布、Ustore、列存等,对于GSI本身不支持hash分布以外的分布与分区。
  • GSI只支持分布式。
  • 不支持对基表列名或者ctid、xc_node_hash、xmin、xmax、tableoid增加_new$$、_NEW$$后与自身列名重复的基表创建GSI。
  • 只支持GTM-LITE模式下创建GSI,不支持其他GTM模式。
  • 对于有GSI的基表,不支持IUD returning。
  • 不支持回表。
  • 不支持vacuum full,copy,gds,REINDEX TABLE/DATABASE,执行时会跳过所有GSI。
  • 不支持Upsert、Merge into、HOT UPDATE、max_datanode_for_plan(PBE模式下)、逻辑复制、cluster、for update/share/nowait/skip locked等模块。
  • 不支持start with等兼容性语法。
  • 最多支持27列(包括索引键和分布键)。
  • 其他约束条件同hash分布、UBTree、LP/FQS、普通索引。

current of cursor语法支持

current of cursor 语法支持order by。

集中式Ustore支持SQL特性

集中式Ustore支持如下SQL特性:

  1. 全局临时表。
  2. 列约束。
  3. 并行查询。
  4. 统计信息增强:ustore 索引索引活跃页面估算及代价适配。

存储过程支持out重载及能力加强

  1. SQL PATCH范围:存储过程内的DML。
  2. Out函数重载功能范围:支持带有Out参数的Function的创建和调用,且只支持直接赋值形式的out参数返回,即 a = func(b) b为out参数。

分布式抗过载逃生

分布式支持并发抗过载逃生:

  1. 线程池慢SQL占据一定比例以后,引发CANCEL保护操作。
  2. 针对占用大量资源的SQL语句进行管控或熔断措施,避免因慢SQL导致正常SQL无法正常执行。

分布式支持SQL PATCH

分布式支持SQL PATCH。

约束限制:

  1. 不支持CN间SQL PATCH操作同步。
  2. 不支持DN级SQL PATCH。
  3. CN下发的单节点下发lightproxy计划如果触发SQLpatch则退化为单节点下发的fqs计划,SQL PATCH生效。
  4. SQL PATCH影响分布式计划的能力规格和当前hint的能力一致。
  5. 不支持DN级SQL PATCH,分布式场景下如果存储过程下推,此时存储过程中的DML在DN上生成计划,不会被SQL PATCH影响。

极致RTO支持备机可读

基于极致RTO技术,备机提供只读服务。

规格约束如下:

  1. DDL语句回放和备机只读冲突。
  2. 支持只读需要消耗额外的CPU、内存和磁盘空间。其中内存和磁盘空间支持配置GUC参数,消耗超过配置的GUC值时,则会强制回收空间。

优化器语法扩展及代价模型优化

优化器语法扩展及代价模型优化:

  1. Analyze 自治:
    1. 短时间内大量数据插入更新会触发auto-analyze,解决周期性任务表的场景下性能下降。
    2. 默认参数下根据表大小自动提高采样率和直方图精度,提高大表analyze的准确度。
    3. 提供自适应的NDV估计算法,在典型场景下NDV估计准确度提高。
  2. hint 支持范围扩展:
    1. 参数化路径。
    2. bitmap scan。
    3. 跨 Query Block 的hint等。
  1. 支持Plan Trace功能:完整展现 Query Plan 的生成过程。

    仅支持集中式实例。

在线创建及重建索引

【需求描述】

  1. 支持Astore在线并行创建和重建索引(包括普通索引,global index和local index)。
  2. 支持Ustore在线创建和重建索引(包括普通索引,global index和local index)。

性能规格:

  • 对于在线DML性能劣化不大于10%
  • 不支持在线索引字段增删改
  • 只支持普通表、一级分区表

集中式UstoreDFX和其他特性加强

集中式Ustore特性支持白名单:

  1. DFX能力补齐、DML和redo/undo辅助校验增强。
  2. VACUUM FULL。
  3. UNDOMETA降低落盘频率和减少落盘字段。
  4. FSC结构预埋及性能优化。

基础算子性能提升

基础算子性能提升。

  1. SRF。
  2. 表达式展平。
  3. AGG优化。
  4. INNER UNIQUE优化。
  5. 表达式算子优化。
  6. Parser优化。
  7. printtup优化。
  8. 通信性能优化。
  9. 索引扫描算子优化。
  10. 谓词优化。
  11. 子查询优化。
  12. 基础算子底噪消除。
  13. 索引优化。

基础算子性能提升:TPCH端到端性能较之前提升20%,其中TPCH较之前提升40%(包括全表扫描算子、表达式、聚集算子)。

SQL M*语法兼容

兼容如下M*特性:
  1. 实现对MySQL数据库分区表部分语法的兼容:RANGE分区语法/HASH分区语法/LIST分区语法。
  2. 支持在表第一列前面或者在指定列后面添加列。
  3. 适配MySQL数据库修改列名称/定义语法。
  4. 支持schema级、表级、列级设置常用字符集和排序规则。
  5. reate/alter/drop event适配修改。
  6. 实现select into的兼容。
  7. 实现set transaction的语法树,能设置隔离级别和可读/可写。

支持如下部分M*语法:

  1. 集中式支持GROUP_CONCAT函数。
  2. 支持在会话中通过set设置用户自定义变量。
  3. set全局变量增强。
  4. 实现前缀索引。
  5. 支持delimiter设置分隔符。
  6. 新增一种DELETE多表删除的语法。

软硬融合全密态数据库框架

软硬融合全密态数据库框架:基于虚拟TEE,实现内存加密或安全隔离场景下的全密态框架能力。

  1. 密钥安全传输通道。
  2. 软硬融合全密态执行框架,支持虚拟TEE执行模式。
  3. 服务端密态算子支持:范围查询/排序运算,并使用语法白名单方式进行限制。
  4. 支持JDBC客户端驱动。

仅支持集中式实例。

逻辑解码能力加强

  1. 逻辑复制支持分布式强一致性:
    1. 分布式事务提交保序。
    2. 单DN同一事务内保序。
    3. 同一事务不同DN间不保序。

    约束:仅支持GTM Lite,不支持GTM Free。

  2. 提供逻辑解码性能视图:
    1. 日志发送速度(M/s)。
    2. 日志读取速度(M/s)。
    3. 日志解速度(M/s)。

    约束:针对并行解码,只提集中式主机并行解码性能视图。

  3. 支持分布式逻辑解码,DRS可直连业务集群的每个备DN执行逻辑解码在扩容集群回放。
  4. 新增2个大事务监控目标:
    1. 最大事务行数。
    2. 大事务个数(超过4096行的事务数量)。
  5. 新增一个心跳消息,能让外部工具准确计算同步时延:
    1. 携带解析到最新WAL时间戳,供外部工具计算时延。
    2. 并行解码提供函数查询最新WAL时间戳;串/并行提供心跳消息。
  6. 逻辑解码300M/s性能优化。
    1. 数据入库性能优化。
    2. 主机单slot解码性能优化。
    3. 备机并行回放性能优化。
    4. 备机单slot解码性能优化。

分区表功能完善及性能提升

  1. List/Range支持多列分区:
    1. List分区键最大数由1扩展为16列。
    2. Range分区键最大数由4扩展为16列。
  1. RLH分区支持RLH分布(Range/List/Hash简称RLH):
    1. RLH分区表支持List/Range/Hash分布。
    2. List/Range表支持节点组分布。
  1. 分区语法能力完善:
    1. List/二级分区支持split/merge功能。
    2. list/hash/二级分区create table like功能。

    约束:分布式场景不支持跨分区DDL/DML的并发。

  1. 分区表性能持续提升:
    1. 分区表业务场景性能相比现有版本提升30%。
    2. 分区隐式类型/函数剪枝优化。

    仅支持集中式实例。

SQL O*语法兼容性增强

  1. 在系统视图、系统函数、高级包3个模块新增167个兼容项:
    1. 系统函数:39个。
    2. 系统视图:124个。
    3. 高级包:4个。
  2. 分布式实例支持Go驱动。
  3. 支持dblink。
  4. PIVOT/UNPIVOT支持
  5. 支持xml数据类型及相关接口。
  6. 分布式实例支持package。
  7. 集中式和分布式rownum支持。
  8. 支持XMLDOM如下11个接口:
    1. XMLDOM.GETFIRSTCHILD。
    2. XMLDOM.ITEM。
    3. XMLDOM.DOMNODE。
    4. XMLDOM.MAKEELEMENT。
    5. XMLDOM.GETCHILDNODES。
    6. XMLDOM.DOMNODELIST。
    7. XMLDOM.GETNODEVALUE。
    8. XMLDOM.GETLENGTH。
    9. XMLDOM.GETNODENAME。
    10. XMLDOM.GETELEMENTSBYTAGNAME。
    11. XMLDOM.GETTAGNAME。
    12. XMLPARSER.NEWPARSER。
  9. tableof增强:
    1. 支持array嵌套tableof。
    2. 分布式支持tableof。

WDR优化及DFX支持

  1. 优化WDR snapshot:
    1. WDR Snapshot语句超时失败后继续执行,不影响WDR snapshot的整体执行。
    2. vacuum过程中会导致WDR snapshot失败。
    3. WDR snapshot解除保留8天。
  2. 优化WDR report:
    1. 解决WDR report生成慢问题。
    2. WDR报告格式美化。
    3. WDR Object排序支持更多维度(dead tuple/live tuple/vacuum/analyze/扫描行等)。
  3. 增加可以查询session中设置的GUC参数的接口。通过该接口可以查询到到session上配置的search_path等GUC参数。
  4. WDR报告支持备机读。
  5. 支持L0级别FULL SQL能够查看计划。

支持Global PLSQL Cache优化存储过程内存占用

基于存储过程的共享缓存,解决存储过程兼容性识别的内存冲高的问题,针对现有PLSQL Session级别的缓存进行优化:

  1. Global PLSQL Cache:所有Session共享PLSQL编译中间产物,各自执行状态独立维护。
  2. 语法节点优化:针对语法节点的数据结构组织进行优化,降低单个编译产物的内存使用。

仅支持集中式实例。

ODBC支持GPlan复用

ODBC支持JDBC中Statement Pool功能,支持Gplan复用,提升SQL性能。

全密态数据库支持Go驱动

实现全密态数据库产品化能力:

  1. 批量插入性能达到6w行/s。
  2. 批量查询性能达到9w行/s。
  3. 支持update临时表。
  4. 支持HIS密钥管理。
  5. 支持服务端加解密函数。
  6. 支持CMK密钥更新。
  7. JDBC支持负载均衡。

2、Go语言驱动支持全密态。

主备同步机制优化保障RTO

解除备机回放完成后才能重新连接主机的串行实现机制限制,优化RTO的表现。

支持用户级别审计设置

审计功能增强:

  1. 支持用户级别审计:新增GUC参数full_audit_users设置被审计用户列表,对列表中的用户执行的所有SQL语句记录审计日志。可以设置对管理员操作进行全量审计,做到对管理员访问用户数据进行审计。
  2. 支持按客户端信息配置审计开关:新增GUC参数no_audit_client配置无需记录审计的客户端列表,对指定的客户端APP及IP(例如cm_agent@127.0.0.1)不记录审计日志。
  3. 支持对风险较高的系统函数调用记录审计日志:对风险较高的系统函数调用记录审计日志。

roach组件支持强安全认证方式

roach组件支持安全强认证方式,例如ssl/kerberos等安全证书认证。

安全加固

解决安全漏洞:

CVE-2023-30608

CVE-2023-29469

CVE-2023-28484

CVE-2021-28235

CVE-2023-27538

CVE-2023-27536

CVE-2023-27535

CVE-2023-27534

CVE-2023-0466

CVE-2023-0465

CVE-2023-0464

CVE-2023-27533

CVE-2023-23931

CVE-2023-23915

CVE-2023-23914

CVE-2023-23916

CVE-2022-4304

CVE-2022-4450

CVE-2023-0215

CVE-2023-0286

CVE-2022-42898

CVE-2022-43552

CVE-2022-43551

CVE-2022-40303

CVE-2022-40304

CVE-2022-32221

CVE-2022-42916

CVE-2022-42915

CVE-2022-1941

CVE-2022-35252

CVE-2022-37434

CVE-2022-32205

CVE-2022-32208

CVE-2022-32206

CVE-2022-2097

CVE-2022-32207

CVE-2022-2068

CVE-2022-27782

CVE-2022-27781

CVE-2021-22570

CVE-2022-29824

CVE-2022-1292

CVE-2022-27775

CVE-2022-27774

CVE-2022-27776

CVE-2022-22576

CVE-2021-3520

CVE-2021-37750

表5 V2.0-3.103(白名单版本)

时间

需求名称

描述

23.3

WDR报告优化

WDR报告性能指标优化:按SQL单次执行平均耗时排序的TOP SQL。参考当前WDR报告的top SQL,基于全量SQL增加avg维度的排序。

支持在线规格变更优化

规格变更需要支持在线模式,尽可能不影响业务运行。采用DN滚动重启的方式,不用重启整个集群,减小对业务的影响。

FULL SQL支持备机使用和增加语句级wait events耗时统计

  1. 备机支持Full SQL使用。
  2. Full SQL增加语句级wait events耗时统计。

功能约束:

  1. 备机Full SQL仅支持集中式。
  2. Full SQL L0级别统计Wait Events耗时,新增Wait Events代码约3%以内性能损耗。

gsql、gsloader需支持配置域名

gsql、gsloader需支持配置域名,确保能按高可用接入多个域名。

  1. 分布式支持配置多域名。
  2. 集中式支持自选主。

自动创建多列统计信息

多列统计信息增强,支持自动创建多列统计信息:

  1. 解决组合索引代价估算问题。
  2. 提升多列统计信息能力。
  3. 解决典型场景下索引选择错误问题。

备机支持备份

支持备机备份能力,将当前备份恢复的操作从主机转移到备机,减少主机CPU、磁盘IO等资源的使用。

全局临时表支持SMP

全局临时表支持SMP。

单实例单机部署备份恢复支持

支持单实例单机部署需求,支持备份恢复。满足研发和联调场景的诉求。仅用于SQL开发和功能联调。

须知:

白名单特性。如需配置白名单权限,您可以在管理控制台右上角,选择工单 > 新建工单,提交开通白名单的申请。

功能约束:

  1. 仅支持集中式实例。
  2. 不支持业务生产环境。
  3. 不承诺可用性可靠性及容灾能力(RTO指标无法保证)
  4. 不支持运维功能,包括但不限于节点替换、扩容、升级、规格变更等。
  5. 不支持性能、压力长稳、故障注入等专项测试。
  6. 不做性能及对业务性能影响的要求。

SQL兼容性增强

SQL兼容性增强:

  1. 支持高级包:
    1. UTL_FILE.FILE_TYPE。
    2. DBMS_SQL.VARIABLE_VALUE。
    3. UTL_FILE.FGETATTR。
    4. DBMS_LOB.READ。
    5. DBE_LOB。
    6. DBE_SQL。
    7. DBE_FILE。
    8. DBE_RAW。
    9. DBE_UTILITY。
  2. 自治事务并发限制取消。
  3. 存储过程编译完整性检查:
    1. 编译完整性检查。
    2. 编译对象依赖关系查看,失效对象支持重编译。
  4. 支持自定义类型:
    1. Array。
    2. Tableof。
    3. TableofIndex。
    4. 上述3种自定义类型的组合使用。
  5. 新增支持系统函数33个:

    TO_CHAR,SYSDATE,TO_NUMBER,UPPER,CHR,SYS_CONTEXT,TO_DATE,INSTRB,LPAD、ROUND,CAST,TRIM,SUM,ADD_MONTHS,LAST_DAY,MOD,LOWER,RTRIM,MONTHS_BETWEEN,TRUNC,RPAD,LEAST,GREATEST ,REGEXP_SUBSTR,LTRIM,TRANSLATE,TREAT,EMPTY_CLOB,USER,REGEXP_REPLACE,AVG,NVL2,REGEXP_COUNT。

  6. 新增支持系统视图:

    ALL_ARGUMENTS,ALL_IND_PARTITIONS,ALL_IND_SUBPARTITIONS,ALL_INDEXES,ALL_OBJECTS,ALL_SOURCE,ALL_TAB_COLUMNS,ALL_TAB_PARTITIONS,ALL_TABLES,DBA_ARGUMENTS,DBA_CONS_COLUMNS,DBA_CONSTRAINTS,DBA_DEPENDENCIES,DBA_DIRECTORIES,DBA_HIST_SNAPSHOT,DBA_HIST_SQL_PLAN,DBA_HIST_SQLSTAT,DBA_HIST_SQLTEXT,DBA_IND_COLUMNS,DBA_IND_EXPRESSIONS,DBA_IND_PARTITIONS,DBA_IND_SUBPARTITIONS,DBA_OBJECTS,DBA_PROCEDURES,DBA_SCHEDULER_JOBS,DBA_SCHEDULER_PROGRAMS,DBA_SCHEDULER_RUNNING_JOBS,DBA_SEGMENTS,DBA_SOURCE,DBA_TAB_COLS,DBA_TAB_COLUMNS,DBA_TAB_PARTITIONS,DBA_TABLES,DBA_TRIGGERS,DBA_TYPE_ATTRS,GV$INSTANCE,GV$SESSION,PLAN_TABLE,USER_JOBS,USER_OBJECTS,USER_PROCEDURES,USER_TABLES,V$INSTANCE,V$MYSTAT,V$SESSION,ALL_DEPENDENCTES。

  7. 存储过程、函数out出参增强:
    1. 函数返回值支持return record类型。
    2. 支持含有默认值+out参数的存储过程调用。
  8. 存储过程性能提升:
    1. 存储过程大循环场景(for循环赋值,循环10w次,例如 for i in 1 .. 100000 loop)等。
    2. 自治事务(10个package,每个含有10个变量,调用10W次)。
  9. commit+exception性能优化:针对Commit + Exception的场景里性能瓶颈点进行优化,针对EXCEPTION相关的资源释放进行优化,提升性能。

分布式备机支持读

分布式备机支持读,提供备机读能力,降低主机负载方案目标态规格。

约束:

  • 提供弱一致读,会话内保证递增序读快照,会话间不保证。
  • 会话级别参数区分主机业务和备机读业务,不支持备机异常后,业务切换到主机上。
  • 主备切换、备机故障等异常场景,备机读业务会报错,需要业务重试。
  • 备机加回后(或加副本后),若要承载业务,会引发业务读报错,需要业务重试。
  • 无法选择合适的备机节点造成报错,需要业务重试。
  • 备机读业务会影响备机RTO,若RTO超过指定阈值,需要触发业务侧报错后限流或熔断。
  • 针对DDL回放场景,提供接口供业务查询,返回备机ddl是否一致,确认一致后业务侧启动备机读业务,否则业务侧熔断。

集中式形态Ustore引擎支持在线创建索引和极致RTO

集中式形态Ustore引擎支持在线创建索引和极致RTO:

  1. 在不中断业务的条件下,在线创建新的索引,满足业务在线灵活变更索引的诉求。
  2. 支持极致 RTO,提升主备(备不支持读的情形下)性能。

GPC支持upsert和存储过程

GPC支持upsert和存储过程

  1. 在pgxc框架中支持upsert通过gplan执行。
  2. 支持存储过程、函数、Package。

基础算子性能提升

基础算子性能提升:

  1. 适配seqscan算子和PI算子的优化。
  2. 对于代价模型的优化调整。

行存表达式支持Codegen

行存表Codegen能力增强规格:默认开启Codegen,通过行数阈值管理查询是否Codegen,默认配置下所有查询不裂化。

优化器代价模型优化

优化器代价模型优化,基础优化能力提升:

  1. cplan/gplan选择优化。
  2. coalesce选择率估算优化。
  3. nestloop/merge join 部分场景优化。
  4. semi/anti join代价优化。

仅支持集中式形态。

分区表并发查询优化

分区表并发查询优化:

  • 底层改进支持跨分区DML/DDL并发。
  • 分区表表达式支持静态/动态剪枝。
  • 支持分区表作为内表参数化路径。
  • 支持MergeSort查询计划。

MySQL数据库语法兼容性增强

MySQL数据库语法兼容,兼容MySQL数据库常用语法和接口。

DELETE和UPDATE语句支持ORDER BY和LIMIT功能。

Python驱动支持多IP

python驱动支持多IP,业务主备倒换后可正常连接数据库。

PITR能力增强

PITR增强:

  • 在分布式GTM-LITE模式下两阶段分布式事务场景,降低PITR打点带来的性能劣化。
  • 在外部存储故障的情况下,PITR打点不受影响。

支持嵌入式C预处理器

支持嵌入式C预处理器。

并发场景支持抗过载逃生能力

抗过载逃生,线程池慢SQL占据一定比例以后,引发CANCEL操作。

支持数据页面恢复

数据恢复能力增强:

  1. 备机数据文件恢复,可解决文件删除/损坏问题。
  2. 备份过程中,页面损坏可自动修复,不影响备份流程。

全密态数据库支持GCM加密和客户端排序

全密态数据库支持GCM加密和客户端排序:

  1. 基于客户端实现排序操作。
  2. 支持GCM加密和比特传输。

约束:

仅支持gsql/JDBC客户端。

支持国密SSL和SHA256哈希函数

  1. 支持国密SSL加密传输,数据通道支持国密算法,客户端与服务端间通信支持使用国密算法。

    约束:只支持gsql客户端。

  2. 支持SHA256哈希函数,满足上海数据基座项目中需要使用到对敏感数据进行SHA256哈希存储需求。

支持Any权限管理

Any权限管理,支持以下5种对象共12种ANY权限功能:

  • ALTER ANY TYPE、DROP ANY TYPE。
  • ALTER ANY SEQUENCE、DROP ANY SEQUENCE、SELECT ANY SEQUENCE。
  • ALTER ANY INDEX、DROP ANY INDEX。
  • CREATE ANY TRIGGER、ALTER ANY TRIGGER、DROP ANY TRIGGER。
  • CREATE ANY SYNONYM、DROP ANY SYNONYM。

高效数据压缩算法支持

高效数据压缩算法,读写性能(TPCC场景)劣化<5%,交易型数据库压缩率达到2:1。

ABO优化器支持

ABO优化器支持如下业务场景:

  1. 智能基数估计:实现多列等值查询的基数估计质量提升。
  2. 执行计划自适应选择:多计划缓存和自适应选择。

规格:

  1. 智能基数估计:AI优化器之统计信息算法增强(典型场景计划效率提升1x,性能提升50%)。
  2. 执行计划自适应选择:典型场景计划效率提升1x。

运行态查询计划展示

运行态查询计划展示:针对指定的慢SQL,可通过视图展示执行计划规格。

安全加固

解决安全漏洞:

CVE-2022-29824

CVE-2022-27781

CVE-2022-27775

CVE-2022-35252

CVE-2021-37750

CVE-2022-32205

CVE-2022-27776

CVE-2022-32206

CVE-2022-37434

CVE-2022-22576

CVE-2022-27782

CVE-2022-27774

CVE-2022-32207

CVE-2022-2097

CVE-2022-32208

CVE-2022-32221

CVE-2022-42916

CVE-2022-42915

相关文档