写点什么

openGauss 5.0.0 版本正式发布!

作者:openGauss
  • 2023-04-13
    中国香港
  • 本文字数:5182 字

    阅读完需:约 17 分钟

openGauss 5.0.0版本正式发布!

今日,openGauss 5.0.0 版本正式上线!

openGauss 5.0.0 是 openGauss 发布的第三个 LTS 版本,版本生命周期为 3 年。openGauss 5.0.0 版本与之前的版本功能特性保持兼容,在内核能力、工具链、兼容性方面全面增强。

发行说明请参考官网:

https://docs.opengauss.org/zh/docs/latest/docs/Releasenotes/Releasenotes.html

立即体验 openGauss 5.0.0 版本!

https://opengauss.org/zh/download/(或点击下方阅读原文)

一、内核能力增强

1

企业级特性

SQL PATCH

当业务语句出现由于数据等因素变化引起执行计划跳变,且出现严重的性能劣化,用户可通过 SQL PATCH 机制在线实施修复,业务无需版本升级,无感知解决计划跳变等疑难问题。

SQL Patch 功能通过在优化器阶段计划生成之前对查询解析树的 HintState 成员进行替换,达成在计划生成阶段产生最佳执行计划的效果。在接口层面,用户可以使用 SQL PATCH 的创建、激活、禁用、删除、显示等接口,实现 SQL PATCH 全生命周期管理。

分区表能力持续增强

  • List 分区键最大数由 1 扩展为 16 列;

  • Range 分区键最大数由 4 扩展为 16 列;

  • 分区键底层重构 LRHS 为统一分区键内存结构

  • 兼容创建分区表 COLUMNS、VALUES IN、PARTITIONS num、SUBPARTITIONS num、MAXVALUE、KEY 语法

  • 优化跨分区的 DDL 和 DML 并发查询的算法,提升并发查询的性能

内置 gstack 工具

客户场景中 gdb、gstack 等工具都是无法使用的,当系统出现 hang、慢等问题时,无法通过调用栈进行进一步的定位,针对以上痛点,通过复用 openGauss 操作系统信号,在信号处理函数中获取调用栈的方式实现内置 gs_stack()函数,方便用户打印线程定位疑难问题。

事件触发器

客户场景中常常存在某个表结构发生变化时,希望在另一个或几个表上执行一些相关操作的需求。而通过事件触发器可以捕获当前数据库下的 ddl 操作以及 ddl 操作的目标对象,当目标对象发生执行指定操作的事件后,触发用户自定义的存储过程,处理业务期望的后续任务。目前已支持捕获的 DDL 事件包括:ddl_command_start、ddl_command_end、sql_drop、table_rewrite 四类。

2

 高性能

基础算子性能提升

扫描算子、聚集算子性能优化,实现 TPC-H 100G 数据量场景端到端性能提升 37%.

  • Parser 优化:优化 Parser 中关键字的搜索方法;

  • 表达式及算子优化:表达式框架展平及算子性能优化;

  • Inner Unique 优化;

  • 谓词优化:通过谓词等价推理,获得新的下推谓词;

  • 扫描算子优化:对索引扫描、全表扫描算子做优化;

  • 聚集算子优化:对聚集算子做性能优化。

3

高可用

CM 支持 VIP 管理

  • 支持业务配置 VIP 连接数据库,当主机故障,发生主备切换时,业务连接可自动重连到新的主机(毫秒级别);

  • 当数据库出现双主时,通过 VIP 连接数据库可确保连接唯一的主机,降低双主丢数据的风险。

CM 支持两节点部署

  • 通过引入第三方网关 IP,有效解决 CM 集群两节点部署模式下自仲裁问题,支持 CMS 和 DN;

  • 同时支持动态配置 CM 集群故障切换策略和数据库集群脑裂故障恢复策略,从而能够尽可能确保集群数据的完整性和一致性。

CM 磁盘只读检测能力增强

  • 只读状态从数据库获取,保证准确性;

  • 只读仲裁只仲裁当前超过阈值的实例,其他节点不受影响;

  • 主机只读保护后自动主备切换,选可用备机升主保证集群能正常提供工作。

CM 易用性提升

  • 支持一键式关闭 CM 集群服务;

  • 支持和内核的安装部署解耦;

  • 支持按事件调用用户自定义脚本;

  • 支持 CM 组件单独升级,增强数据库集群可靠性;

  • CM 根据配置信息,支持用户自定义组件的监控和管理。

4

高智能

DBMind 自治运维系统持续增强

异常检测支持自配置

为适应用户实际场景和避免资源占用,DBMind 支持系统、数据库上的异常检测自配置,用户可以在运行前或运行过程中实时增加、暂停或删除相应的异常检测项,其中异常检测项支持复合不同的异常检测算法,异常检测会根据不同的异常检测器的结果取交集,这样为适配用户具体使用场景提供了支持。

5

高安全

支持用户级别审计设置

  • 支持用户级别审计日志,对指定用户的所有 SQL 语句记录审计日志;

  • 支持按客户端信息配置审计开关,对指定的客户端 APP 及 IP 不记录审计日志;

  • 支持对风险较高的系统函数调用记录审计日志

6

资源池化

计算池化

计算池化支持多样化算力,通过 shardingSphere 构建 openGauss 分布式计算能力,实现 32 节点>2100W tpmC。

存储池化

存储池化支持多节点共享存储和池化能力,支持高端企业存储。基于分布式存储服务 DSS 组件,实现多节点共享一份数据,存储效率提升 50%。

内存池化

基于分布式内存服务 DMS 组件实现多节点内存池化功能,通过高速互联网络交换页面实现多节点数据实时一致,并结合 RoCE 硬件 RDMA 加速,实现极致的低时延高吞吐通信。

集群管理

基于双重心跳检测、共享盘仲裁、IO Fencing 等技术实现集群节点故障自动检测、恢复和隔离,为资源池化提供一个高可靠的运行环境。

二、DataKit 工具链增强

DataKit 定位为 openGauss 的数据全生命周期生产力工具,支持数据全生命管理,覆盖 openGauss 部署、迁移、开发、运维等阶段;

  • DataKit 是 openGauss 的一个工具集,采用 B/S 软件架构,提供基础的服务器、数据库实例等软硬件资源管理能力;

  • 同时支持通过按需部署功能插件扩展能力,目前社区提供安装部署、数据迁移、数据开发、智能运维等功能插件;

  • DataKit 也是一个工具开发平台,支持用户根据插件接口和规范实现自己的特有功能。功能插件支持动态加载到 DataKit 上运行,也支持从 DataKit 上动态卸载。插件支持调用平台和其他插件的开放接口获取相应数据和功能,以实现快速构建特色功能。

1

资源中心

资源管理作为 DataKit 的基座,为插件提供最基础的资源信息,让插件基于资源进行上层的业务开发和更为复杂的功能实现。当前支持的资源:

  • 数据库实例(包括 openGauss 和实例)

  • 物理机资源及可用区管理。

2

迁移能力

MySQL 一站式迁移工具 gs_rep_portal

  • gs_rep_portal 支持对接 debezium+kafka 和 gs_mysync,集成全量迁移、增量迁移、数据校验能力,实现全量迁移、增量迁移、反向迁移、数据校验完整方案打通;

  • 支持并行迁移任务流创建,支持用户设定自定义迁移计划,任务根据用户设定的执行计划顺序的自动执行迁移的每个步骤;

  • 支持迁移进度展示(总量、剩余量、剩余时间、复制时延等),支持迁移失败语句的展示。

MySQL 全量迁移工具 gs_mysync

  • 全量迁移工具 gs_mysync(原 chameleon),新增进度展示功能、可调试增强,全量迁移性能大于 300M/s,即 1T/h。

MySQL 增量迁移和反向迁移工具 gs_replicate

  • 增量迁移和反向迁移收编到 Dezebium+kafka,对外统一到 gs_replicate 工具中,增量迁移性能大于 3W tps。

基于默克尔树的数据校验工具 gs_datacheck

  • 数据校验性能达到 70MB/s;

  • 支持行级、列级、表级数据校验;

  • 支持对全量迁移导出的数据做直接读取校验。

3

业务建模

支持可视化算子操作和编辑,sql 语句的预览和运行,数据可视化和生成报表,它作为 DataKit 的可插拔插件开发。主要功能:

  • 提供拖拽、连线的操作方式完成数据流算子的组装、配置。

  • 支持读取单步算子执行结果为用户生成自定义图表,并可以记录快照。

  • 可将一个或多个图表快照通过自由排布的方式构建报表,并可通过外链分享给游客用户。

4

智能运维

支持慢 sql 诊断,日志检索,多维度运维指标监控。它作为 DataKit 的可插拔插件开发。主要功能:

  • 实例监控插件:支持监控 openGauss 数据库以及数据库所在服务器,本特性主要关注数据库和操作系统监控指标和 TOPSQL 捕获和分析。与其他需求及特性的交互分析:支持关联 SQL 诊断功能,进入 TOPSQL 详情页面,用户可触发创建诊断任务,对 TOPSQL 进行诊断分析。

  • 日志检索插件:为 openGauss 用户提供 OS 日志、数据库日志统一检索入口。

  • SQL 诊断插件:为 openGauss 用户提供慢 SQL 监控、问题 SQL 诊断分析的功能。

5

安装部署

使用 DataKit 的安装功能可以让用户能够快速上手体验 openGauss 企业级数据库功能,包括在企业环境中安装、部署、卸载、各类 openGauss 集群,减少了用户的学习成本和运维成本,实现了对 openGauss 各种常见操作的可视化,屏蔽了不同 openGauss 版本中的配置差异。它作为 DataKit 的可插拔插件开发,主要功能:

  • 实现不同版本的 openGauss 安装、不同版本的升级;实现简单快捷的数据库日常运维。

  • 实现在页面上查看 openGauss 数据库基本状态、实时数据推送等。

6

数据开发

业务开发 (Web Data Studio) 是一个基于 B 通用集成开发环境,它以插件形式安装部署于 DataKit,简化了 openGauss 数据库的开发和管理工作。

7

调试能力

它允许数据库开发 &DBA 在 DataKit 上实现存储过程(函数)的开发与调试,它作为 DataKit 的可插拔插件开发,主要功能:

  • 创建和管理数据库的存储过程。

  • 在线可视化调试存储过程。

三、兼容能力增强

兼容能力增强兼容 MySQL 包括数据类型、操作符、系统函数、DDL、DML、DCL、PL/SQL 等在内的绝大部分常用语法,实现应用近似零修改迁移

5.0.0 版本新增对以下语法点的支持(只列举部分典型语法,详情请参见《数据迁移指南》中“MySQL 兼容性说明”章节):

  • 数据类型:(1)支持 XML 类型;(2)支持 binary 数据类型及运算符;(3)支持 tinyint

  • 系统函数:ADDDATE、ADDTIME、CONVERT_TZ、CURDATE、DATE_ADD、DATE_FORMAT、JSON_ARRAY、JSON_OBJECT、JSON_QUOTE、JSON_EXTRACT、DATABASE、ROW_COUNT、ANY_VALUE 等;

  • DDL:(1)支持 schema 级、表级、列级设置和修改默认字符集和排序规则,支持对表的字符集进行转换;(2)支持在表第一列前面或者在指定列后面添加列;(3)支持隐藏索引,设置索引可见性;(4)支持字段大小写敏感;

  • DML:(1)支持对 select into 后面带 OUTFILE、DUMPFILE 和变量;(2)支持 LOAD DATA 语句导入表数据;(3)distinct 支持 order by 带表达式;(4)select 支持 force 关键字强制走索引;(5)视图支持插入、删除和更新;(6)支持 default 函数用于 SQL 语句;

  • DCL:(1)支持 set transaction 语法,设置会话和全局的隔离级别;(2)支持事件调度器,支持创建、修改、删除 event 操作;(3)支持 show status、show warning 和 show errors 等;(4)支持 'user'@'host' 形式指定用户;

  • PL/SQL:(1)支持 WHILE 循环带标签;(2)支持 CASE WHEN condition 和 IF_THEN 控制语法;(3)支持 cursor 相关语法;(4)存储过程支持 REPEAT 和 RETURN; (5)支持 create function 前面不加 as begin,末尾不加 end language plpgsql;(6)支持 declare handler、continue handler、exit handler;

  • 其他语法兼容:(1)支持用户自定义变量保存 select 语句的结果;(2)支持 utf8_general_ci、utf8_bin、utf8_unicode_ci、binary 等字符序;(3)支持 utf8mb4 字符集;(4)支持操作符行为和 MySQL 一致;(5)支持双引号表示字符串。

四、其他企业级特性增强

1

中间件

shardingSphere 支持多种模式读写分离,支持跨库查询

  • 支持事务内语句的读写分离能力;

  • 支持聚集算子计算能力,实现数据库跨分片表关联查询功能。

openGauss+shardingSphere 32 节点组网性能>2100W tpmC

  • shardingSphere 后端采用异步 JDBC 降低连接消耗、openGauss 采用资源池化架构提高单分片能力,使用 32 个鲲鹏 920(128 核)节点组网(1*shardingsphere-proxy ,11*shardingsphere-jdbc,20*openGauss)时,完美 sharding 性能>2100 万 tpmc。

2

应用开发接口

JDBC 能力增强

  • 支持集群状态变化时触发快速负载均衡;

  • 支持开启心跳线程定时维护主节点心跳,在主节点故障后快速 kill 旧连接、对新连接连到新主上

五、文档结构优化

为了方便用户更好地使用 openGauss,按用户角色、使用场景优化了文档结构,增加快速入门、应用开发指南、数据库管理指南、数据库运维指南、性能调优指南、AI 特性指南、插件参考、SQL 参考和数据库参考,用户可以根据使用场景快速获取 openGauss 信息。

快速体验:https://docs.opengauss.org/zh/docs/5.0.0/docs/GettingStarted/GettingStarted.html

开放治理,共建、共享、共治最具创新力的数据库开源社区

作为一个开源社区,openGauss 秉承共建、共享、共治的理念。通过开放、成熟的治理,与企业、伙伴、开发者,共同建设开源社区。截至目前,openGauss 社区用户超过 160 万,230 多家企业签署企业贡献者协议 CLA 加入到社区,来自企业和高校的 4400 名开发者积极参与 openGauss 社区贡献,联合伙伴累计完成 500+个行业解决方案适配,覆盖政府、金融、运营商等 10 余个行业。

感谢 openGauss 社区所有贡献者

“孤举者难起,众行者易趋”。我们衷心感谢来自社区 550 名参与 openGauss 5.0.0 版本开发的开发者们。

感谢参与和协助 openGauss 项目的所有成员,包括华为、清华大学、云和恩墨、海量数据、中国联通、中国移动、南大通用、粤港澳大湾区国家技术创新中心、软通动力、中软国际、北京超图软件股份有限公司、民生银行、神舟通用、易宝软件、北京思斐软件技术有限公司、超聚变数字技术有限公司、浩联云(广东)科技有限公司、西安智讯数据网络有限公司、西安电子科技大学、天津大学、电子科技大学计算机科学与工程学院、宁夏大学信息工程学院、华南理工大学软件学院、中山大学计算机学院、中央民族大学信息工程学院、西安利他网络有限公司、深信服科技股份有限公司等组织单位(排名不分先后)。是你们的辛勤付出使得版本顺利发布,也为 openGauss 更好地发展提供可能。

用户头像

openGauss

关注

还未添加个人签名 2020-11-13 加入

openGauss是一款高性能、高安全、高可靠的企业级开源关系型数据库。

评论

发布
暂无评论
openGauss 5.0.0版本正式发布!_openGauss_InfoQ写作社区