OceanBase 4.2.1 LTS 发版 | 一体化数据库首个长期支持版本

在刚刚结束的年度发布会上,OceanBase 沿着“一体化”产品战略思路,发布了一体化数据库的首个长期支持版本 4.2.1 LTS。作为 4.0 系列的第一个 LTS 版本,该版本的定位是支撑客户关键业务稳定长久运行,我们非常认真的打磨了这个版本,目的就是为了让客户可以在关键业务负载中放心地规模化使用。

2023 年初,OceanBase 发布了面向开发者的 4.1 版本,在单机分布式一体化架构的基础上推出了大量新增功能,并且大幅提升了性能和稳定性,获得了开发者的很多好评。4.2.1 LTS 是面向 OLTP 核心场景的全功能里程碑版本,相比上一个 3.2.4 LTS 版本,新版本能力全面提升,适应场景更加丰富,有更全面的容灾解决方案。

经过 4.0.0、4.1.0、4.2.0 等多个版本的迭代打磨,新的一体化版本已经在生产环境支撑了上百个业务系统稳定运行,这些系统既包括私有化部署的环境也包括公有云环境。这些实践案例表明,使用新版本能够简化核心系统迁移的成本,提升系统的运行效率。

4.2.1 LTS 版本相比  3.2.4 LTS 版本在兼容性、性能、容灾能力、易用性等方面有大幅度提升,下文对于这些方面分别介绍其中的一些亮点,欢迎大家上手体验该版本的更多关键能力升级。

图片

(一)Oracle 兼容性

定位于核心系统升级的 4.2.1 LTS 版本,是 Oracle 兼容性的一个里程碑版本,汇集了 OceanBase 在银行、券商、保险、运营商、电力、人社等多个行业实际业务场景中打磨出的各项兼容能力,让更多的业务场景可以利用 4.2.1 LTS 版本进行平滑应用迁移。

1. 复杂查询能力

Oracle 有较强的查询优化和执行性能,面对很多业务场景中复杂的 SQL 能高效的执行,这些是很多核心系统切换过程遇到的挑战。新的一体化版本中优化器能力有了质的提升,有了更多的查询改写能力,提升了多表 JOIN 请求的计划生成性能。执行器也有大幅度的性能提升,允许更多的算子下压操作,还引入了更多的自适应执行能力。TPC-H 和 TPC-DS 场景性能都比 3.2.4 版本有大幅提升。新版本能够大幅减少核心系统迁移遇到的复杂查询的性能挑战。

2. 存储过程

新版本对于存储过程的兼容能力也有大幅度提升,全面兼容了 Oracle 复杂数据类型,支持多维嵌套和完善的多层级联复杂数据类型访问,新增组合触发器和触发器 Order 能力支持,新增了 AnyData、AnyType 数据类型。新版本中,存储过程的编译结果支持了落盘持久化能力,大幅度优化了复杂存储过程重启的重新加载耗时。同时,系统还新增了很多 Oracle 的系统包,如 DBMS_TYPES、DBMS_XMLGEN、DBMS_SYS_ERROR 等。这些能力可以帮助业务场景更平滑地从 Oracle 迁移到 OceanBase。

3. LOB

新版本全面兼容 Oracle 的 LOB 能力,能够支持 TB 级别的 LOB 存储能力。对于 LOB 的操作也支持延迟加载,解决了 LOB 访问对于内存的依赖。4.2.1 版本同样兼容了 Oracle 操作 LOB 类型的 DBMS_LOB 包,用户通过 DBMS_LOB 包可以对 LOB 内容执行插入、更新、删除、读取等操作,更精细地实现业务需求。

4. JSON、XML

JSON 越来越多被用在各种业务中,新版本 Oracle 兼容模式也完善了 JSON 类型的支持,支持 JSON 类型的存储与查询,还支持了 Oracle 关于 JSON 新增的大部分函数如JSON_OBJECT、JSON_EQUAL等,方便在 Oracle 兼容模式中对 JSON 类型进行处理。新版本对于 XML 类型的支持也得到了进一步增强,支持了原生的XML Binary存储,能够加速XML的查询,也支持基于虚拟生成列在XML文档上建立索引。

5. Database Link & XA

相较于 3.2 版本 Database Link 只能支持跨数据库的读操作,新版本以 XA 事务能力为基础,在 Database Link 上支持了跨 OceanBase 和 Oracle 的写事务能力,也支持 OceanBase 到 OceanBase 的写事务能力。更强的 Database Link 功能的支持可以协助实际业务替换数据库过程中做得更平滑,改动更小。

(二)MySQL 兼容性

OceanBase 的 MySQL 兼容模式在之前的版本已经对 MySQL 5.7 有很好兼容能力的基础上,新的 4.2.1 LTS 版本引入了大量 MySQL 8.0 的新功能:

  • 新增多种 SQL mode 的支持,包括 REAL_AS_FLOAT, POSTGRESQL, NO_DIR_IN_CREATE 等 13 个

  • 新增支持十多个函数,包括 BIN_TO_UUID, CURRENT_ROLE, IS_UUID 等

  • 触发器功能中 CREATE TRIGGER 语句支持 PRECEDES/FOLLOWS 子句定义触发顺序

  • 公共表达式功能(CTE)支持 WITH ... UPDATE ... 和 WITH ... DELETE ... 用法

  • 新增函数索引支持

  • 进一步完善 INFORMATION_SCHEMA 的兼容表现

接下来聊聊很多用户都期待的 Binlog Service,很多数据生态产品都支持解析 MySQL Binlog 格式,为了让 OceanBase 更好的融入 MySQL 兼容生态,新版本新增 Binlog Service 能力,可以将 OceanBase 的增量日志转换成 MySQL Binlog 格式,并且全面兼容 Binlog 协议,当用户将 MySQL 替换为 OceanBase 时,可以继续复用 MySQL 的增量日志解析工具。

图片

作为一体化数据库,OceanBase 也在持续提升产品的性能和性价比。不同业务会侧重于不同功能不同场景,对于性能的需求也是多方面,有些业务关注系统的极限性能,有些关注小规格机器的性价比,另一些业务会关注 DDL 的性能,还有的业务关注 AP 场景的性能。OceanBase 4.2.1 LTS 版本在这些方面都有很多性能提升和改进。

(一)TP性能

OceanBase 基于单机分布式一体化架构已经打造了单机能力可以超越单机 MySQL 的系统,新版本在各种规格下性能相比之前的版本均有较多提升,在 96 Core 机器上,sysbench 压测的性能相比 3.2.4 版本提升 9% 到 100%。新版本对于小规格有更大幅度的优化,提升比例从 51% 到 152% 不等,在 read only、insert、update 三种场景的性能都达到了 3.2.4 版本的 2 倍以上。

图片

(二)AP性能

OceanBase 一体化数据库在分析查询场景性能有大幅度提升,在新的 4.2.1 LTS 版本中,计划优化能力、执行能力相比较 3.2.4 LTS 版本均有质的提升,以 TPC-DS 场景为例,其所模拟的决策支持场景有大量的 JOIN 操作,对于优化器和执行器都有非常大的挑战。在新版本上 TPC-DS 100G 性能是 3.2.4 版本的 2.7 倍,性能优化效果更显著。

(三)统计信息

对于分析查询场景,想要生成好的执行计划,必须要有准确的统计信息。在 HTAP 环境中,表格中的数据随着业务的运行也在不停的变化,OceanBase 4.2.1 LTS 新增了多项能力来更好的获取准确的统计信息,最终可以生成更好的执行计划。

在 4.2.1 LTS 版本中,全量的统计信息收集会在每日规定的时间窗口内进行,通过DBMS_SCHEDULER 包进行相关的设置,也可以使用 DBMS_STATS 包立即执行统计信息相关的操作。

在线统计信息收集功能是让表格在突然写入了大量数据的过程中自动维护统计信息,确保及时生成最优的执行计划。新版本中,当用户执行 CREATE TABLE AS SELECT、INSERT INTO SELECT、LOAD DATA 等语句时,在请求执行的过程中,利用原本数据迭代流程,采用增量更新的方式,对统计信息进行更新。在线统计信息收集功能,不仅能够更及时地维护统计信息,而且相比显式调用统计信息收集更轻量、更快速。

优化器动态采样功能能在 SQL 运行时收集需要的统计信息,帮助优化器生成更好的执行计划,优化查询性能。当没有可用的统计信息或者查询条件中存在复杂谓词,比如 "c1 like '%test%' ",无法用选择率计算公式进行行数估计,再加上用户明确指定开启的场景,OceanBase 会在计划生成阶段启用动态采样以获得更准确的统计信息。

(四)DDL

在业务迁移数据的开始阶段,会将业务所有的表格在 OceanBase 系统中创建出来,会有并发的建表语句执行。在汇总、清算等业务场景中,业务会在执行流程中进行 Schema 操作,例如使用 Truncate Table 清空一些计算的中间数据。

最新的 4.2.1 LTS 版本对这些场景有优化。Create Table 语句与 Truncate Table 允许并行执行,在通常的生产环境中,批量并发操作新版本性能相比 3.2.4 LTS 版本有 10 倍以上的性能提升。在优化执行效率的同时,OceanBase 依然保证了严格的并发控制,同一张表的并发Truncate Table 会串行执行,另外,如果表上正在执行修改事务,Truncate Table 语句也会等待事务结束才会执行,确保了 Truncate Table 严格的并发控制行为。

(五)旁路导入

当业务迁移到 OceanBase 时,首先面临的挑战就是把大量的数据迁移到 OceanBase 中,在新版本中,旁路导入功能可以大大加速数据导入的速度,通过让一张表格写入数据的流程绕过 SQL 引擎和事务引擎,直接按照存储引擎的格式生成持久化的数据,在很多场景下可以让导入性能提升 6 倍。旁路导入功能是一个完备的功能,有很多让使用者贴心的使用体验。旁路导入在表级别进行并发控制,正在执行旁路导入的表会与表上的其他修改事务互斥,保证数据的一致性。同一时间其他表上的操作不会受影响。旁路导入功能还适配了备份恢复和物理备库功能,新写入的数据会实时归档,也会同步到备库。所以,旁路导入功能不仅可以用在新业务加载数据的场景,日常的数据操作和运维管理也可以使用。

图片

(一)仲裁服务

仲裁服务是专为OceanBase集群提供活性检测和容灾切换的服务。仲裁服务自身不存储用户数据,与集群内的各台机器之间只有心跳通信,带宽占用极小。

图片

基于仲裁服务的两地三中心高可用部署方案在主城市的两中心各放置两副本,在灾备城市放置仲裁服务。集群正常工作时,主城市的四副本依然以 Paxos 一致性协议为基础进行事务日志的高可用同步,四副本的多数派为三,集群中一台机器出现故障时,不会影响集群的正常服务。仲裁服务会实时维护与主城市四副本之间的活性检测,当主城市任一中心故障时,会出现两台机器故障,仲裁服务会介入管理让另一个状态正常的中心恢复数据库的服务。基于仲裁的高可用方案在大幅度减少对于跨城网络带宽的依赖同时,依然保证了在主城市单个中心故障时服务连续性和数据可靠性,是理想的两地三中心的数据库部署方案。

同时,为了异地灾备,OceanBase 使用备集群异步同步主集群的所有数据变更。备集群对于跨城带宽的使用是弱依赖,当跨城同步的日志量超过跨城带宽时,会出现备集群同步落后的现象,不会影响主集群的服务,为业务提供更好的服务连续性。在业务高峰期过后,备集群能够利用主集群归档的日志继续日志同步,在业务低峰期将数据库的状态追赶上主集群,简化数据库的运维操作。

(二)故障恢复时间 RTO < 8 秒

OceanBase 一直以稳定可靠的容灾能力为业务的连续性提供保障,在新版本中,机器宕机时数据库的恢复时间小于 8 秒的能力,即 RTO < 8 秒。

在数据库的实际运行环境中,出现的异常情况不仅是机器宕机,还会出现网络中断、IO 异常甚至是数据库进程被中断等。另外,出现异常的也不一定是数据库机器,还有可能是路由层 OBProxy 所在服务器。异常情况的处理不仅要考虑通常 TP 业务的并发事务执行场景,也要考虑执行 DDL、数据加载等运维场景。

新版本中,我们继续完善了故障恢复能力,以用户实际遇到的多种类的异常问题作为优化目标,打磨每个模块处理异常的细节,让上述提到的各种异常情况发生时,数据库的服务都能在 8 秒内恢复,给业务提供更强的持续可用能力。

(三)租户级别物理备库

之前版本的 OceanBase 物理备库功能是集群级别的,同一个集群所有的租户必须同时是主库状态或者同时是备库状态。但是,使用 OceanBase 的用户会使用不同的租户来承载不同的业务,容灾的需求也就会以租户粒度有区别。新版本提供租户级别物理备库功能,让备库功能做到租户粒度,允许同一个集群中同时存在主库角色的租户和备库角色的租户,也就允许两个集群的不同租户互为主备,例如,A租户的主库在集群 1、备库在集群 2,B 租户的主库在集群 2、备库在集群 1。通过更加灵活的方式,可以方便用户安排更符合实际业务的容灾部署方案。

同时,新的物理备库方案在内核层面做了全新设计,解除了对于集群运行状态的依赖,备库同步只依赖归档存储中的日志即可,即使主库不存在了,也可以基于备份数据和归档日志搭建出备库,所以,只要归档日志还在,用户也不用担心主库日志回收导致的备库同步的断流风险。

图片

(一)Auto DOP(自动选择请求执行并行度)

并行度(DOP:Degree of Parallel)用于描述请求执行时可以使用的并行资源量,是决定并行执行速度的关键参数。之前的版本需要用户在请求、Session 或表格维度指定并行度,虽然可以根据业务需求精确指定,但是却比较繁琐。为了解决手动指定并行度的不便和限制,新版本查询优化器可以在生成查询计划时评估查询需要执行的时间,自动确定是否开启并行和开启适量的并行度。这样可以避免由于手动指定并行度而导致的性能下降。

(二)外表

外表功能可以访问数据库外部的文件,直接映射成数据库内的表格进行访问并读取文件中的数据。相比较于把外部数据导入数据库后再进行分析处理,外部表直接读取外部数据文件,既方便又快速。在新版本中,OceanBase 支持文件系统的文件或 OSS 上的对象作为外表的源,支持以 CSV 格式解析外表数据。

图片

OceanBase 4.2.1 LTS 是过去的 2 年半时间,与数百位用户一起认真打磨的关键里程碑版本,得益于大量用户真实场景的使用反馈,为关键业务负载打造的一体化数据库,希望与每一个客户携手同行,共同攻坚关键业务负载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/199851.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机和FreeRTOS上跑机器人ROS的应用

机器人的应用越来越广泛了&#xff0c;大家熟知的稚晖君直接创业搞机器人&#xff0c;可想而至&#xff0c;接下来的十年&#xff0c;机器人绝对是热门的行业。 目前市面上很多机器人都是基于一套叫做ROS的系统开发的&#xff0c;今天就给大家分享一个跑在MCU上&#xff0c;基…

VScode调试没有反应

点击调试按钮后没反应 有可能是vscode中安装的python插件版本问题 可以通过重新安装比较旧一点的python尝试解决此问题 步骤如下&#xff1a; 然后从中选择比当前版本更低的版本即可 安装完成后需重启vscode

《研发效能 100 问》首发,多位专家解读「研效提升」的破局之道?

为了可以帮助更多研发管理者和研发效能负责人&#xff0c;了解构建研发效能体系应从何做起&#xff0c;以及在构建过程中需要解决哪些疑难问题&#xff0c;有哪些最佳实践可以借鉴。2023 年 7 月&#xff0c;思码逸发起&#xff0c;由行业知名研发效能专家张乐老师担任出品人&a…

MFC项目添加CUDA支持

文章目录 前言一、开启项目CUDA支持二、链接CUDA库三、链接cu文件 前言 我目前的项目状况是&#xff1a; 拥有一个MFC项目&#xff1b;拥有现成的 .cuh文件 和 .cu文件。 我想做的是&#xff1a;将.cuh和.cu文件放到我的项目中&#xff0c;并且编译成功跑起来 一、开启项目C…

Redis高可用之持久化

Redis的高可用 在集群当中有一个非常重要的指标&#xff0c;提供正常服务的时间的百分比(365),99.9%后面的小数点越多说明越可靠。Redis 的高可用含义更加宽泛&#xff0c;正常服务是指标之一&#xff0c;数据容量的扩展&#xff0c;数据的安全性。 redis中高可用技术种类 1…

硬件驱动为什么要有WHQL数字签名

硬件驱动要有WHQL数字签名才能实现正常安装、启动、运行&#xff0c;并实现驱动静默安装。 目前的桌面操作系统中&#xff0c;Windows系统市场占有率处于优势&#xff0c;Windows 的各个版本的系统加起来几乎占领了大部分市场。所以很多工业和行业的硬件设备都要考虑兼容在Win…

开发仿抖音APP遇到的问题和解决方案

uni-app如何引入阿里矢量库图标/uniapp 中引入 iconfont 文件报错文件查找失败 uni-app如何引入阿里矢量库图标 - 知乎 uniapp 中引入 iconfont 文件报错文件查找失败&#xff1a;‘./iconfont.woff?t1673007495384‘ at App.vue:6_宝马金鞍901的博客-CSDN博客 将课件中的cs…

C#的类型转换

目录 一、简介二、基本类型转换1.整数类型转换1.隐式转换2.显式转换 2.浮点类型转换1.隐式转换2.显式转换 3.字符类型转换1.字符到整数的转换2.整数到字符的转换 4.布尔类型转换1.布尔到整数的转换2.整数到布尔的转换 三、隐式转换和显式转换四、装箱和拆箱五、自定义类型转换六…

IIC通信

通信协议简述 三条线&#xff1a;串行数据线(SDA)、串行时钟线(SCL)&#xff0c;地线&#xff1b; 半双工 一问一答 &#xff0c;主从模式&#xff0c;多设备模式总线协议&#xff1a;支持多个设备进行通信&#xff08;多主多从&#xff09; 异步模式&#xff08;串口&#xf…

起立科技(起鸿)在第25届高交会上展示透明OLED技术创新

第二十五届中国国际高新技术成果交易会 日期&#xff1a;2023年11月15日 地点&#xff1a;福田会展中心7号馆 深圳&#xff0c;2023年11月15日 — 起鸿科技&#xff0c;作为透明OLED领域的引领者&#xff0c;于今日参展了第二十五届中国国际高新技术成果交易会。这一展会将汇…

7 Redis的PipeLine

PipeLine的作用是批量执行命令 redis的性能瓶颈基本上是网络 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.…

数据结构~~~~ [队列] ~~~~

文章目录 队列队列的概念与结构队列的接口实现***队列的初始化******队列的销毁******队列的插入与创建节点******队列的删除******队列的队头数据******队列的队尾数据******队列的判空*** 队列 队列的概念与结构 队列的插入数据在队尾出数据在队头&#xff08;尾入头出&…

女人感染阴虱什么感觉?皮肤性病科主任谭巍全面解读

阴虱是一种常见的性传播疾病&#xff0c;通常由寄生虫引起&#xff0c;这些虱子寄生在阴部和肛门周围的毛发中。当女性感染阴虱后&#xff0c;可能会经历一系列的身体感觉和症状。 首先&#xff0c;感染阴虱的女性可能会感到阴部和肛门周围的皮肤瘙痒和不适。这种瘙痒可能会持…

MatrixOne完成与麒麟信安、欧拉的兼容互认

近日&#xff0c;超融合异构云原生数据库MatrixOne企业版软件V1.0完成了与欧拉开源操作系统&#xff08;openEuler简称“欧拉”&#xff09;、麒麟信安操作系统系列产品和虚拟化平台的相互兼容认证&#xff0c;通过了欧拉兼容性测评&#xff0c;获得了《openEuler技术测评证书》…

Python机器学习、深度学习提升气象、海洋、水文领域实践应用

Python是功能强大、免费、开源&#xff0c;实现面向对象的编程语言&#xff0c;能够在不同操作系统和平台使用&#xff0c;简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库&#xff0c;还有丰富的第三方库&#xff0c;Python在数据处理、科学计算、数学建模、数据挖…

深度学习之自监督模型汇总

1.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding paper:https://arxiv.org/pdf/1810.04805v2.pdf code:GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT Abstract&#xff1a;我们引入了一种名为 BE…

如何在虚拟机的Ubuntu22.04中设置静态IP地址

为了让Linux系统的IP地址在重新启动电脑之后IP地址不进行变更&#xff0c;所以将其IP地址设置为静态IP地址。 查看虚拟机中虚拟网络编辑器获取当前的子网IP端 修改文件/etc/netplan/00-installer-config.yaml文件&#xff0c;打开你会看到以下内容 # This is the network conf…

ACREL DC energy meter Application in Indonesia

安科瑞 华楠 Abstract: This article introduces the application of Acrel DC meters in base station in Indonesia.The device is measuring current,voltage and energy together with hall current sensor. 1.Project Overview This company is located in Indonesia a…

基于模拟退火算法优化概率神经网络PNN的分类预测 - 附代码

基于模拟退火算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于模拟退火算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于模拟退火优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

城市交通领域的新趋势:地铁列车可视化

随着城市化进程的不断加速&#xff0c;地铁作为一种便捷、快速的城市交通方式&#xff0c;受到了越来越多人的青睐。地铁列车可视化&#xff0c;作为地铁运营管理中的一项重要工作&#xff0c;不仅可以提高列车运行效率和安全性&#xff0c;还可以为乘客提供更加舒适、便捷的乘…