openGauss 5.0.0 版本正式发布


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

具体更新内容包括:

一、内核能力增强

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

更多详情可查看发行说明。


相關推薦

2023-05-27

5月25日-26日,以“聚数成峰,共赢未来”为主题的openGauss Developer Day 2023(openGauss开发者大会2023)在北京举办。本届大会在中国计算机学会、国家工业信息安全发展研究中心指导下,由openGauss开源社区主办,联合海量

2023-11-07

/行云数据库 registerDialectAlias("xcloud",CirroDataDialect.class); //openGauss数据库 registerDialectAlias("opengauss",PostgreSqlDialect.class); //注册 AutoDialect //想要实现和以前版本相同的效果时,可以配置 autoDialectClass=old registerAutoDialectAlias("old",DefaultAut

2024-02-02

larDB 以 856.07 分刷新榜单记录,排名第一,OceanBase、TiDB、OpenGauss、人大金仓分列 2~5 名。 诞生于 2017 年的 PolarDB 是中国首款自研云原生数据库,采用存储计算分离、软硬一体化设计。在弹性场景下,PolarDB 成本仅为传统商业数据

2023-07-06

PostgreSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, DM, OpenGauss, ClickHouse, IoTDB, Redis Cluster, Redis Sentinel Linux, Ubuntu, CentOS, Windows, EulerOS, Fedora CoreOS, OpenSUSE, Rocky Linux, Red Hat, FreeBSD, AlmaLinux, Debian Linux Tomcat, Nacos, Zookeeper, RabbitMQ, Flin

2023-02-09

Endless Foundation 已正式发布 Endless OS 5.0 ,此版本基于 Debian GNU/Linux 11 “Bullseye”,桌面建立在 GNOME 41 桌面环境之上,并运行在下一代Wayland 显示协议之上,以改进隐私、安全和 X11 的性能提升。 新的默认壁纸 由于 Endless OS 是一

2022-11-22

在推出两个 Alpha 版本之后,OCaml 5.0.0 发布了首个 Beta 测试版。目前标准库已达到稳定状态,离正式版的发布越来越近。与上一个 alpha 相比,首个 Beta 版本包含许多小型的内部 runtime 修复补丁,尤其是在 systhreads 库中。 在用户

2022-11-24

x VE 7.3 基于 Debian 11.5 "Bullseye" 构建,但采用了较新的内核版本:Linux kernel 5.15/5.19,还将重要的软件进行了升级:QEMU 7.1, LXC 5.0.0 和 ZFS 2.1.6。 此版本最重要的变化是实现对集群资源调度 (Cluster Resource Scheduling, CRS) 的初步支持。在

2023-02-10

greSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, 达梦, OpenGauss, ClickHouse, IoTDB Linux, Ubuntu, CentOS, Windows Tomcat, Nacos, Zookeeper, RabbitMQ, Flink, Kafka, ShenYu, DynamicTp, Jetty, ActiveMQ Kubernetes, Docker 和更多您的自定义监控。 通知支持 Disc

2022-10-24

Spring Batch 5.0 发布了首个 RC 版本。 Spring Batch 是一个轻量级且功能全面的批处理框架,使用 Spring 和 Java 编写离线和批处理应用程序,旨在为开发对企业系统日常运行至关重要的批处理应用程序提供支持。 此版本包含两个主

2023-01-08

OpenMandriva ROME 是 Mandriva 项目的滚动发布版本,旨在继续向用户提供最新的软件包,作为传统操作系统版本的替代方案。与 OpenMandriva Lx 版本一样,OpenMandriva ROME 继续默认使用 LLVM 编译器作为使用 GCC 的替代方法。 目前 OpenMandriv

2022-11-12

Spring Batch 5.0 发布了第二个 RC 版本。 Spring Batch 是一个轻量级且功能全面的批处理框架,使用 Spring 和 Java 编写离线和批处理应用程序,旨在为开发对企业系统日常运行至关重要的批处理应用程序提供支持。 此版本包含三项

2022-08-27

改善 Spring Batch 的测试支持。 测试工具配置更新 到 4.3 版本为止, JobLauncherTestUtils 用来自动连接被测 Job,目的是为了方便测试设置。但如果在测试上下文中定义了多个 Job 呢?如果根本就没有定义 Job beans 呢?因此,虽然这种

2022-07-26

Netty 5.0.0.Alpha4 已发布,此版本删除了大量重复代码,并对 API 进行了清理。除此之外还增加了在使用 JDK NIO 实现时,对 Unix Domain Socket 的支持。 主要变化 支持创建包含 ProtocolFamily 的所有 SocketChannel 和 DatagramChannel

2022-05-19

和甘特图以协助可视化表现项目与时间限制,问题跟踪和版本控制。此外,Redmine 也可以同时处理多个项目。 此次更新解决了在 Redmine 4.2.5 和 5.0.0 版本中发现的一些重要问题。其中包括了两个安全修复: 对最新的 Ruby on Rails