故障分析:全局读锁一直没有释放
发布时间:2022-11-01 19:31:00 330
相关标签: # mysql# 数据库# sql# 数据# 监控
-
FLUSH TABLES WITH READ LOCK
线上没有开启 performance_schema
的 instruments
和 consumers
(PS:这个对于锁监控很重要,一定记得打开)。如果开启了 performance_schema
,可以通过 metadata_locks
查到相关锁记录,这个我们在后面的复现中看一下。
原因
mysql备份时使用--master-data
参数在SQL
文件的头部会写入binlog
和position
信 息,所以在执行备份前mysql需要执行flush tables
。flush tables with read lock
全局锁锁住整个数据库。如果数据库中有一个长查询在运行,那么FTWRL就不能获得,会被阻塞,进而阻塞所有的DML操作。
排查
开启慢日志:
查看锁表
查出锁源 SQL 语句
参考
- MySQL备份导致的waiting for global read lock
- 故障分析 | 全局读锁一直没有释放,发生了什么
文章来源: https://blog.51cto.com/ghostwritten/5806842
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报