摘要: 承蒙大家的支持,刚上市的《MySQL实战》已经跃居京东自营数据库图书热卖榜第 1 名,收到的反馈也普遍不错。对该书感兴趣的童鞋可通过右边的链接购买。目前,京东自营有活动,只需 5 折。 主从延迟作为 MySQL 的痛点已经存在很多年了,以至于大家都有一种错觉:有 MySQL 复制的地方就有主从延迟。 阅读全文
posted @ 2023-04-19 09:12 iVictor 阅读(3379) 评论(2) 推荐(6) 编辑
摘要: 对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。 1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2.x版本。 1999年,MySQL AB公司成立。同年,发布MyS 阅读全文
posted @ 2018-10-18 08:54 iVictor 阅读(33398) 评论(11) 推荐(20) 编辑
摘要: MHA(Master High Availability)是一套相对成熟的MySQL高可用方案,能做到在0~30s内自动完成数据库的故障切换操作,在master服务器不宕机的情况下,基本能保证数据的一致性。 它由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。其中,MH 阅读全文
posted @ 2017-05-21 21:37 iVictor 阅读(13449) 评论(6) 推荐(3) 编辑
摘要: 对于MySQL的备份,可分为以下两种: 1. 冷备 2. 热备 其中,冷备,顾名思义,就是将数据库关掉,利用操作系统命令拷贝数据库相关文件。而热备指的是在线热备,即在不关闭数据库的情况下,对数据库进行备份。实际生产中基本上都是后者。 关于热备,也可分为两种方式: 1. 逻辑备份 2. 物理备份 对于 阅读全文
posted @ 2016-05-19 11:08 iVictor 阅读(18614) 评论(5) 推荐(5) 编辑
摘要: 在 MySQL 的日常管理过程中,大家或多或少会遇到权限认证相关的问题。 例如,本来能够正常执行的操作,可能在新增一个账号或授权后就突然失败了。 这种现象往往让人误以为是 bug,但很多时候,其实并不是。 下面,将通过两个案例来阐明 MySQL 权限认证中的具体优先原则,并在此基础上,分析以下问题: 阅读全文
posted @ 2024-10-28 10:54 iVictor 阅读(236) 评论(2) 推荐(0) 编辑
摘要: 背景 最近碰到一个 case,一个 Redis 实例的内存突增,used_memory最大时达到了 78.9G,而该实例的maxmemory配置却只有 16G,最终导致实例中的数据被大量驱逐。 以下是问题发生时INFO MEMORY的部分输出内容。 # Memoryused_memory:84716 阅读全文
posted @ 2024-09-23 08:55 iVictor 阅读(1578) 评论(2) 推荐(8) 编辑
摘要: 问题 MGR 中,新节点在加入时,为了与组内其它节点的数据保持一致,它会首先经历一个分布式恢复阶段。在这个阶段,新节点会随机选择组内一个节点(Donor)来同步差异数据。 在 MySQL 8.0.17 之前,同步的方式只有一种,即基于 Binlog 的异步复制,这种方式适用于差异数据较少或需要的 B 阅读全文
posted @ 2024-07-22 07:53 iVictor 阅读(133) 评论(0) 推荐(1) 编辑
摘要: 问题 最近碰到一个 case,一台主机上,部署了多个实例。之前使用的是 MySQL 8.0,启动时没有任何问题。但升级到 MySQL 8.4 后,部分实例在启动时出现了以下错误。 [Warning] [MY-012582] [InnoDB] io_setup() failed with EAGAIN 阅读全文
posted @ 2024-07-01 14:18 iVictor 阅读(561) 评论(0) 推荐(4) 编辑
摘要: 在 MySQL 中,如果我们想查看实例当前正在执行的 SQL,常用的命令是SHOW PROCESSLIST。 但如果 SQL 过长的话,就会被截断。这时,我们一般会用SHOW FULL PROCESSLIST来查看完整的 SQL。 最近碰到一个 case,发现无论是使用 SHOW PROCESSLI 阅读全文
posted @ 2024-06-17 11:00 iVictor 阅读(307) 评论(0) 推荐(1) 编辑
摘要: 同一个SQL,在mysql客户端中可以执行,但在java程序中却报错 阅读全文
posted @ 2024-03-04 09:13 iVictor 阅读(834) 评论(4) 推荐(5) 编辑
摘要: 最近在分析ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)这个报错的常见原因。 在分析的过程中,不可避免会涉及到 MySQL 身份验证的一些实现细节。 加之之前对这一块就有很多疑问, 阅读全文
posted @ 2024-01-08 20:24 iVictor 阅读(1296) 评论(2) 推荐(4) 编辑
摘要: 在回答这个问题之前,首先我们看看 MySQL 中有哪些常用的 JDBC 连接池: c3p0 DBCP Druid Tomcat JDBC Pool HikariCP 这些连接池中,c3p0 是一个老牌的连接池,很多流行框架,在其老版本中,都将 c3p0 作为默认的连接池。 DBCP 和 Tomcat 阅读全文
posted @ 2023-12-26 10:57 iVictor 阅读(1264) 评论(0) 推荐(3) 编辑
摘要: 问题 最近有好几个朋友问,如何将 performance_schema.events_statements_xxx 中的 TIMER 字段(主要是TIMER_START和TIMER_END)转换为日期时间。 因为 TIMER 字段的单位是皮秒(picosecond),所以很多童鞋会尝试直接转换,但转 阅读全文
posted @ 2023-12-12 14:50 iVictor 阅读(240) 评论(0) 推荐(1) 编辑
摘要: 以前对异步删除几个参数的作用比较模糊,包括网上的很多资料都是一笔带过,语焉不详。 所以这次从源码(基于 Redis 7.0.5)的角度来深入分析下这几个参数的具体作用: lazyfree-lazy-user-del lazyfree-lazy-user-flush lazyfree-lazy-ser 阅读全文
posted @ 2023-11-27 10:06 iVictor 阅读(552) 评论(0) 推荐(1) 编辑
摘要: 预告: 《MySQL实战》即将出版,敬请关注! 有过线上 MySQL 维护经验的童鞋都知道,主从延迟往往是一个让人头疼不已的问题。 不仅仅是其造成的潜在问题比较严重,而且主从延迟原因的定位尤其考量 DBA 的综合能力:既要熟悉复制的内部原理,又能解读主机层面的资源使用情况,甚至还要会分析 binlo 阅读全文
posted @ 2023-03-06 15:38 iVictor 阅读(1442) 评论(0) 推荐(2) 编辑
摘要: sysbench是一个开源的、基于LuaJIT(LuaJIT 是 Lua 的即时编译器,可将代码直接翻译成机器码,性能比原生 lua 要高) 的、可自定义脚本的多线程基准测试工具,也是目前用得最多的 MySQL 性能压测工具。 基于 sysbench,我们可以对比 MySQL 在不同版本、不同硬件配 阅读全文
posted @ 2022-12-06 16:01 iVictor 阅读(10041) 评论(2) 推荐(4) 编辑
摘要: 故障检测(Failure Detection)是 Group Replication 的一个核心功能模块,通过它可以及时识别集群中的故障节点,并将故障节点从集群中剔除掉。如果不将故障节点及时剔除的话,一方面会影响集群的性能,另一方面还会阻止集群拓扑的变更。 下面结合一个具体的案例,分析 Group 阅读全文
posted @ 2022-11-07 09:43 iVictor 阅读(1533) 评论(0) 推荐(0) 编辑
摘要: 一文搞懂 MySQL Group Replication 的流控机制~ 阅读全文
posted @ 2022-10-17 08:05 iVictor 阅读(568) 评论(0) 推荐(0) 编辑