自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1054)
  • 收藏
  • 关注

翻译 MySQL 8.4.3 和 9.1.0:显著提升性能!

MySQL 8.4.3 和 9.1.0 中的性能改进代表着向前迈出的重要一步。这些版本展示了 MySQL 开发团队在解决社区问题方面的积极参与,包括最初由 Percona 贡献的有价值的错误报告和修复。虽然仍有进一步优化的空间以达到早期版本的峰值性能,但我们对未来的版本持乐观态度,并期待在 MySQL 社区的共同努力下不断取得进步。

2025-01-13 14:20:19 204

原创 当测试工具开始「思考」,是工具还是「同事」?

当测试工具突然会自己“动脑子”了,它究竟是冷冰的“代码容器”,还是能并肩作战的智能伙伴?

2025-04-03 10:17:09 683

原创 ChatDBA VS DeepSeek:快速诊断 OceanBase 集群新租户数据同步异常

通过 ChatDBA 快速诊断 OceanBase 集群故障,并且对比 DeepSeek 能力。

2025-03-26 15:24:36 718

原创 gh-ost 扩展 MySQL 字段失败?看看 ChatDBA 和 DeepSeek 都怎么说?

社区王牌专栏《一问一实验:AI 版》改版以来已发布多期(51-60),展现了在多种场景下解决问题的效果。下面让我们正式进入《一问一实验:AI 版》的第 61 期,看看 ChatDBA 最新效果以及与热门大模型 DeepSeek 的对比效果。

2025-02-10 16:21:45 639

翻译 新闻 | MySQL 9.2.0 有哪些功能新增、弃用和删除?

2025 年 1 月 21 日,MySQL 9.2.0 版本正式发布!作者:MySQL 官方文档本文约 800 字,预计阅读需要 3 分钟。根据 MySQL 版本发布计划,MySQL 9.2.0 是一个创新版,那么我们来看一下有哪些功能新增,弃用和删除。

2025-02-07 17:37:47 142

原创 OceanBase 备份清理任务卡死之谜

正常情况下,会有一个 OceanBase 备份文件清理任务定期执行。备份文件超过了预设数量,猜测可能是文件清理任务出现问题。作者:何文超,爱可生南区交付服务部 DBA 团队成员。主要负责 MySQL 故障处理,MySQL 高可用架构改造,OceanBase 相关技术支持。爱好足球,羽毛球。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 1500 字,预计阅读需要 5 分钟。

2025-02-07 17:31:35 661

原创 七步定位 OceanBase 登录报错

本文将为大家总结 OceanBase 集群登录时常见报错“Access denied”的排查步骤。作者:何文超,爱可生南区交付服务部 DBA 团队成员。主要负责 MySQL 故障处理,MySQL 高可用架构改造,OceanBase 相关技术支持。爱好足球,羽毛球。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 600 字,预计阅读需要 3 分钟。

2025-01-13 15:40:23 760

原创 EXPLAIN TYPE 列的 JOIN 常见场景详解(上)

专栏连载至此,相信读者们已经对一条 SQL 的优化步骤、执行计划等有了一个大概的了解。那接下来我们对 MySQL 的执行计划输出进行详细解释,以便大家对其了解的更加深入。作者:杨涛涛,爱可生技术专家。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。我们这个标题为什么叫做EXPLAIN TYPE 列的JOIN 常见场景详解呢?从MySQL 优化器的角度来看,所有SQL都是JOIN查询(单表检索可以看成过滤字段和主键做JOIN的特殊类型)。

2025-01-06 14:10:51 904

原创 MySQL 分配 Undo 段

获得回滚段的互斥量。从缓存链表()的头部获取一个 Undo 段。如果获取到了,从缓存链表中移除 Undo 段。如果没有获取到,创建新的 Undo 段。Undo 段插入到回滚段的或者链表头部。释放回滚段的互斥量。

2025-01-06 13:43:41 698

原创 Undo 表空间分配回滚段

用户临时表的 Undo 表空间只有一个,默认位于 ibtmp1 文件中。分配回滚段时,从第二个回滚段开始,依次分配,分配到最后一个回滚段之后,后面就从一个回滚段开始,循环往复。用户普通表的 Undo 表空间有多个。分配回滚段时,依次分配每个 Undo 表空间中的 0 号回滚段,然后依次分配每个 Undo 表空间中的 1 号回滚段。依此类推,分配完所有 Undo 表空间的最后一个回滚段之后,重复前面的过程。

2025-01-06 13:36:43 1040

原创 MySQL 如何插入记录的 Undo 日志?

Undo 模块的第二篇,聊聊插入记录产生的 Undo 日志格式。作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。

2025-01-06 13:22:52 1043

原创 一文搞定 OceanBase 各级别数据量统计

OceanBase 是一个多租户的分布式数据库,统计数据量时需要考虑一台服务器上可能会有多个租户,每个租户会有多个副本。此外 OceanBase 中磁盘上的数据文件是预分配的,当我们统计数据量大小时,得找出真实数据占用的大小。本文将总结在 OceanBase 中统计数据量大小的技巧,旨在扫清这方面的迷雾。

2024-12-19 17:22:56 971

原创 ChatDBA 如何解决 OceanBase 4013 错误?

内存限制:如 OceanBase 为每个租户设置了内存限制,超出限制时会出现内存不足错误。数据库配置不当:内存相关参数设置过低(如或查询或操作占用过多内存:复杂查询、大批量插入或更新可能消耗大量内存。连接数过多:过多的并发连接或连接泄漏导致内存耗尽。内存泄漏:数据库或应用程序存在内存泄漏问题。系统资源限制:操作系统对进程的内存限制或物理内存不足。数据量过大:数据库数据量增长未及时优化,导致内存需求激增。磁盘 I/O 问题:磁盘性能瓶颈可能影响内存释放和使用。内存碎片。

2024-12-19 17:19:02 1150

原创 EXPLAIN:解说一条简单 SQL 语句的执行计划

在MySQL里,当通过各种手段抓取到影响系统性能的慢SQL语句后,此刻想知道这条SQL语句为何会慢的答案。作者:杨涛涛,爱可生技术专家。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。在MySQL里,当通过各种手段抓取到影响系统性能的慢SQL语句后,此刻想知道这条SQL语句为何会慢的答案。通过以上三种方式审阅后,是否需要反馈给业务方来修改SQL语句的逻辑或者说是变更SQL 语句涉及到的表结构。

2024-12-12 13:11:53 813

原创 学习 MySQL 必须了解的几个 Undo 概念

Undo 表空间管理回滚段、回滚段管理 Undo 段、Undo 段管理 Undo 页、Undo 页管理 Undo 日志。InnoDB 支持 2 ~ 127 个表 Undo 表空间,每个 Undo 表空间支持 128 个回滚段,总共支持 256 ~ 16256 个回滚段。每个回滚段管理 1024 个 Undo 段,总共支持 262144 ~ 16646144 个 Undo 段。只考虑 Undo 段的数量限制,127 个 Undo 表空间最多、最少支持同时执行多少个读写事务?

2024-12-11 16:21:00 788

原创 MySQL insert on duplicate 加锁分析(1)

insert on duplicate key update 语句,新插入记录和主键索引中已有记录冲突,可重复读和读已提交两个隔离级别下,加锁流程和加锁结果相同。如果主键索引中和新插入记录冲突的那条记录已经被标记删除了,但是执行标记删除操作的事务还没有提交,加锁情况会有什么变化?欢迎评论区留言交流。

2024-12-10 14:27:31 982

原创 MySQL insert on duplicate 加锁分析(3)

没有需要总结的内容了。有一个问题,可重复读隔离级别下,insert 语句对刚刚插入到主键索引中<id = 7>的记录加了排他间隙锁,为什么不是加排他 Next-Key 锁?换句话说,就是为什么只锁定这条记录前面的间隙,而不锁定这条记录本身。欢迎评论区留言交流~

2024-12-10 14:13:57 711

原创 MySQL insert on duplicate 加锁分析(2)

没有需要总结的内容了。

2024-12-10 14:10:25 875

原创 关于 OceanBase 4.2.x 新增副本随机拉取问题的解决方案

综上,OceanBase 4.2.1.4 版本在为租户新增副本时,拉取数据在选择数据源时存在随机性,可能发生“舍近求远”的问题。

2024-12-09 14:12:43 716

原创 MySQL 死锁案例分析(1)插入意向锁

没有其它事务在等待获得这条记录的锁,事务 1 想要往这条记录前面的间隙插入记录,不需要等待获得插入意向锁,可以直接插入记录。其它事务在等待获得这条记录的锁,事务 1 想要往这条记录前面的间隙插入记录,需要等待其它事务获得并释放锁之后,事务 1 才能获得插入意向锁,然后才能往这个间隙插入记录。

2024-12-02 14:25:59 654

原创 MySQL 非唯一索引范围查询加什么锁?

读已提交隔离级别下,我们看到的加锁情况,只是最终结果,不一定能完全代表加锁过程。

2024-12-02 14:09:22 1058

原创 MySQL 主键索引范围查询加什么锁?

可重复读隔离级别下,对某条记录加了锁,要等到事务提交或者回滚时才释放。读已提交隔离级别下,对某条记录加了锁,如果 server 层或者 InnoDB 发现记录不匹配 where 条件,会马上释放锁。

2024-12-02 14:07:47 1013

原创 MySQL 主从复制过滤新增库表过滤方案

需要对从库 SQL 线程指定 UNTIL SQL_AFTER_GTIDS 方式,将从库的事务回放追平到备份文件中记录的事务点,保持从库的回放 GTID 和备份中记录的一致,这样才能正常衔接。目的是为了避免在主库做新增库备份时,备份中记录的 GTID 在从库已经被应用过,导致备份还原时,数据重复。文档中只是演示了库级的复制过滤添加,表级别的操作方式基本相同,只是针对不同库下不同表,不能同时备份(如图所示,需要将原有的主从复制过滤的配置再新增几个库做同步,需要考虑一个效率最高的方式。

2024-12-02 14:01:54 1002

原创 Oracle 迁移到 OB_oracle4版本不兼容DDL语法

本文将总结 Oracle 迁移到 OB 4.x 过程中,那些还不兼容的 DDL 语法。作者:夏彬胜,爱可生 DBA 团队成员,熟悉 OceanBases,Oracle 等数据库。想到和得到,中间还有个做到爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 900 字,预计阅读需要 3 分钟。将 Oracle 数据迁移至 OceanBase(Oracle 模式)可以通过 OMS 或 DSG 等工具。

2024-11-19 15:53:15 1098

原创 ChatDBA | OceanBase NTP 时钟不同步的问题排查?

如果 NTP 服务无法启动,可能是因为配置文件中指定的 NTP 服务器地址不正确或无法访问。例如,如果 ntpdate 服务尝试使用的服务器不是 ntp.conf 文件中配置的 Server 地址,就会导致服务启动失败。如果 NTP 服务报告无法找到主机,可能是因为 DNS 解析问题。例如,日志中显示 Can't find host 0.kylin.pool.ntp.org: Name or service not known,这表明 NTP 尝试使用的服务器地址无法被解析。

2024-11-19 14:38:50 660

原创 MySQL 8.0 中多字段虚拟列引发的宕机

一个客户的数据库(MySQL 8.0.27)随机性的崩溃。通过错误日志我们可以看到是: 由一个 SELECT 查询导致的。表结构CREATE TABLE `t` (`id` int,

2024-11-07 17:05:12 781

原创 Oracle 迁移到 OB 过程中的函数改造案例

作者:杨敬博,爱可生 DBA 团队成员,一位会摄影、会铲屎、会打球、会骑车、生活可以自理的 DBA。审校及补充:胡呈清,官永强,程柳润。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 1300 字,预计阅读需要 4 分钟。

2024-11-07 16:57:37 962

原创 【建议收藏】数据库源码学习调试利器之 CGDB

是一个基于文本界面的GDB前端,主要用于在终端中提供更丰富的用户界面,CGDB 使用Curses 库创建了一个简单的功能界面,帮助用户更方便地使用 GDB,它在 GDB 的基础上增加了一些功能,使得调试过程更加直观和高效。CGDB 的运行依赖 GDB 环境,因此,在调试前必须先安装符合其版本要求的 GDB简单来说,CGDB 是 GDB 的一个前端工具,通过提供更丰富的界面来增强 GDB 的用户体验。如果更喜欢在增强型终端中操作,可以使用 CGDB 来代替 GDB。

2024-10-25 15:56:37 765

原创 问 MySQL 非唯一索引等值查询加什么锁?

没有需要总结的内容。

2024-10-25 15:52:00 950

原创 哪些情况下 MySQL 配置文件会被截断?

当最后一行为!includedir类型且没有newline,会自动截断最后一个字符,所以会报错,导致初始化失败。当最后一行为!include类型且没有newline,引用的文件名会被截断一个字符导致找不到该文件,但是不会引起初始化程序 aborted。能正常初始化完成。综上所述,推荐配置文件最后需要添加上newline,否则可能导致一些异常的情况。

2024-10-09 16:06:38 796

原创 MySQL 主键索引等值查询加什么锁?

可重复读、读已提交两种隔离级别下,对主键索引字段进行等值查询,虽然都对记录加了共享普通记录锁,但是它们的加锁逻辑是不一样的。这两种隔离级别下,对唯一索引进行等值查询,加锁情况是什么样的呢?欢迎大家在评论区留言交流。

2024-09-27 13:25:38 596

原创 查询 ps.data_locks 导致 MySQL hang 住

官方在 8.0.37 中修复了这个 bug,可升级到 8.0.37 解决。作者:胡呈清,爱可生 DBA 团队成员,擅长故障分析、性能优化,个人博客:[简书 | 轻松的鱼],欢迎讨论。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 1500 字,预计阅读需要 8 分钟。

2024-09-25 11:28:28 783

原创 紧急避坑 | MySQL 含有下划线的数据库名在特殊情况下导致权限丢失

在 MySQL 的授权操作中,通配符 "_" 和 "%" 用于匹配单个或多个字符的数据库对象名。然而,许多 DBA 在进行授权时可能忽视了这些通配符的特殊作用,导致数据库权限错配。这篇文章将讨论通配符误用所带来的潜在风险,并提供避免此类问题的解决方案。作者:芬达, 【芬达的数据库学习笔记】公众号作者,开源爱好者,擅长 MySQL、ansible。爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。本文约 3300 字,预计阅读需要 12 分钟。

2024-09-24 13:25:49 1286

原创 MySQL 在 RC 隔离级别插入记录,唯一索引冲突加什么锁?

没有需要总结的内容。

2024-09-18 16:33:25 1230

原创 问 MySQL 的 RR 隔离级别插入记录,唯一索引冲突加什么锁?

没有需要总结的内容。

2024-09-11 17:27:54 1147

原创 深入理解 MySQL 中的 SQL_MODE

SQL_MODE 是 MySQL 数据库中的一个系统变量,用于控制 MySQL 如何处理 SQL 语句和数据校验。它可以看作是一组约束和规范,确保数据的准确性、完整性和一致性。例如,可以控制如何处理无效日期、是否允许插入不完整的记录、是否区分大小写等。完成不同严格程度的数据校验,有效地保障数据准确性。保证大多数 SQL 符合标准的 SQL 语法,这样应用在不同数据库之间进行迁移时,则不需要对业务 SQL 进行较大的修改。在不同数据库之间进行数据迁移之前,通过设置 SQL_MODE。

2024-09-10 13:25:28 2187

原创 DBA 的 AI 助手 | MySQL 清理 undo log 居然用了 10 个小时?

在该问题中,通过排查发现 undo log 过了 10 个小时依然没有清理完,正常情况下不会出现该情况,而是由于参数 super_read_only 触发的 bug 导致的。可以通过调大参数,undo log 大小达到阈值前被 purge 掉,这样空间可以重用,很难达到阈值,所以不会触发 undo log truncate,所以也就不会触发 bug 导致问题。问题原文。

2024-09-09 16:27:32 1101

原创 MySQL 插入记录,主键索引冲突加什么锁?

没有需要总结的内容了。事务 247911 提交或者回滚之后,加锁情况是什么样的?为什么会这样?欢迎大家评论区留言交流。

2024-09-04 13:30:54 723

原创 回顾 Oracle 在 MySQL 8.0 中的管理工作

对于新兴技术而言,社区管理并不难。经过 29 年的发展,MySQL 已成为全球数百万用户最常使用和最信赖的开源数据库之一。管理如此规模的社区可能非常复杂。我们努力在稳定性和创新性之间找到平衡,为客户提供稳定且可预测的平台,并为技术用户创建新功能。Oracle 通过投资于工程、社区和市场对该技术的采用,持续提供对 MySQL 社区的管理和领导。作者:Frederic Descamps,EMEA 和亚太地区的 MySQL 社区经理。于 2016 年 5 月加入 MySQL 社区团队。

2024-09-02 16:36:20 731

原创 回顾 Oracle 在 MySQL 8.0 中的管理工作

对于新兴技术而言,社区管理并不难。经过 29 年的发展,MySQL 已成为全球数百万用户最常使用和最信赖的开源数据库之一。管理如此规模的社区可能非常复杂。我们努力在稳定性和创新性之间找到平衡,为客户提供稳定且可预测的平台,并为技术用户创建新功能。Oracle 通过投资于工程、社区和市场对该技术的采用,持续提供对 MySQL 社区的管理和领导。作者:Frederic Descamps,EMEA 和亚太地区的 MySQL 社区经理。于 2016 年 5 月加入 MySQL 社区团队。

2024-09-02 16:35:41 1092

ActionDB 产品技术白皮书

ActionDB是一款高性能的企业级分布式数据库产品,其底层基于OceanBase开源内核,并获得原厂授权和内核技术支持,充分发挥了爱可生多年在开源数据库领域的专业经验和技术优势。ActionDB不仅继承了OceanBase稳定可靠、高性能的优点,还增强了MySQL兼容性,提供了企业级的安全特性、易用的运维管理工具,更好地融合了爱可生的技术积累和服务优势,提供更高质量、更完整的数据库产品和服务。

2023-10-08

SQL 审核工具:SQLE v2.2308 用户手册

SQLE 是由上海爱可⽣信息技术股份有限公司 开发并开源,⽀持 SQL 审核、索引优化、事前审核、事后审核、⽀持标准化上线流程、原⽣⽀持 MySQL 审核且数据库类型可扩展的 SQL 审核⼯具。 产品特性 SQL审核规范 1. 审核规则⾃定义(700+条) 2. ⽀持审核结果分级展⽰,⽀持⽣成下载审核报告 3. ⽀持规则模版,灵活组合规则 4. 审核⽩名单,跳过特例SQL 5. ⽀持集成 IDE ⾃助审核 多场景审核 标准化上线流程 多数据库类型⽀持 1. 统⼀接⼝,可通过插件进⾏多数据库审核扩展 2. 内置MySQL审核插件,官⽅⽀持常⽤数据库类型,包括 PostgreSQL、Db2、Oracle、OceanBase 等 统⼀的SQL客⼾端入口 提供审核管控的SQL客⼾端,杜绝执⾏不合规SQL 丰富的集成能⼒ 1. 标准HTTP API接⼝可与客⼾内部流程系统对接 2.⽀持LDAP,Oauth2⽤户对接 3. ⽀持邮件、微信企业号、webhook 告警对接

2023-10-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除