问题 MGR中,新节点在加入时,为了与组内其它节点的数据保持一致,它会首先经历一个分布式恢复阶段。在这个阶段,新节点会随机选择组内一个节点(Donor)来同步差异数据。 在MySQL8.0.17之前,同步的方式只有一种,即基于Binlog的异步复制,这种方式适用于差异数据较少或需要的Binlog都存在的场景。 从MySQL8.0.17开始,新增了一种同步方式-克隆插件,克隆插件可用来进行物理备份恢复,这种方式适用于差异数据较多或需要的Binlog已被purge的场景。 克隆插件虽然极大提升了恢复的效率,但备份毕竟是一个IO密集型的操作,很容易影响备份实例的性能,所以,我们一般不希望克隆操作在P...

  fSogy696KOfQ   2024年08月07日   32   0   0 MySQL

问题 最近碰到一个case,一台主机上,部署了多个实例。之前使用的是MySQL8.0,启动时没有任何问题。但升级到MySQL8.4后,部分实例在启动时出现了以下错误。 [Warning] [MY-012582] [InnoDB] io_setup() failed with EAGAIN. Will make 5 attempts before giving up.[Warning] [MY-012583] [InnoDB] io_se...

  fSogy696KOfQ   2024年08月07日   61   0   0 MySQL

在MySQL中,如果我们想查看实例当前正在执行的SQL,常用的命令是SHOWPROCESSLIST。 但如果SQL过长的话,就会被截断。这时,我们一般会用SHOWFULLPROCESSLIST来查看完整的SQL。 最近碰到一个case,发现无论是使用 SHOWPROCESSLIST、SHOWFULLPROCESSLIST,还是performance_schema.processlist都无法获取完整的SQL,反倒information_schema.processlist可以。 最后发现,SHOWFULLPROCESSLIST无法查看完整的SQL竟然与performance_sche...

  fSogy696KOfQ   2024年08月06日   49   0   0 MySQL

最近碰到一个case,值得分享一下。 现象就是一个update操作,在mysql客户端中执行提示warning,但在java程序中执行却又报错。 问题重现 mysql> create table test.t1(id int primary key, c1 datetime);Query OK, 0 rows affected (0.01 sec)mysql> insert into test.t1 va...

  fSogy696KOfQ   2024年03月04日   93   0   0 MySQL

最近在分析ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)这个报错的常见原因。 在分析的过程中,不可避免会涉及到MySQL身份验证的一些实现细节。 加之之前对这一块就有很多疑问,包括: 一个明文密码,是如何生成mysql.user表中的authentication_string? 在进行身份验证时,客户端是否会直接发送明文密码给MySQL服务端? MySQL8.0为什么要将默认的身份认证插件调整为caching_sha2_password,mysql_native_password有什么问题嘛?...

  fSogy696KOfQ   2024年01月09日   55   0   0 MySQL

在回答这个问题之前,首先我们看看MySQL中有哪些常用的JDBC连接池: c3p0 DBCP Druid TomcatJDBCPool HikariCP 这些连接池中,c3p0是一个老牌的连接池,很多流行框架,在其老版本中,都将c3p0作为默认的连接池。 DBCP和TomcatJDBCPool(Tomcat的默认连接池)是Apache开源的。 Druid是阿里开源的,它不仅仅是个数据库连接池,还可以监控数据库的访问性能,支持数据库密码加密等。 HikariCP是目前风头最劲的JDBC连接池,其号称性能最好。 从下图HikariCP官网给出的压测结果来看,也确实如此,性能上吊打c3p0、DB...

  fSogy696KOfQ   2023年12月26日   39   0   0 MySQL

问题 最近有好几个朋友问,如何将performance_schema.events_statements_xxx中的TIMER字段(主要是TIMER_START和TIMER_END)转换为日期时间。 因为TIMER字段的单位是皮秒(picosecond),所以很多童鞋会尝试直接转换,但转换后的结果并不对,看下面这个示例。 mysql> select  from performance_schema.events_statements_current limit 1\G 1. row  &n...

  fSogy696KOfQ   2023年12月12日   40   0   0 MySQL

以前对异步删除几个参数的作用比较模糊,包括网上的很多资料都是一笔带过,语焉不详。 所以这次从源码(基于Redis7.0.5)的角度来深入分析下这几个参数的具体作用: lazyfree-lazy-user-del lazyfree-lazy-user-flush lazyfree-lazy-server-del lazyfree-lazy-expire lazyfree-lazy-eviction slave-lazy-flush lazyfree-lazy-user-del 在Redis4.0之前,通常不建议直接使用DEL命令删除一个KEY。这是因为,如果这个KEY是一个包含大量数据的大K...

  fSogy696KOfQ   2023年11月28日   46   0   0 NoSQL

MGR的新主选举算法,在节点版本一致的情况下,其实也挺简单的。 首先比较权重,权重越高,选为新主的优先级越高。 如果权重一致,则会进一步比较节点的server_uuid。server_uuid越小,选为新主的优先级越高。 所以,在节点版本一致的情况下,会选择权重最高,server_uuid最小的节点作为新的主节点。 节点的权重由group_replication_member_weight决定,该参数是MySQL5.7.20引入的,可设置0到100之间的任意整数值,默认是50。 但如果集群节点版本不一致,实际的选举算法就没这么简单了。 下面,我们结合源码具体分析下。 代码实现逻辑 新主选举算法...

  fSogy696KOfQ   2023年11月01日   412   0   0 MySQL

故障检测(FailureDetection)是GroupReplication的一个核心功能模块,通过它可以及时识别集群中的故障节点,并将故障节点从集群中剔除掉。如果不将故障节点及时剔除的话,一方面会影响集群的性能,另一方面还会阻止集群拓扑的变更。 下面结合一个具体的案例,分析GroupReplication的故障检测流程。 除此之外,本文还会分析以下问题。 当出现网络分区时,对于少数派节点,会有什么影响? 什么是XComCache?如何预估XComCache的大小? 在线上,为什么group_replication_member_expel_timeout不宜设置过大? 案例 以下是测试...

  fSogy696KOfQ   2023年11月01日   107   0   0 MySQL

sysbench是一个开源的、基于LuaJIT(LuaJIT是Lua的即时编译器,可将代码直接翻译成机器码,性能比原生lua要高) 的、可自定义脚本的多线程基准测试工具,也是目前用得最多的MySQL性能压测工具。 基于sysbench,我们可以对比MySQL在不同版本、不同硬件配置、不同参数(操作系统和数据库)下的性能差异。 下面会从sysbench的基本用法出发,逐渐延伸到sysbench的一些高级玩法,譬如如何阅读自带的测试脚本、如何自定义测试项等。除此之外,使用sysbench对CPU进行测试,网上很多资料都语焉不详,甚至是错误的,所以这次也会从源码的角度分析CPU测试的实现逻...

  fSogy696KOfQ   2023年11月01日   99   0   0 MySQL

预告:《MySQL实战》即将出版,敬请关注! 有过线上MySQL维护经验的童鞋都知道,主从延迟往往是一个让人头疼不已的问题。 不仅仅是其造成的潜在问题比较严重,而且主从延迟原因的定位尤其考量DBA的综合能力:既要熟悉复制的内部原理,又能解读主机层面的资源使用情况,甚至还要会分析binlog。 导致主从延迟的一个常见原因是,对于binlog中的事务,从库上只有一个SQL线程进行重放,而这些事务在主库中是并发写入的。 就好比你多个人(多线程)挖坑,我一个人(单线程)来填,本来就双拳难敌四手,在你挖坑速度不快的情况下,我尚能应付。一旦你稍微加速,我则力有不逮,只能眼睁睁地看着你挖的坑越来越深。 具体...

  fSogy696KOfQ   2023年11月01日   87   0   0 MySQL

承蒙大家的支持,刚上市的《MySQL实战》已经跃居京东自营数据库图书热卖榜第1名,收到的反馈也普遍不错。对该书感兴趣的童鞋可通过右边的链接购买。目前,京东自营有活动,只需5折。 主从延迟作为MySQL的痛点已经存在很多年了,以至于大家都有一种错觉:有MySQL复制的地方就有主从延迟。 对于主从延迟的原因,很多人将之归结为从库的单线程重放。 但实际上,这个说法比较片面,因为很多场景,并行复制方案也解决不了,譬如从库SQL线程被阻塞了,从库磁盘IO存在瓶颈等。 很多童鞋在分析此类问题时缺乏一个系统的方法论,以致无法准确地定位出主从延迟的根本原因。 下面就如何分析主从延迟做一个系统、全面的总结。 本...

  fSogy696KOfQ   2023年11月01日   109   0   0 MySQL
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~