带PARTITION 的表,在slave中会system lock

问题背景

master版本: 5.6.23-72.1-log Percona版本的
slave 版本: 5.7.19-17-log Percona Server

slave是通过 innobackupex 工具导出与恢复的。
配置后执行过mysql_upgrade升级数据,并重启。
某表tb1 有partition属性如: PARTITION BY KEY (target_id) PARTITIONS 32; 数据量21亿条,硬盘中tb1.idb文件大小为37G, 带partition前共计32个文件。

问题表现

slave sql_thread 每次执行过程此表时,都会有大量的时间处于system lock;

> show slave status;    

会看到Exec_Master_Log_Pos 一直不变。

> SHOW OPEN TABLES WHERE in_use != 0; 

会看过程 tb1 一直在被system lock占着。

skip_external_locking是ON状态,无用,还是会阻塞锁。

mysql> show variables like '%skip_external_locking%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| skip_external_locking | ON    |
+-----------------------+-------+
1 row in set (0.01 sec)

最后解决方法—无办法中的办法,删除分区

尝试过使用以下指定重建分区,均无效。

> ALTER TABLE tb1 CHECK PARTITION ALL;
> ALTER TABLE tb1 OPTIMIZE PARTITION ALL;

最后只能drop 掉 分区:

mysql> alter table tb1 REMOVE PARTITIONING;
Query OK, 218174563 rows affected (1 hour 15 min 30.80 sec)
Records: 218174563  Duplicates: 0  Warnings: 0

drop后正常。怀疑是mysql的bug,此问题基本100%重现。
我司业务中是qing_card表。
以上备忘。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值