特性介绍
标准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 5.1.0版本,在5.0.0版本功能的基础上,新增如下特性:
高性能:支持shared buffer按大页内存分配,实现4k pagesize环境中性能提升5%
- 支持shared buffer按大页内存分配,实现按2M大页设定,在OS为4k pagesize场景下性能提升5%.
高性能:内核GCC版本升级到GCC 10.3,基于反馈优化,TPCC性能提升6%
- openEuler/CentOS+X86升级GCC版本到GCC10.3,openEuler+ARM升级GCC版本到GCC 10.3.1(对应GCC for openEuler 2.3.4),采用PGO反馈优化,提高I-Cache命中率,TPCC性能提升6%.
高可用:并行回放性能优化,TPCC场景备机redo性能提升50%~100%
- 优化并行回放(文件级别并行)性能,实现按批次分组并行分发,在TPCC场景备机日志redo性能提升50%~100%,加速switchover和failover操作,减缓高负载写入场景由于redo慢导致备机日志堆积问题。
高可用:极致RTO支持备机可读,维持一主一备70W tpmC时,RTO<10s
- 当开启极致RTO(页面级并行)回放功能时,备机上支持读服务,在保证极速回放的同时,可将读业务分流到备机,分担主机业务压力,采用历史版本页面支持读的机制,减少了备机查询和回放冲突的场景,降低了读业务对回放性能的影响。
高可用:主备高可用能力增强
- 最大可用模式most_available_sync开启的情况下,根据用户配置的事务同步提交等级synchronous_commit,在同步备反馈的receive\write\flush\replay位点经过超时窗口未推进时,主机交易不受影响,不等待该备机同步。备机恢复、位点正常推进时,主机交易仍等待该备机同步;
- 针对hot_standby_feedback开启场景,如果备机反馈的xmin一个超时窗口未推进时,则不考虑此备机的xmin,不影响主机vacuum处理。
高安全:支持第三方密钥管理服务
- 抽象加解密与密钥管理适配层,支持通过统一接口对接第三方密钥管理服务与加密机,兼容第三方KMS,去华为云依赖。
高智能:慢SQL根因分析优化,增强输出结论
- 优化慢SQL根因分析逻辑,增强输出结论;
- 改进DBMind web界面体验,完成功能整合;
- 增强数据采集能力,让上层诊断系统可以获取更丰富的诊断信息,有助于异常场景发现。
可维护性:慢SQL统计时间空洞补齐,支持细粒度阶段统计
- 增加全新的计时机制,利用c++的构造和析构函数在作用域生命周期调用的特性实现模块的自动计时,并重构SQL计时模块,使得子阶段耗时不重叠、不遗漏;
- 新增SRT_1~SRT15多个子阶段统计耗时,细化SQL的db_time统计,确保总耗时与未知时间耗时<10%.
可维护性:支持switchover超时打印节点堆栈
- 执行switchover主备切换,如果切换超时打印主备数据库内核的全量堆栈,有助于分析超时节点的状态。
资源池化:优化备机可见性判断逻辑、优化主机推进oldestxmin逻辑、备机支持缓存快照信息,实现sysbench场景2节点性能6W tps,线性度1.6倍,相比优化前提升50%
- 备机可见性逻辑优化:备机建立事务提交状态的全局缓存,在备机读场景的可见性判断逻辑中向主机获取CSN事务状态时,优先在缓存中获取,降低通过网络从主机获取的次数;
- 主机推进oldestxmin逻辑优化:备机请求快照时,主机记录快照信息中的xmin,保存在缓存中;主机后台线程定期清理缓存中的过期的xmin;备机后台线程定期向主机发送本节点最小的xmin;
- 备机支持缓存快照信息:主机支持广播最新快照给备机,备机在全局和线程上缓存快照,根据全局是否有更新,刷新线程上的快照,优化读多写少场景性能。
资源池化:支持备机事务内写语句透明转发到主机执行
- 资源池化中,在读写操作(包括普通SQL和绑定参数SQL)的事务分发给备机时,读操作在备机本地执行,写操作透明转发到主机执行,并保持事务一致性,增强扩展性。
资源池化:DSS功能增强,支持NoF/NoF+协议;支持线程池模式,支持大并发处理;支持黑匣子诊断
- DSS支持NoF/NoF+协议,支持IOFence、文件读写、查询设备信息、适配CM和OM;
- DSS服务端支持创建线程池,由其中的线程共同处理服务端所有的连接请求;
- DSS支持黑匣子诊断。
资源池化:对接分布式存储,实现数据库算子卸载,加速TPCH性能提升40%
对接分布式存储ceph实现openGauss算子卸载功能,满足100GB和1TB两种数据量下的TPCH性能相比于不算子卸载时提升40%.
- 支持算子卸载插件NDPPlugin,对接openGauss执行引擎,实现seqscan/parallel scan/filter/agg/project等算子卸载到存储层执行;
- 通过NDPPlugin将数据过滤卸载到存储侧执行,在存储层启动libsmartscan(未开源)服务执行数据过滤,去除不需要的数据,减少网络通信数据量,提升端到端执行性能。
企业级特性:支持修改表压缩属性
- 放开对行存压缩参数修改的限制,支持修改压缩表的压缩算法、压缩级别、压缩chunk块大小等参数,支持非压缩表、压缩表互相修改操作,修改压缩属性时完成对行存表的重建,确保新的压缩属性对旧数据生效。
企业级特性:子事务并发回滚流程优化,减少锁争抢,提升并发执行效率
- 使用ProcArrayGroup数据结构管理所有抢占ProcArrayLock锁失败的backends。避免子事务并发回滚时,各个业务线程互相争抢ProcArrayLock,导致事务被阻塞的问题。
企业级特性:支持GB18030-2022标准
- 支持GB18030-2022标准字符集。
企业级特性:存储过程支持嵌套调试,支持匿名块调试
- pldebugger支持存储过程嵌套调试,支持匿名块调试,支持在DataKit的web-ds上完成调试操作。
企业级特性:发布订阅支持用户自定义冲突解决方案
- 提供用户可配的冲突处理规则,可选值为error\apply_remote\keep_local,分别表示报错\应用远端\保留本地;
- 通过pg_replication_origin_advance函数将订阅推进到冲突后的LSN位置,用于用户选择两端数据均保留本地的冲突解决场景。同时增加冲突时日志打印信息,包括复制源名称、冲突事务的lsn位置和具体冲突数据,便于pg_replication_origin_advance使用;
- 增加语法alter subscription name set(skiplsn=XXX),跳过commit_lsn为指定lsn的事务。用于用户手动修改冲突数据场景。
内核工具:支持升级场景数据字典校验工具
支持升级场景数据字典校验工具gs_upgradechk,用于数据库升级之后,对元数据进行校验,检查在升级过程前后,是否出现元数据损坏。主要功能为:
- 导出:基于某个数据库,生成一份元数据校验地图;
- 校验:基于某个元数据校验地图,对数据库进行元数据校验,并生成报告。
内核工具:OM工具解耦对OS版本依赖
- 在OM工具中实现对OS版本解耦化处理,对network脚本路径等不同OS行为或路径不一致的,将OS行为抽象出来,形成配置模板,供用户在安装之前配置当前环境匹配的OS,以实现快速安装openGauss。
DataKit:支持实例监控插件和智能诊断插件,实现SQL、会话、实例和集群指标监控,支持历史数据分析与SQL诊断、告警监控和告警通知,提升智能运维能力
实例监控插件
(1)完善监控指标:增加资源、数据库、TOP SQL、实例信息、实时等待事件、CPU TOP进程线程、内存TOP进程线程等监控指标,支持监控阻塞会话和长事务,支持ASP分析,支持参数分类显示,支持查看执行中会话和SQL信息;
(2)完善指标下钻能力:支持下钻TOPSQL、WDR、智能诊断等,增强从指标分析问题的能力;
(3)支持集群监控:支持监控集群健康情况、延迟情况和资源压力情况;
智能诊断插件
(1)历史数据分析:支持基于专家知识库对历史时间段创建诊断任务,智能发现历史问题与根因,给出优化建议;
(2)SQL诊断:优化SQL诊断任务流程,丰富诊断知识库;
告警监控
(1)告警列表:支持查看和导出告警记录;
(2)告警详情:支持查看告警基本信息和进行告警确认;
(3)告警配置:支持创建告警模板,通过模板为不同实例配置不同的告警规则;
(4)告警规则:支持内置规则和自定义规则,支持基于指标和日志的告警;
(5)通知渠道:支持邮件、企业微信、钉钉、http、snmp多种通知渠道;
(6)通知模板:支持通过模板自定义通知内容。
DataKit:数据库开发插件增强,支持表/视图/用户角色/函数/存储过程等对象管理
- 增强表数据管理:增/删/改/分页查询数据,查询/筛选、排序、分区表数据修改、导入表数据;
- 增强表属性管理:列/索引/约束的增/删/改/查,清空/截断/删除表,支持analyze表;
- 增强视图管理:支持编辑视图名称/模式/代码;
- 增强模式管理:创建/编辑/删除模式;
- 增强函数/存储过程能力:存储过程(包括匿名块)调试,存储过程覆盖度统计,支持显示package、调试package里的函数/存储过程;
- 增强用户/角色管理:创建/删除用户/角色;
- 支持导出对象和数据:导出模式、函数、存储过程、表、序列、视图等对象和数据;
- SQL终端管理:导入/导出SQL脚本,支持SQL语法小助手,切换连接终端,重命名终端,查询执行历史;
- UI优化:窗口支持拖动,主题色文字高亮优化。
迁移工具:MySQL全量迁移:支持直接读取csv文件用于数据迁移,索引并行创建,解除跨平台的依赖,可靠性增强
- MySQL全量迁移工具gs_mysync支持直接读取MySQL的csv文件导入到openGauss;
- 从MySQL抽取数据时,不做数据类型映射和转换,由工具转成csv文件格式进行迁移;
- 支持索引单独迁移,并可由用户指定索引创建的并发度;
- 去除用户OS和python环境依赖,按平台提供统一安装包;
- 支持异常重启跳过已迁移完的表,支持迁移进度上报。
迁移工具:MySQL增量迁移&反向迁移:支持断点续传,支持迁移进度展示,反向迁移支持全量迁移
- 增量迁移和反向迁移支持断点续传,且保证数据一致性;
- 支持迁移进度、失败数据、DDL失败语句展示;
- 反向迁移支持对象和数据的全量迁移。
迁移工具:数据校验:支持按表分片校验,增强和全量迁移流程的配合,提升校验性能到150MB/s
- 支持源端和目的端都是openGauss的数据校验;
- 支持将表按分片进行数据校验,每批数据抽取之后就实施校验,最后合并校验结果;
- 增强和全量迁移的配合,支持将全量迁移导出的数据直接用于数据校验。
兼容性:SQL引擎解耦化,实现A兼容性模式基础插件whale
- 支持将SQL引擎解耦化,实现A兼容性模式插件whale。
兼容性:MySQL语法兼容性增强,完善数据类型转换、操作符、系统函数、系统视图、字符集/字符序、存储过程兼容性
5.1.0版本继续增强对MySQL的兼容,实现用户应用近似零修改迁移。
数据类型
支持数据类型显式/隐式转换规则和MySQL一致;
操作符
json支持=、>=、<=、>、<、&等操作符;
系统函数
COMPRESS, UNCOMPRESS, UNCOMPRESSED_LENGTH, NAME_CONST, WEIGHT_STRING;
系统视图
支持SHOW REPLICAS, SHOW REPLICA STATUS, SHOW ENGINES, SHOW STORAGE ENGINES, SHOW OPEN TABLES, SHOW SLAVE STATUS,
支持如下performance schema视图,events_statements_current,events_statements_history,events_statements_summary_by_digest,events_waits_current,events_waits_history,events_waits_history_long,events_waits_summary_global_by_event_name,events_transactions_current,events_transactions_history,file_instances,file_summary_by_event_name,file_summary_by_instance,table_io_waits_summary_by_table,table_io_waits_summary_by_index_usage;
字符集/字符序
set/enum数据类型支持设置字符集/字符序;
表达式和自定义变量支持字符集/字符序设置;
支持客户端连接的字符集和字符序设置;
支持gb18030_chinese_ci、gb18030_bin、gbk_chinese_ci、gbk_bin四种字符序;
存储过程
支持存储过程resignal语法和signal语法,实现对报错异常的处理;
支持DIAGNOSTICS,获取诊断信息;
存储过程和函数只带select语句时,支持call调用;
DML&DCL
支持start transaction带consistent snapshot选项,也就是创建事务时开启一致性快照;
支持别名带单引号;
select语句支持ignore/force index,忽略/强制走索引;
grant支持对函数做赋权操作;
DDL
创建视图支持sql security语法;
支持trigger建在指定schema中,并校验schema和table schema是否一致;
其他
逻辑导入导出工具(gs_dump、gs_dumpall、gs_restore)和物理备份恢复工具(gs_basebackup、gs_probackup)支持MySQL兼容性,包括对象、数据类型、DDL语法。
兼容性:支持MySQL协议兼容
- 支持对MySQL协议的兼容,包括unix domain socket、MySQL系统参数、用户建连断连、prepare-execute协议、普通SQL执行协议等的兼容。