- 博客(8)
- 收藏
- 关注
原创 mysql元数据锁导致的交易失败案例
6.据以上信息,确认为应用端持续的慢SQL select导致该分区表持续持有MDL S锁不释放,进而导致分区在0:00执行添加分区DDL操作时无法加MDL X锁而进入线程等待,反过来进一步导致所有涉及到该表的事务均失败。3.查询慢SQL日志,发现均为5S的慢查询SQL,非常有规律,查询元数据锁超时lock_wait_timeout参数,确定该参数设置为5S;7.经与客户确认该凌晨有持续的批量业务执行,导致的该问题,建议客户修改批量业务时间或者调整创建新分区的定时任务时间,来规避该问题。
2023-11-15 11:43:46
94
原创 mysql源码启动调用栈
设置psi相关的服务:thread_service,mutex_service,rwlock_service,cond_service,file_service,socket_service,table_service,mdl_service,idle_service,stage_service,statement_service,transaction_service,memory_service,error_service,data_lock_service,system_service。
2023-08-19 10:50:19
293
原创 8.0.24下internal_tmp_mem_storage_engine设置temptable导致的coredump问题
具体结论:在进行聚合查询时产生临时表时,使用的internal_tmp_mem_storage_engine 是temptable时,当达到临时表内存分配上限,会将临时表移至磁盘,此时内存中的数据指针已经失效。但类似blob、varchar的大记录,仍然有可能使用到老的失效指针去进行访问,导致异常CRASH。调整internal_tmp_mem_storage_engine参数值为memory,后未再出现!得到具体SQL,确认为该SQL导致的问题。gdb分析得到宕机时对应的SQL信息。
2023-08-03 09:27:25
618
转载 mysqld_safe源码
云环境mysqld都是混布的,通过K8S这样的技术去做隔离。运行完之后,在bash上执行ps,能看到有一个mysqld_safe进程和一个mysqld进程,mysqld_safe会自动为mysqld准备一系列的参数,包括my.cnf的地址、basedir、错误日志、端口等。只要有父进程管理mysqld(参考sql_restart_server.cc的代码is_mysqld_managed),restart命令会走SIGUSR2的信号处理函数,返回的值是MYSQLD_RESTART_EXIT。
2023-05-21 15:11:46
496
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人