obdiag:一款OceanBase 数据库诊断的利器

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本次分享的主题是obdiag:一款 OceanBase 数据库诊断的利器,由蚂蚁集团 OceanBase 技术专家汤庆分享。主要分为四个部分:1. OceanBase 概述2. Obdiag 项目价值3. Obdiag 设计与实现4. Obdiag 未来规划

obdiag:一款OceanBase 数据库诊断的利器


内容介绍

1. OceanBase 概述

2. Obdiag 项目价值

3. Obdiag 设计与实现

4. Obdiag 未来规划

 

image.png

这个是一款 OceanBase 数据库诊断的瑞士军刀,本人是蚂蚁集团 Obdiag 的技术专家。接下来将会从四个方面介绍一下。

image.png

首先介绍一下 OceanBase 是什么东西,然后介绍 Obdiag 项目价值、 Obdiag 设计与实现,最后介绍 Obdiag 未来规划。

 

01. OceanBase 概述

image.png

先说一下 OceanBase 是什么东西。

image.png

OceanBase 我先说两个数据,一个是7.07亿,还有一个就是1526万。7.07亿是2020年5月26日 OceanBase 在事务型基准测试的 TBCC 中创下了新的世界纪录。1526万是2021年5月19日 OceanBase 在分析型基准测试 TBCH 中创下了新的世界纪录。 OceanBase 是全球唯一在事务处理和数据分析两个领域测试中都获得过世界第一的中国自研数据库。

image.png

再给大家看一组数据,一个是6100万次,这个是数据库峰值的处理能力,在实际生产系统中产生的。还有一个是单级单集群的节点数量大于一千台,实际更精准的数据应该是1500+ 台的机器。单库的存储容量大于六PB,单表的行数是3200亿行,少数派出现故障的时候 RPO =0, RTO<8s。

image.png

再说一下整个 OceanBase 的发展发展历程。它在2010年立项,当时用于淘宝收藏夹,后来陆续在淘宝天猫上线。2014年在支付宝的核心系统上线。在2016年的时候在借呗花呗整个支付宝的核心系统权限上 OB 。2017年的时候在对外扩展,主要是一些银行类的业务。2019年的时候,券商银行类大大范围的拓展。2020年的时候独立商业化进行运作,包括中国移动、中国工商银行这些企业都开始用 OB 。2021年6月1日作为一个开源的项目做进行开源,同时外部的一些客户也不再局限于一些银行类的业务。2022年公有云走向海外,包括专有于、华为云现在也可以去部署 OB 。

image.png

这个图其实是4.0的一个架构,也就是自研一体化分布式架构。这里边说一个词就是单机分布式,比如说我们说 methyl ,其他的一些数据库可能是单机的或者是集群的模式,但是这里边 OceanBase 首创了一个单机一体化分布式架构,就是单机业务量很小的时候我可能用一个单机的数据库 OB 。来让我的业务慢慢扩展,扩展到一定程度之后,可能单机已经扛不住了,这个时候需要分布式的架构来支撑。 OB 这块可以从单机无缝切换到分布式模式的。这里边的租户模式其实是 OB 是支持 Oracle 和 Mac 两种模式的。开源社区这边开源了 methyl 模式。然后 HHT 的引擎4.0版本做了很多的优化的, SQL 引擎的优化、包括并行执行的能力、还有一些存储过程的优化。分布式一体化4.0版本也做很多的优化,包括事务存储、调度层面都做了很多的优化。数据同步的这种容灾架构我们提出了三地五中心、两地三中心。

image.png

接下来介绍 OceanBase 开源生态。核心能力有刚刚说的RPO =0, RTO<8s,企业级的一些稳定性、有一些容灾的能力,最快的单机分布式数据库。按用户案例这块只列举了其中一部分,因为像华润万家、中国恩菲这种是 OceanBase 跑在龙蜥操作系统之上的,包括下面的都是开源社区的案例。像快手这种百 TB 的海量数据全部跑在 OB 上面,携程、多点、贝壳这种也是很多核心的业务都跑在了 OB 看一下最右边这一块是2023年主要开放的生态周边的一些能力,像 express 是部署管控 OCD 的,是单节点的,也就是单集群 OCD 的。 OBD 是部署集群的。 ODC 这块是一个开发者工具, OBDD 是一键诊断的工具。包括前端的一些设计框架,整个 OceanBase ,一些相关周边的产品都陆续开放了。这些是2023年的 。然后从2021年6月1日开源到现在为止两年多的时间,已经有接近七千的伞。开发者共建这一块有260+的代码贡献者,包括1350+的 Issues,1200+ PR ,8200个 Commit 。像携程、快手、连联通的软银院、北京银行、爱可生都参与了代码贡献。

 

02. Obdiag 项目价值

image.png

说完这个 OceanBase 之后我再说一下 obdiag 的项目价值。大家都知道像这种分布式的数据库,排查问题是非常的痛苦的,因为它的日志,包括它的一些信息都是在各个节点上,你要去诊断这样的一个数据库,就必然面临着在各个节点上去捞取一些关键的信息。然后日志量越大,这样的话就对排查问题非常的不利。这个就是 Obdiag 当时立项的一个初衷。为了使这样 Obdiag 数据和庞大的系统能够更快捷地去做一些诊断。

image.png

诊断痛点有几个方面的因素,比如说环境问题,可能操作系统磁盘、CPU 内存、网络配置、都可能存在一些不合理的地方,设置的不合理都可能会造成这个问题。 Circle 类的问题可能是用户侧使用的不规范或者是没有加索引、Where条件里边未知设计的不合理或者是有一些慢 Circle 、一些异常 Circle 导致打包 CPU 这种问题。那这种问题到底应该怎么去排查?其实对于像 MacBook 还有其他数据库来说,排查也是非常困难的。像 OB 这种分布式数据库的开发会更加的困难一点。

image.png

这里介绍了它的作用。左边这块是我们有工具之前它的排查问题的一个交互过程,因为我们有自己的社区,有自己的论坛,然后用户去我们的论坛里边去提交他们遇到问题的一些场景,比如说他们遇到问题了然后把一些信息给上传,这样的话交互起来其实挺麻烦的。要上传他的日志,上传他的信息,然后每次交互的这个过程会非常的耗费时间。如果是在生产系统上面,这种排查链路这么长的话,肯定会造成很严重的影响。所以为了简化这个过程,就推出了这样的一款工具,这个工具首先会帮你一键收集一些信息,它还可以根据收集到的信息做一些自主分析,得出一些问题的原因,运维的操作,或者是一些规矩的方法,止血的一些操作。如果没有定位到原因的话,在拿到分析出来的一些情况,包括它的日志再一键上传,到论坛里边有专门的 SA 和专门的权限支持人员去对收集到的信息进行进一步的分析。我之所以叫 Obdiag 是一款瑞士军刀,是因为原来我们排查问题的时候,比如说技能问题,可能用一些 Top 之类的, OB 的一个工具,还有一些 Cat Group 看日志, B stack 这块是看一些精湛信息,包括一些火焰图,这些信息是通过多个工具来进行处理的。有了这个工具之后,一个 Obdiag 就把前面所有的能力全部集成到这个上面。

image.png

目前他的能力有一建收集 OceanBase 集群日志、 AWR 报告、主机信息、 OceanBase 堆栈信息、 Slog \ Clog 解析日志、并行 SQL 的算子详情,我们能够解析到基地成为度,在下端到算子维度到底是哪个机器的造成这条 Circle 比较慢,然后还可以去收集一些比如说性能维度的信息, Craft 剪切图,火焰图,还有的一些B站信息,去帮助我们分析函数级的问题。包括一键分析 OceanBase 日志。这样的话,他会从各个节点上捞取他故障时刻或者是故障前后二十分钟之内的一些日志。基于这些各个节点的日志来做一个全面的分析,告诉你在这二十分钟可能出现了什么问题,包括一键全链路诊断,诊断指的是一个 SQL 从 Client 端发起,经过 Proxy 这个路由层,再到我们的 OB server 节点,整个链路到底慢在什么地方,也可以通过一键全链路诊断来进行,然后包括一键巡检集群。巡检集群包含了对环境的巡检,对参数的巡检,对性能的巡检,对审计情况的一些巡检,还有一键诊断 SQL 。

image.png

这一部分主要介绍一下它的一个实现,因为作为一款敏捷诊断工具它其实更希望我们在社区用户或者是我们在正常用的时候,直接拿一个很快捷的工具使用就行,我不希望它有一个很笨重的东西存在。所以这里边设计的初衷就是一个敏捷版的诊断工具。然后它是一个很小也不也不需要在多个节点上部署,只需要在其中任何一个能访问到 Open Server 的那个节点上去就可以了。然后部署,它本身那个大小很小,现在打包出来大概是三十兆以下。然后配置好,配置完了之后可以用它做一件收集,比如说我要收集一下这个集群里边前二十分钟的,可以直接通过一条命令就可以收集各个节点上二十分钟以内的日志,还可以收集一些环境的信息,比如说我们的 Message 、CPU的信息、内存的信息,都可以通过一键诊断工具来进行一键收集。一键分析的话,目前是有两个能力的,就是一键分析日志,找出它可能发生过的一些错误以及根因分析。还有一个是 Trace Log 的日志分析,它主要是用于全联动诊断的,一键巡检主要是对操作系统层面、主机层面、集群维度的参数、包括集群的健康状况进行一些巡检。

image.png

设计实践其实主要大的方向是日志采集、全链路诊断、机器巡检还有日志分析。目前所有那些设计是基于规则模型的一个诊断报告,它能够通过分散的信息给聚拢起来,然后按照一定的规则来产生我们的诊断报告。包括我们刚刚提到的一些系统参数,环境参数火焰图、堆栈信息以及自由意志这块的东西,还有 SQL 一些维度的诊断。

  image.png

左边是命令行的方式举例,安装的时候比较简单直接,通过样品源直接安装就可以了。安装完之后 Souse 一下就可以了,后面做一个配置,它有一个配置文件,配置完之后就可以执行我们一键收集、一键分析、一件巡检。这块是他一部分的结果,就是全链路诊断出来的一个结果。从 OB proxy 这一块路由层进来,然后一直到 Observer 下边,然后在每一个不同的 Observer 上面执行了哪一个具体的 Spec ,看到他耗时多少。这样就能分析出来到底是哪个节点耗时比较长。

 

03. Obdiag 未来规划 

image.png

再说一下 Obdiag 的未来规划。

image.png

红色部分目前是已经都实现了,包括一键收集信息,一件分析,前面诊断已经是完全 OK 的。这两个部分就是后面要做的事情就是基于场景的一些根据分析,比如说 SQL 打包 CPU 、内存、还有一些其他的场景。还有 SQL 诊断这一块的融合分析,可以支持类似于这种慢 SQL 问题定位,还有一些比如说 SQL 6这些能力,后面可能还会加入 AI 的能力去做根据分析的场景。

image.png

这块是几个二维码。左边是 OB 的 GitHub 的地址,中间是微信的一个新号,右边是 obdiag github 地址。这些代码都是完全开源的。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
打赏
0
14
14
0
1007
分享
相关文章
OceanBase 入门:分布式数据库的基础概念
【8月更文第31天】在当今的大数据时代,随着业务规模的不断扩大,传统的单机数据库已经难以满足高并发、大数据量的应用需求。分布式数据库应运而生,成为解决这一问题的有效方案之一。本文将介绍一款由阿里巴巴集团自主研发的分布式数据库——OceanBase,并通过一些基础概念和实际代码示例来帮助读者理解其工作原理。
536 0
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
367 1
OceanBase CTO杨传辉谈AI时代下数据库技术的创新演进路径!
在「DATA+AI」见解论坛上,OceanBase CTO杨传辉先生分享了AI与数据库技术融合的最新进展。他探讨了AI如何助力数据库技术演进,并介绍了OceanBase一体化数据库的创新。OceanBase通过单机分布式一体化架构,实现了从小规模到大规模的无缝扩展,具备高可用性和高效的数据处理能力。此外,OceanBase还实现了交易处理、分析和AI的一体化,大幅提升了系统的灵活性和性能。杨传辉强调,OceanBase的目标是成为一套能满足80%工作负载需求的系统,推动AI技术在各行各业的广泛应用。关注我们,深入了解AI与大数据的未来!
OceanBase CTO杨传辉谈AI时代下数据库技术的创新演进路径!
OceanBase 与传统数据库的对比
【8月更文第31天】随着云计算和大数据技术的发展,分布式数据库因其高扩展性、高可用性和高性能而逐渐成为企业和开发者关注的焦点。在众多分布式数据库解决方案中,OceanBase作为一个由阿里巴巴集团自主研发的分布式数据库系统,以其独特的架构设计和卓越的性能表现脱颖而出。本文将深入探讨OceanBase与其他常见关系型数据库管理系统(如MySQL、Oracle)之间的关键差异,并通过具体的代码示例来展示这些差异。
532 1
揭秘Polardb与OceanBase:从OLTP到OLAP,你的业务选对数据库了吗?热点技术对比,激发你的选择好奇心!
【8月更文挑战第22天】在数据库领域,阿里巴巴的Polardb与OceanBase各具特色。Polardb采用共享存储架构,分离计算与存储,适配高并发OLTP场景,如电商交易;OceanBase利用灵活的分布式架构,优化数据分布与处理,擅长OLAP分析及大规模数据管理。选择时需考量业务特性——Polardb适合事务密集型应用,而OceanBase则为数据分析提供强大支持。
1718 2
DataWorks操作报错合集之如何处理在DI节点同步到OceanBase数据库时,出现SQLException: Not supported feature or function
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
105 0
实时计算 Flink版产品使用合集之支持将数据写入 OceanBase 数据库吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
172 5
OceanBase数据库的发展历程是什么?
【8月更文挑战第11天】OceanBase数据库的发展历程是什么?
210 63
OceanBase数据库简介
【8月更文挑战第9天】OceanBase数据库简介
493 60
|
5月前
|
OceanBase数据库的分区策略
【8月更文挑战第13天】OceanBase数据库的分区策略
332 5

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等