ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql释放大表空间的正确之道

2021-06-18 14:33:59  阅读:263  来源: 互联网

标签:11 rw work Jun 之道 ----- mysql 2.1 大表


###################################

问题出现背景:

        

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

 

 

 

 

 

 

 

 

##################################

标签:11,rw,work,Jun,之道,-----,mysql,2.1,大表
来源: https://www.cnblogs.com/igoodful/p/14899355.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有