openGauss

开源数据库

openGauss社区官网

开源社区

openGauss 3.1.1版本正式发布

openGauss2023-01-04theme

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

openGauss 3.1.1 版本是 openGauss 5.0.0 Release 版本的 Preview 版本,希望广大社区伙伴和开发者基于此版本进行场景化验证,提前发现问题并反馈社区,社区将在 Release 版本发布前进行问题修复。。

3.1.1 版本继承功能

openGauss 3.1.1 版本与之前版本特性功能保持兼容,主要继承功能如下:

  • 基础功能:SQL 标准语法、数据类型、表(包括临时表、全局临时表、外部表)、视图、物化视图、外键、索引(包括 btree 索引、Gin 索引、hash 索引)、序列、函数、触发器、聚合函数 median、ROWNUM、UPSERT、、jsonb 数据类型、GB18030 字符集。

  • 存储过程:存储过程、存储过程内 commit/rollback、参数的存储过程/函数调用省略()、存储过程调试。

  • 安全功能:认证、权限管理、网络通信安全、数据库审计、全密态数据库、动态数据脱敏、国密算法、防篡改账本数据库、内置角色和权限管理、透明加密、ANY 权限管理等。

  • 高可用:主备双机、级联备机、逻辑复制、极致 RTO、备机扩容、基于 Paxos 分布式一致性协议(DCF)、两地三中心跨 Region 容灾。

  • SQL 引擎增强:范围分区、全局分区索引、LIST 分区、HASH 分区、基于范围分区的自动扩展分区、行存转向量化、自治事务、并行查询、Global Syscache、IPv6 协议、postgis 插件。

  • 存储引擎增强:延迟备库、备机支持逻辑复制、并行逻辑解码、灰度升级、滚动升级、Hash 索引、列存表主键唯一约束、Ustore 存储引擎、段页式存储、发布订阅、行存表压缩、MOT 内存表、NUMA-aware 高性能优化等。

  • 备份恢复:全量物理备份、逻辑备份、备机备份、增量备份和恢复、恢复到指定时间点(PITR)。

  • AI 能力:参数自调优、慢 SQL 发现、AI 查询时间预测、数据库指标采集预测与异常监控、DBMind 自治运维平台、智能优化器、智能索引推荐、deepSQL 库内 AI 算法、库内 AI 算法支持 XGBoost、multiclass 和 PCA。

  • 运维能力:WDR 诊断报告新增数据库运行指标、备机慢 SQL 诊断视图、unique sql 自动淘汰。

  • JDBC:支持 JDBC 客户端负载均衡及读写分离。

  • CM:支持 CM 集群管理,CM 支持自定义资源管控,支持对外状态查询和推送能力。

  • 工具链:开发工具 DataStudio、数据迁移工具 chameleon。

  • 中间件:ShardingSphere、openLookeng。

  • 周边生态:dblink,支持 openEuler、CentOS、Ubuntu、FusionOS 系统。

  • 其他:cmake 脚本编译、容器化部署、kubernetes。

3.1.1 版本新增功能

  • 主备共享存储

    主备共享存储提供主备机共享一份存储的能力,实现基于磁阵设备的主备共享存储 HA 部署形态,可选通过 OCK RDMA 提升备机实时一致性读能力。该特性主要依赖两个自研的公共组件:

    • 分布式存储服务 DSS(Distributed Storage Service) DSS 是独立进程,直接管理磁阵裸设备,并对外提供类似分布式文件系统的能力。通过共享内存和客户端 API 动态库,为数据库提供创建文件、删除文件、扩展和收缩文件、读写文件的能力。

    • 分布式内存服务 DMS(Distributed Memory Service) DMS 是动态库,集成在数据库内部,通过 TCP/RDMA 网络传输 PAGE 内容,将主备内存融合,提供内存池化能力,以此实现备机实时一致性读功能,即主机事务提交后,在备机立即能够读到,不存在延迟读现象(事务隔离级别为 Read-Committed)。 共享存储通过 OCK RDMA 降低 DMS 主备页面交换时延。TCP 下的备机一致性读进行时延对比,开启 OCK RDMA,备机一致性读时延至少要降低 20%。

  • CM 部署和数据库部署解耦,CM 支持增量升级

    CM 部署和数据库部署解耦,CM 支持增量升级支持在已有数据库进程时,CM 解耦化安装,同时支持 CM 组件单独升级,增强数据库集群可靠性。

  • MySQL 兼容性增强

    3.1.1 版本新增对以下语法点的支持:

    • 操作符:!、->、->>。

    • 系统函数:JSON_ARRAY()、JSON_OBJECT()、JSON_QUOTE()、JSON_CONTAINS()、JSON_CONTAINS_PATH()、JSON_EXTRACT()等 28 个 JSON 类函数,支持 any_value、database、default 函数。

    • DDL:

      • 支持分区表使用函数作为分区条件
      • 分区表语法支持 less than maxvalue
    • DML:

      • 支持 Load DATA 语法用于导入数据
      • 视图支持插入、删除和更新
      • insert 支持 set 后面的表达式右值带字段名
      • 指定多个分区查询数据
    • PL/SQL:

      • 支持 WHILE 循环带标签
      • 支持 CASE WHEN condition 控制语法
      • 支持 IF_THEN 控制语法
      • 支持 CURSOR 语法和 MySQL 兼容
      • 支持 Declare...CONDITION FOR 语法
      • 支持 DO expr [, expr] ...
      • 支持 REPEAT 和 Return 子句
  • DCL:

    • create user 带 if not exists 选项
  • 其他:

    • 增加 sql_mode 选项 ansi_quotes 和 no_zero_date,分别表示双引号做引用、date 支持全 0
    • 支持 show warnings,show errors
    • 支持反引号作为标识符
  • MOT 内存表能力增强

    • MOT 表支持 MVCC

    • 支持 MOT 表与磁盘表跨引擎联合计算能力

    • MOT 表支持 add/drop/rename column

    • MOT 支持并行回放

    • 只包含 MOT 表的存储过程支持 JIT 及时编译能力

感谢 openGauss 社区所有贡献者

感谢来自 openGauss 社区 1154 名参与 openGauss 3.1.1 版本贡献的开发者。

同样感谢积极参与本次版本贡献的华为、中国联通、海量数据、云和恩墨、神舟通用、南大通用、超聚变、深信服、西安智讯数据等组织单位。

​ 感恩致以往,初心敬未来。祝大家元旦快乐!