mysql5.7 ibtmp1文件过大解决方法

接到了一台 MySQL5.7服务器磁盘空间不足的报警,该业务的数据量20G的样子,是什么造成磁盘空间不足呢?

经过排查后发现,数据目录下面有一个ibtmp1的文件特别大,有949G 。
# du -sh ibtmp1
949G    ibtmp1

ibtmp1是个什么东西呢?查看官方文档后发现这是非压缩的innodb临时表的独立表空间。通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在支持大文件的系统这个文件大小是可以无限增长的。

解决办法:
1,修改my.cnf配置文件:
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G

2,设置innodb_fast_shutdown参数
SET GLOBAL innodb_fast_shutdown = 0;  #InnoDB does a slow shutdown, a full purge and a change buffer merge before shutting down

3,关闭mysql服务
4,删除ibtmp1文件
5,启动mysql服务

注意:为了避免以后再出现类似的情况,一定要在限制临时表空间的最大值,如innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G

作者: 浮云网

我们是一群满怀梦想的年轻人,不断努力改变乏味的互联网,非常感谢有您的支持我们才能把内容做的更好.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

您正在使用您的 WordPress.com 账号评论。 登出 /  更改 )

Google photo

您正在使用您的 Google 账号评论。 登出 /  更改 )

Twitter picture

您正在使用您的 Twitter 账号评论。 登出 /  更改 )

Facebook photo

您正在使用您的 Facebook 账号评论。 登出 /  更改 )

Connecting to %s