我与 OceanBase 的缘分,从测试新版本开始

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 本文作者:张霁某股份制商业银行应用架构师,从事金融类应用研发和数据库选型等工作多年,熟练使用 OceanBase 等分布式数据库、MySQL 等集中式数据库,并已获得 OceanBase 认证的 OBCA、Oracle 认证的 OCP 等证书。

 

自 3 月 15 日居家隔离以来,我已经两个多月没怎么出过门了。跟所有在上海的“打工人”一样,我每天都在期盼上海解封!

老实说,虽然被疫情所困,但除了不能外出,我的生活其实并没有受到太大影响。工作还是照常进行,一日三餐还是能够保障。相对于居住在浦东、徐汇这些地方的朋友而言,我已经非常幸福。而且,因为居家办公,每天节省了大量的通勤时间,这就让我有更多的空余时间去技术社区给自己“充电”。而 OceanBase ,是我最常逛的社区之一——每天工作闲暇时,我都会去 OceanBase 社区签到,找几个有意思的问题回复,顺便看看问题涉及到的官方文档。

更多人知道 OceanBase,可能是去年 6 月 1 日开源的社区版。但我早在 2018 年就已经知道 OceanBase ——我的几个甲方单位因为看到 OceanBase 企业版在天猫双十一的精彩表现,很早就选型了 OceanBase 企业版。

当然,那个时候我对 OceanBase 还只是有所了解,并且,那也还是 OceanBase 企业版。真正认识 OceanBase ——更准确地说,应该是 OceanBase 社区版,是在 2021 年。一次机缘巧合,就让我走进了 OceanBase 的世界。

image.png

2021 年的 9 月份,网上冲浪的我,无意中了解到, OceanBase 将在上海长城大厦举办线下 Meetup 活动。官方活动嘉宾基本都是 OceanBase 的技术专家团,包括纪君祥老师、王运来老师、 架构师梅庆、DBA 专家徐力佳。单从活动的人员配置来看, OceanBase 可以说是诚意十足。


因为在上海,又赶上周末,得天时地利之势的我,决定去现场感受一次 OceanBase !


Meetup 活动当天,第一位发言的是纪君祥老师。纪老师非常正式地给大家介绍了 OceanBase 。这样的介绍,对很多还不是很熟悉 OceanBase 的用户来说,非常友好:你可以从介绍中了解 OceanBase 的基本功能,了解 OceanBase 周边工具支持程度,了解 CDC 工具,了解 OceanBase 的版本发布节奏......


但对我来说,王运来老师《 MiniOB——帮你从底层深入了解数据库的实现》、以及徐力佳老师《蚂蚁 NoSQL 业务迁移到 OceanBase 实践》的演讲更有吸引力。王老师深入浅出,分析 OceanBase 的底层逻辑,徐老师巨细无遗,讲解 OceanBase 业务迁移,这些是我想要学习的。


OceanBase 上海站的 Meetup 之旅,我收获颇丰:除了更深入地了解 OceanBase ,认识几位热爱 OceanBase 的朋友,我还了解到, OceanBase 会在 10 月 18 日(2021 年)云栖大会发布 OceanBase 3.1.1 社区版 。作为一名开发工程师,我很想知道,相比较 MySQL、TiDB、Oracle, OceanBase 社区版会有哪些惊喜。

image.png

云栖大会上,OceanBase 3.1.1 社区版如约而至。


官方透露,此版本包含五大核心特性:全面提升内核兼容、完善生态工具、更多开放接口、支持物理备份与恢复、强化开源 OS 支持和易用性,持续增强开源产品化应用能力。


值得一提的是,在提升内核兼容这一块,OceanBase3.1.1 开源版适配支持 MySQL 5.7 驱动协议,新增 MySQL 8.0 的通用表表达式,支持租户/用户最大连接数设置,全面加强 MySQL 兼容,对企业选型非常友好。


看着新版本,我迫不及待想体验一把。当然,迫不及待想体验的不只是我,还有我的一群同事:因为单位将要选型, OceanBase 是首选对象,所以我们要提前感受 OceanBase 。当然,单位选型主要考虑企业版。我们体验社区版,主要是想看看社区版跟企业版有哪些区别。


说干就干!利用单位的机器安装完 OceanBase 3.1.1 社区版之后,我们开始测试。测试的结果就是:OceanBase 宣传的高可用和易用性,名副其实;OceanBase 宣传的生态,果然强大。

640 (10).png

但 OceanBase 还不是那么完美,我们在测试中发现了不少小问题,例如配置低的个人电脑无法安装、DDL 并发导致同步链路中断等问题。这些问题看似不大,但很影响用户体验。尤其是安装的高门槛,会让很多个人用户“望洋兴叹”。


发现问题,我们第一时间就去联系 OceanBase 社区版技术人员。几经周折,我们最终才在 OceanBase 企业版工作人员的牵线搭桥下,联系上社区负责 CDC 模块的研发老师。


听到我们的反馈,CDC 研发老师非常重视,他们马上一对一对我们进行指导。社区版的老师们既敬业又专业,后面两个问题很快就被彻底解决。但关于安装吃资源的问题,暂时还无法解决。


OceanBase 刚刚起步,有一些小问题在所难免。但是,按照他们解决问题的速度,我们有理由相信,他们一定能把 OceanBase 做大、做强。

image.png

继 OceanBase 3.1.1 社区版之后,今年的 1 月 6 日, OceanBase 发布了 3.1.2 版本。短短 7 个月,这已经是 OceanBase 发布的第三个版本!


据 CTO 杨传辉介绍,新版本包括三大核心技术升级:


第一,秒杀性能提升300%。

第二,生态适配全面加速,支持 Hbase 对接能力。

第三,推出全新社区版工具体系(社区版 OCP、社区版 ODC、社区版 OMS),提供白屏化集群管理、租户管控、开发调试、数据同步、导入导出等完整功能,协助社区用户快速上手。

640 (11).png

新的版本,新的期待!这一次,没有同事的参与,我决定自己来测试 3.1.2 版本的性能。


我找来单位的 7 台物理机,使用 OBD 直接部署为 2:2:2 架构的 OceanBase 3.1.2 集群。OLTP 测试场景,测试工具使用的是开源版本 BenchmarkSQL5.0。然后就是优化参数,关闭 SELinux,关闭防火墙,chrony 服务检查,安装 chrony 服务,安装 Benchmark SQL,配置安装用户,格式化分区......详细过程可以参考我的这篇文章《OceanBase 社区版 3.1.2 压测性能测试报告》


测试结果:


1. 2000 仓,200 并发

640 (12).png

2. 2000 仓,400 并发

640 (13).png

3. 2000 仓,600 并发

640 (14).png

4. 2000 仓,800 并发

640 (16).png

单从测试结果来看,新版本确实比之前好了不少,官方所言非虚。但并不是说这个版本就很完美,因为在测试中,我还是发现了一些小 bug:


  • sys 租户修改系统参数,OBD 重启 OceanBase 集群后,参数不生效;
  • 通过 sys 租户修改了server_cpu_quota_max 参数,然后使用 OBD 重启生效。再重启后,又变回 16C;
  • 经过测试发现社区版 OceanBase 不支持对二级分区的添加和删除 ,但官方文档显示支持。


实际上,没有完美的数据库,只有不断更新、与时俱进的数据库。Oracle 是这样,MySQL 亦是如此, OceanBase 自然也不能例外。发现问题,解决问题,才能做到更好,才有机会成为行业翘楚。

image.png

从开源到 3.1.2, OceanBase 社区版在不断的更新,而我也在不停的成长。


在体验 OceanBase 的过程中,像手动部署 OceanBase 3.1.2集群、迁移 MySQL 数据库到 OceanBase 、使用 ODB 部署一个三副本 OceanBase 集群,我都会记录成文档,因为这样的文档,会有用户需要它;在学习时遇到问题,我会在 OceanBase 社区的问答板块进行求助,因为这里很活跃,一般问题都能很快得到解决......当然,很多时候,我也在 OceanBase 社区帮助别人解决问题,也会去参加 OceanBase 社区直播......


就这样,频繁出现在 OceanBase 社区的我,逐渐有了小小的知名度。


4 月的一天,OceanBase 社区运营人员找到我,她们说:经过对当月社区贡献度的测评,我因为贡献度最高被评为“月度之星”。哈哈,官方的肯定,对我来说,是一种莫大的鼓励。


老婆看我荣获“月度之星”有点眼馋:做技术的真好,有这么好的社区平台能让你们深度学习。只是学习也就算了,你们还能答题拿奖品!有点过分了......


我老婆是一名医护工作者,她们学习的途径要么进修,要么临床。很少有像技术社区这样的医生社区,能让她们一起学习,共同进步。所以,对于技术的社区,她也只能是羡慕。


老婆调侃我:作为“月度之星”,你有什么感受?


感受嘛?还真有!那就是在 OceanBase 社区这么长的时间里,我发现 OceanBase 社区版的官方文档真心不错!从基础概念、到操作上手,文档介绍得非常详细。对我来说,它既是 OBCP 考试的学习资料,也是我学习 OceanBase 的主要途径。我强烈建议新手一定要好好学习,这个文档能帮助“小白”用户解决很多问题。至于其它的感受,那当然是开心啦。


据悉, OceanBase 又要发布新版本了!我已经准备好了。

image.png4 月 18 日, OceanBase 社区发起了文档捉虫活动。活动一发布,我就报了名。


本想大显身手的我,却因为项目赶工,工作非常忙。再加上,这个月我家添了一名新成员:哈哈,我的闺女,出生啦!所以,一边忙着工作,一边忙着带娃,我是忙得不可开交。


在这里,我想吐槽一下,虽然初为人父甚是喜悦,但带娃是真的累,比工作累多了!工作基本上都是在白天,晚上你就可以休息。带娃可不是,带娃是全天候 24 小时待命。娃只要一哭,你就要起床,不管她是饿了、尿了、拉了,还是咋了,只要她哭,你就得起来,不分昼夜。这一阵,我这闺女可把我跟我老婆折腾得够呛!累归累,但只要看到她那粉嫩嫩的小脸,我是非常幸福的!那种幸福是始于新生命的诞生,始于对生命的敬畏,始于你能真真切切感受到血脉的延续。所以,你所有的辛苦都是值得的,你愿意为她付出你所有的一切。


虽然忙碌着,但我还是没有忘记捉虫活动。眼瞅着活动马上就要结束,我知道不能再拖了。终于,5 月 17 日,下班后我就开始捉虫。大概从下午 5:00 开始,一直捉到夜里两点。我是越捉越兴奋,越捉越精神。但迫于第二天要上班,我不得不停止。


5 月 18 日,也就是捉虫活动结束的最后一天,没睡几个小时的我,匆匆忙完手头紧要的工作,就继续捉虫。最后,赶在截止时间点,我提交了最后一个 pr 。这两天的忙碌,我一共提交了 90 多个 pr。


捉虫活动结果公布,我拿到了第二名,获得 3970 的积分!哈哈,这个结果虽然是意料之外,但也是情理之中。因为虽然我是在最后两天才“补”的作业,但我花在捉虫的时间,总共也有 20 个小时,差不多是完整的两个工作日。


不过,我想奉劝一下各位朋友,千万别学我熬夜捉虫。因为熬夜真的累人!


新的捉虫活动又开始了,但这次,我不能再打“突击战”了,我要好好准备,冲击更高的名次!


image.png近几年,在国家大力支持自主研发核心技术政策的支持下,国产数据厂商库百花齐放、百家争鸣,这就给国内企业选型带来了更多的选择。


虽然国产数据库在某些性能方面已经超过了国外的数据库,但数据库想要涌立世界潮头,仍然任重道远。希望所有国产数据的研发者们,不忘初心,砥砺前行。


最后,衷心祝愿国产数据库越来越强大,致敬每一位为国产数据库发展而奋斗的工程师。


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
1月前
|
安全 Linux 虚拟化
|
2月前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
127 1
|
2月前
|
机器学习/深度学习 算法 PyTorch
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-7.0版本进行目标检测的完整流程,包括算法介绍、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。YOLOv5以其高精度、快速度和模型小尺寸在计算机视觉领域受到广泛应用。
961 0
目标检测实战(五): 使用YOLOv5-7.0版本对图像进行目标检测完整版(从自定义数据集到测试验证的完整流程)
|
5月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
5月前
|
关系型数据库 MySQL 测试技术
数据库升级是一个涉及数据备份、新版本安装、数据迁移和测试等关键环节的复杂过程
【7月更文挑战第21天】数据库升级是一个涉及数据备份、新版本安装、数据迁移和测试等关键环节的复杂过程
146 1
|
4月前
|
运维 监控 数据库
在OceanBase数据库中,obd集群版本需在线升级4.3.1.0升级至4.3.2
【8月更文挑战第14天】在OceanBase数据库中,obd集群版本需在线升级4.3.1.0升级至4.3.2
92 0
|
6月前
|
Web App开发 IDE Java
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
自动化测试谷歌浏览器和其驱动版本差不多却还是报错The chromedriver version (121.0.6167.184) detected in PATH at DPythonchromed
141 2
|
6月前
|
Java 测试技术 数据库
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
【单文件版本】java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境
54 0
|
6月前
|
Java 测试技术 数据库
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】
90 0
下一篇
DataWorks