MDL LOCK 死锁一例
例子1:trx1trx2begin;select * from testalter table test add col1 int;(堵塞)delete from test limit 1;(死锁)例子2:trx1trx2begin;delete from test limit 1;或者for update语句alter table test add col1 int;(堵塞)delete fro
一个古老的死锁BUG终于修复了
因为这里描述全部是Innodb的行锁,为了方便描述,这里将语句需要的锁资源描述为请求行锁,而已经获取或者等待的行锁描述为当前行锁。其次锁结构对于行锁来讲和page绑定,一个锁结构可以用多个bit位表示一个page的多行记录锁,每个bit代表一行记录。但是这需要满足一定的条件,下面描述。这里讨论也是慢速加锁(lock_rec_lock_slow)的情况,不考虑快速加锁。一、 问题所在和BUG修复这个
主从从库MTS HANG死一列
一、问题描述最近遇到问题,版本5.7线上访问is.columns出现大量的警告,我们进行了模拟,当然模拟只模拟了一个警告,如下,image.png二、问题分析从报错来看其中有字节 \xBA\xC3 也就是0XBAC3无法被解析(这个码点实际上是GBK的'好'字),而对于 information_schema.columns的字段COLUMN_COMMENT字符集为UTF8类型,因此
主从半同步降级异步分析
一、问题这个问题大概是这样。当前主从状态如下有2个半同步从库,如果停掉1个半同步从库是是否会堵塞主库,堵塞时间大概是多久?mysql> show global status like '%semi%';+--------------------------------------------+-----------+|&nbs
慢查询中关于MDL LOCK记录的变化
首先,这里不考虑innodb行锁,仅仅考虑MDL LOCK和DML/select 语句。我们知道到了8.0.28(包含)以后,记录慢查询的标准有变化,主要依赖的实际执行时间,而不是以前去掉了锁的时间(包含MDL LOCK和行锁)作为判定标准,具体参考,https://www.jianshu.com/p/27547eb97d6a以前通常通过lock_time来判断是否可能出现过innodb行锁堵塞和
主从从库MTS HANG死一列
一、故障介绍最近遇到一个案例,以前从来没遇到过,环境为5.7,从库在执行optimize table语句的时候,出现了MTS hang死的情况,并且无法自动解锁,只能是重启整个数据库(kill -9),然后才可能恢复。模拟的截图如下,19df8442819b2c360f120ad73d7e17a.png当然线上MTS线程堵塞的比较多,但是模拟我只需要2个worker线程堵塞就可以了。这种堵塞状态视
ICP?RANGE?影响性能吗?
因为在工作中经常遇到,每次不影响性能就算了,最近又经常看到,就简单分析了一下。
为什么?双主备库只读,主库还有大量延迟
最近第一时间收到了薛晓刚老师的新书 《DBA实战手记》,感谢薛晓刚老师送书。
MySQL:新的MGR MySQL协议报错BUG
MySQL:MGR(单主)备节点MTS并发原则
最近遇到一个案例MGR备节点出现了hang死的问题,考虑到和备节点的并发有关,则学习了一下这部分。现记录如下。
MySQL:主从binlog超过4G导致报错
MySQL:8028新加入的LOCK INSTANCE报错
MySQL:Innodb唯一索引出现重复值的场景分析
MySQL:BUG导致DDL语句无谓的索引重建
MySQL:客户端导入数据Terminal close -- query aborted报错
首先祝大家新年快乐,万事如意,写这篇的目的主要是给各位兄弟拜年。这里简单记录下问题的原因,供参考。
MySQL:8028(含)以下 checksum table 不一致的问题
MySQL:mysqldump 100M的数据导入需要几个小时?
mysqldump 100M的数据导入需要几个小时?
MySQL:刷脏相关
这里简单记录一下刷脏和IO代码的简要流程(8.0.23),以下内容仅供参考。先简要总结一下:当大于默认819
MySQL:MDL LOCK的“穿越行为”
一、案例描述最近遇到这么一个案例(5.7版本),大概的截图如下:当然这里是测试出来的,线上当时也是一个loc
xtrabackup:为什么5.7需要FTWRL而8.0不需要
这个问题除了和myisam表有关,其实还和位点的获取有关,下面我们主要讨论一下位点相关的原因。8.0中整个备