- 博客(7)
- 收藏
- 关注
原创 GDB常用指令
gdb模式 set logging on:设置日志开关 set logging off show logging set logging file 日志文件:设置日志文件名,默认名称为gdb.txt 启动gdb调试 gdb 可执行文件:使用gdb运行并调试程序(程序被暂停,可以设置启动参数、断点等操作) gdb attach pid:使用gdb附件已有进程 [r]run:运行程序 run 命令行参数 run >输出文件:将输出重定向到输出文件 继续执行 [
2024-08-20 19:51:45
193
原创 MySQL Clone插件自动重启失败的解决方式
而官方设置的重启时机是“on-failure” , 即数据库当遇到异常宕机、进程中断信号或监控超时时就会进行重启,但是当数据库异常宕机时,有时我们并不想让数据库立刻自动重启,而是需要在运维和开发人员确认过问题之后进行手动重启,这时候我们就需要调整自动重启的策略。“RestartForceExitStatus=16”的意思就是说不管是否配置了“Restart=”,当服务的退出状态码为16时都会进行自动重启,这样就解决了clone自动重启失败的问题,同时也保证了数据库在其他异常情况下不会进行自动重启。
2024-08-20 19:41:15
108
原创 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
原创 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
原创 源码分析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
原创 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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人