mysql释放大表空间的正确之道
2021/6/18 19:29:45
本文主要是介绍mysql释放大表空间的正确之道,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
###################################
问题出现背景:
falcon监控集群,一是由于长期大量的写数据,二是业务用来清理过期数据的定时任务异常而停止了,导致数据量持续增长,直到达到了报警阈值
当前现状:单表的ibd文件大小为2.1T,磁盘空间总共才2.6T
[work@xxx ]$ ll -h total 2.1T -rw-r----- 1 work work 67 Jun 8 11:54 db.opt -rw-r----- 1 work work 8.8K Jun 8 11:54 endpoint_counter.frm -rw-r----- 1 work work 2.1T Jun 18 11:52 endpoint_counter.ibd
解决过程:
1,删除部分binlog:purge binary logs to 'mysql-bin.001174'; 2,将binlog的自动保存天数从7天改为3天:set global expire_logs_days=3; 3,申请3.6T的大磁盘机器,将该集群的机器逐渐替换掉,最后切主 4,写一个删除数据的shell脚本:每2秒删除1.5万行数据的速度 5,当数据删除完毕后,将其中一台的机器的流量去掉,执行stop slave;然后再执行 alter table xxx engine=innodb;将空间释放出来,注意:不要用optimize table 方式来释放空间,我连续两次都失败了,搞了一半后就卡住了,不知为何 6,再用xtrabakcup备份释放空间了的机器上的mysql,逐渐替换掉,最后切主
解决问题后:从原来的2.1T变为了444G,释放了1.6T数据
[work@xxx ]$ ll -h total 444G -rw-r----- 1 work work 67 Jun 8 11:54 db.opt -rw-r----- 1 work work 8.8K Jun 17 14:44 endpoint_counter.frm -rw-r----- 1 work work 444G Jun 18 11:52 endpoint_counter.ibd
##################################
这篇关于mysql释放大表空间的正确之道的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享
- 2024-02-22docker mysql 5.7
- 2024-02-18从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践
- 2024-02-07mysql 外键索引入门介绍,为什么工作中很少有人使用?