![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
吃饭端住碗
这个作者很懒,什么都没留下…
展开
-
使用VSCode远程调试MySQL
安装依赖包下载MySQL源码并编译Debug版本。原创 2024-08-20 19:49:14 · 57 阅读 · 0 评论 -
MySQL Clone插件自动重启失败的解决方式
而官方设置的重启时机是“on-failure” , 即数据库当遇到异常宕机、进程中断信号或监控超时时就会进行重启,但是当数据库异常宕机时,有时我们并不想让数据库立刻自动重启,而是需要在运维和开发人员确认过问题之后进行手动重启,这时候我们就需要调整自动重启的策略。“RestartForceExitStatus=16”的意思就是说不管是否配置了“Restart=”,当服务的退出状态码为16时都会进行自动重启,这样就解决了clone自动重启失败的问题,同时也保证了数据库在其他异常情况下不会进行自动重启。原创 2024-08-20 19:41:15 · 108 阅读 · 0 评论 -
MySQL Federated存储引擎表导致监控线程处于Opening table状态
所以推测问题原因为:监控线程在查询information_schema.tables表时,当需要获取Federated存储引擎表的信息时需要连接远端Server,而由于网络或其他原因无法连接时,就会导致本地监控线程处于Opening table状态。通过分析堆栈日志发现,问题出现在进行查询时会使用Federated存储引擎表对远程实例进行查询。3. 查询information_schema.tables表,线程卡住。2. 创建一张Federated存储引擎的表,连接的server不存在。原创 2024-08-20 19:28:09 · 77 阅读 · 0 评论 -
MySQL并行DDL
MySQL 8.0.27引入了innodb_ddl_threads变量来控制用于创建二级索引时的并行线程数量,此参数一般和一并引入的innodb_ddl_buffer_size一起使用,innodb_ddl_buffer_size用于指定进行并行DDL操作时能够使用的buffer大小,buffer是在所有的DDL并行线程中平均分配的,所以一般如果调大innodb_ddl_threads变量时,也需要调大innodb_ddl_buffer_size的大小。原创 2024-08-20 19:21:20 · 455 阅读 · 0 评论 -
源码分析CHANGE REPLICATION SOURCE TO
从MySQL 8.0.23版本开始,CHANGE MASTER TO开始被替换为CHANGE REPLICATION SOURCE TO,下面使用MySQL 8.0.32的代码分析语句的具体执行流程。原创 2024-08-20 19:14:16 · 72 阅读 · 0 评论 -
MySQL并行复制死锁源码解析
线程#2所处的函数为Commit_order_manager::wait_for_its_turn,该函数被函数MYSQL_BIN_LOG::ordered_commit调用,其逻辑处于两阶段提交的FLSH STAGE之前,用于判断从库提交事务时是否需要按照和主库一样的顺序进行提交(slave_preserve_commit_order)。此时死锁就产生了,线程#2由于slave_preserve_commit_order的原因需要等待线程#4,而线程#4等待线程#5,线程#5又等待线程#2。原创 2024-08-20 19:04:48 · 535 阅读 · 0 评论