特性介绍
标准SQL支持
支持标准的SQL92/SQL99/SQL2003/SQL2011规范,支持GBK和UTF-8字符集,支持SQL标准函数与分析函数,支持存储过程。
数据库存储管理功能
支持表空间,可以把不同表规划到不同的存储位置;企业版支持Ustore、Astore、MOT等多种存储引擎。
提供主备双机
事务支持ACID特性、单节点故障恢复、双机数据同步、双机故障切换等;企业版还提供了CM工具,支持数据库实例状态查询、主备切换、日志管理、VIP管理、集群状态查询和推送等。
资源池化
支持基于共享存储、共享内存的资源池化架构,实现备机读实时一致性。
应用程序接口
支持标准JDBC 4.0特性、ODBC 3.5特性,支持Python、Go连接驱动,支持MySQL协议兼容。
管理工具
提供安装部署工具、实例启停工具、备份恢复工具、扩缩容工具、升级工具,支持数据全生命周期生产工具DataKit,支持MySQL全量/增量/反向迁移工具和数据校验工具。
安全管理
支持SSL安全网络连接、用户权限管理、密码管理、安全审计、细粒度ANY权限控制、TLCP协议等功能,保证数据库在管理层、应用层、系统层和网络层的安全性。
AI智能化
企业版支持参数自调优、慢SQL发现、单query索引推荐、虚拟索引、workload索引推荐、数据库指标采集、预测与异常监控等功能;库内AI原生引擎支持10+高性能机器学习算法。
新增特性
此处说明的是openGauss 6.0.0-RC1版本,在5.1.0版本功能的基础上,新增如下特性:
高性能:在多分区表场景(大于3000分区)下,TPCC数据导入耗时下降13%,TPCC性能提升30%。分区表数据操作(查询、插入、更新、删除等)耗时下降50%。
- List分区增强: List分区检索由原先顺序检索修改为Hash检索,大幅提升在多List分区场景下分区表的性能。
- 分区索引可见性优化: 分区表索引可见性调整至syscache中,提升优化器阶段索引可见性判断性能。
- 取消计划缓存中冗余的有效性判断,采用消息机制通知的方式维护计划缓存的更新,提升了PBE场景的执行性能。
- 优化在分区键不是表达式的场景下的分区表的执行逻辑。
高性能:UWAL实现数据库WAL性能加速。TPCC性能提升约20%。
- 将数据库和新硬件的特性结合,在保证数据库持久性的同时,可有效降低事务提交延迟,提高数据库性能。使用RDMA可以释放CPU在TCP通信传输上的算力,由远程内存直接访问网卡,将WAL记录由单边操作传输至远端备库的持久化存储设备中,延迟低于经由TCP协议栈传输至远端备库的持久化存储设备的方式,提高了主备复制效率,该方式利用了RDMA的CPU卸载、内核Bypass、零拷贝优势。
高可用:支持异步备升主数据找回能力
- 主机发生异常后,如果仅有异步备可以升主,旧主可能存在已提交的事务未同步到备机,该功能旨在找回这部分数据,通过逻辑解码的方式提供给用户,再由用户自行处理。
高可用:逻辑复制增强
- 支持CREATE/DROP TABLE|TABLE PARTITION;CREATE/DROP INDEX语句的逻辑复制。
高安全:在鲲鹏服务器上,借助KAE组件,支持国密SM4加解密算法硬件加速
- 利用鲲鹏服务器指令加速功能,配合KAE组件,提升SM4在鲲鹏服务器上的加解密性能约5%。
高智能:新增dataVec向量数据库插件
- dataVec是一个基于openGauss的向量扩展,目前支持的向量功能有:精确和近似的最近邻搜索、L2距离&余弦距离&内积、向量索引、向量操作函数和操作符。作为openGauss的扩展,datavec 使用熟悉的SQL语法操作向量,简化了用户使用向量数据库的过程。
可维护性:增加对WalSender、WalRecv和WalRecvWriter线程的统计信息记录
- 增加系统函数,提供 WalSender 发送WAL日志的平均时间间隔、发送次数等信息。支持开启、关闭、重置、查询。
- 增加系统函数,统计 WalReceiver 唤醒 WalRecvWriter 的时间间隔、walReceiverBuffer 的当前大小和历史上满的次数。支持开启、关闭、重置、查询。
- 增加系统函数,统计 WalRecvWriter 线程写日志 I/O发生的次数、耗时、数据量、xlog编号等信息。
资源池化:支持SPQ多机并行查询框架
- 基于sharedEverything分布式架构,所有节点都共享集群内的资源,优化器首先生成多机执行计划,之后计划通过分发到各节点执行,再由查询节点汇聚各节点数据实现所有读节点并行查询,充分发挥集群的OLAP能力。使资源池化同时具备较强的TP和AP能力。在资源池化(一主两备)场景下通过SPQ执行IUD性能对比openGauss原生语句性能提升1.7~10倍。
资源池化:新增DMS资源统计视图
- 支持收集DMS资源池中所有的页面信息和锁信息。
- 支持收集DMS相关命令字的等待时延等信息。
- 支持收集DMS中reform流程相关的状态信息。
资源池化:DSS功能增强,支持NoF/NoF+协议;支持线程池模式,支持大并发处理;支持黑匣子诊断
- DSS支持NoF/NoF+协议,支持IOFence、文件读写、查询设备信息、适配CM和OM;
- DSS服务端支持创建线程池,由其中的线程共同处理服务端所有的连接请求;
- DSS支持黑匣子诊断。
资源池化:支持在50W TPMC负载下RTO<10s
- 实现按需回放功能,在资源池化集群正常运行时候,选择指定备机是否开启实时构建功能。当开启本功能后,备机将会不间断的构建主机故障时所需的必要信息,当主机发生故障后,能够极大地降低原极致RTO按需回放构建回放信息的时间,更快对外提供服务,进一步降低RTO。
资源池化:容灾能力增强
- 支持基于Dorado存储同步复制的主备双集群容灾。采用Dorado存储的同步复制能力来实现主备双集群的xlog日志同步,保证主备双集群xlog日志实时一致性,从而提升主备双集群的事务性能,降低存储空间,并保证主备集群内节点切换、主备集群间切换功能正常。
- 支持基于流复制的资源池化主备双集群容灾。采用流复制能力来实现主备双集群的xlog日志同步,保证主备双集群的xlog一致性,从而增强主备双集群的容灾能力,降低存储空间,并保证主备集群内节点切换、主备集群间切换功能正常。
企业级特性:支持继承表
- 继承表的子表可以完全继承父表结构,也可以在父表结构的基础上添加字段,并且可以继承多父表或进行次级继承。继承表有一个可设置的guc参数sql_inheritance(默认为on),它控制父表的操作是否可以访问子表,默认情况下父表可以查询包含子表在内的所有数据,关闭它时父表的只能查询/更新自己。
企业级特性:支持多语言日志
- 编译时根据实际需要添加对应的编译参数,指定语言,然后通过GUC参数enable_nls控制是否开启日志翻译功能。
企业级特性:支持限制内核日志最大磁盘占用空间
- 新增GUC参数log_max_size,可控制日志空间所能容纳的日志总量的最大值
企业级特性:支持存储过程覆盖率测试
- 支持存储过程覆盖率测试并输出html报告
企业级特性:允许创建procedure时忽略依赖关系进行创建
- 允许创建procedure时忽略依赖关系进行创建,并对未定义的类型/存储过程/函数/包变量提供告警功能。需要设置guc参数behavior_compat_options='plpgsql_dependency'
企业级特性:支持龙芯平台编译
- 支持龙芯平台编译
内核工具:支持一站式交互安装
- 用户通过交互界面输入数据库的相关信息,系统自动生成xml配置文件,并自动进行数据库的初始化安装。
内核工具:数据库安装流程解除对root用户的依赖
- 预安装,安装,升级,扩容,校验。所有的这些流程让用户无需使用root用户进行操作,直接使用普通用户就能操作。
内核工具:开箱即用,性能最优
- 提供gs_perfconfig工具帮助对openGauss进行性能调整。包括操作系统配置、数据库搭建、数据库参数三个方面,可以给出调整方案或建议,或者直接进行配置调整。基于环境信息与业务信息,自动调整操作系统以及数据库参数,达到开箱性能即最优。
DataKit:业务开发数据库对象管理增强
- 用户/角色管理增强:支持查看/修改用户/角色,修改包括用户密码
- SQL终端管理:SQL语句支持选中导出
- 触发器:支持创建/删除/启用/禁用触发器
- 外部表:支持创建/刷新外部表,查询/更新/删除外部表数据
- 定时任务:支持创建/修改/启用/禁用/删除定时任务
- 连接管理:支持数据库断连后自动重连、配置自动断连时间
DataKit:实例监控插件增加新指标、优化采集架构
- 增加集群统计信息、切换记录、拓扑图页面说明
- 指标存储时长支持配置
- 指标采集间隔支持配置
- 采集代理器Agent支持外部部署、支持1对多数据库实例采集
DataKit:智能诊断增加诊断经验,优化SQL诊断任务
- SQL诊断任务新增14个诊断点
- SQL诊断任务支持不安装AGENT,正常进行诊断
DataKit:日志检索插件增加CM日志采集,支持lucene语法搜索
- 增加支持CM日志的采集与检索
- 支持输入Lucene语法进行全文检索操作
DataKit:安装部署优化
- 支持实例监控代理、服务端,日志检索代理、服务端,SQL诊断代理安装路径可选。
DataKit:新增兼容性评估插件
- 集成兼容性评估插件,支持从多个场景下获取SQL语句进行兼容性评估,并输出评估报告
DataKit:新增智能参数调优插件
- 支持负载特征分析。从用户负载中抽取出负载特征,多角度精准刻画负载,结果可用于负载生成。
- 支持数据库模式抽取。从用户数据库中提取出数据库模式,结果可用于负载生成。
- 支持负载生成。生成多样化负载,用于离线调优。需输入数据库模式及负载特征。
- 支持离线调优。特定负载离线参数调优。调优过程中会重启数据库,调优时间较长,优化效果好。
- 支持在线调优。在不影响数据库正常运行的同时在线调优。快速推荐出一组优化负载,之后用户可自行选择是否需要进一步微调。使用前需要提前进行离线调优。
- 支持在线微调。使用离线调优的历史数据初始化采样池,并基于此调用调优模型进行参数微调,用户可自行设置微调的次数,并选取微调过程中的最优配置。
DataKit:支持资源池化双集群部署
- 支持资源池化双集群部署,支持安装、切换和状态查询操作。
迁移工具:MySQL反向迁移、增量迁移、数据校验增强
- 反向迁移支持jdbc超时重连机制,可在jdbc断连后自动重连,用户无感知
- 反向迁移支持用户自定义是否在迁移结束后保留逻辑复制槽,若保留逻辑复制槽则可实现断点续传功能
- 反向迁移增加流量控制能力,可在迁移大批量增量数据时触发流量控制,防止系统崩溃
- 增量迁移支持两种并行回放模式:按事务并行回放和按表并行回放,按事务并行回放保证数据的事务一致性,按表并行回放保证数据的逻辑一致性,可根据不同的业务场景选择不同的回放模式,达到性能最优
- 增量迁移支持jdbc超时重连机制,可在jdbc断连后自动重连,用户无感知
- 增量迁移增加流量控制能力,可在迁移大批量增量数据时触发流量控制,防止系统崩溃
- 数据校验实现大表分片校验,提升抽取校验整体性能
迁移工具:支持 Oracle 全量、增量、反向迁移,支持数据校验
- 支持Oracle数据库的常用数据类型、表类型、索引、约束、序列、视图、表空间、同义词等对象全量迁移至openGauss
- 支持Oracle数据库在全量迁移过后,对openGauss数据库进行数据的增量迁移操作。支持的增量迁移操作包括:IUD、按事务回放的create、alter、drop等操作
- 支持Oracle数据库在全量迁移和增量迁移过后,对openGauss数据库进行数据的反向迁移操作。反向迁移支持的DML操作包括IUD操作
- 支持在数据迁移时,对Oracle进行全量&增量数据检验
迁移工具:兼容性评估工具增强
- 支持从MySQL端采集SQL语句进行兼容性评估:对象定义语句(DDL)、慢SQL语句(mysql.slow_log表)、全量SQL语句(mysql.general_log表)
- 支持从文件中自动提取SQL语句进行兼容性评估:SQL文件、MySQL数据库生成的general log日志、MySQL数据库生成的slow log日志、Mybatis映射文件
兼容性:MySQL语法兼容性增强,完善系统函数、关键字、自定义变量、别名等兼容
6.0.0-RC1版本继续增强对MySQL的兼容,实现用户应用近似零修改迁移。
系统函数
RANDOM_BYTES, RAND
关键字
部分保留关键字降级为非保留关键字,使得其可以作为其他对象名(如表名、列名等)
支持部分关键字在没有as的情况下直接作为列别名、表别名使用
其他
支持16进制格式的数字输入
自定义变量支持递归查询
支持时间类型的逻辑与和逻辑或操作
特定字符序场景下,右模糊匹配支持使用索引扫描
兼容性:MySQL协议兼容增强
- 新增dolphin_hot_standby GUC参数,控制是否可以使用MySQL协议兼容端口连接备机