mysql 临时目录限定大小_MySQL的tmpdir临时文件说明及使用设置

晚上收到告警MySQL数据库服务器磁盘占满发现是,数据库在tmpdir写数据的文件占用过大

执行命令lsof -n | grepdeleted印出所有针对已删除文件的读写操作,这类操作是无效的,也正是磁盘空间莫名消失的根本原因!

主要原因是很多进程使用后台执行,在执行完成后,有删除日志操作,但进程未停止,所以导致日志还继续占用磁盘容量,查询到该步后,直接重启一下应用服务,释放基础即可。

另外需注意,删除大的日志文件时,最好关闭写入它的程序,或 用echo > logfile 把日志文件倒空。

f0aa41098685d36b14562ff35803e665.png

需要重启mysql服务才能释放掉。重启时发现MySQL停不掉,使用了比较暴力的方法,直接kill掉进程,这种方法不推荐会损坏数据库文件造成服务无法启动。

下面介绍一下MYSQL 5.7中临时文件的使用

使用临时文件

一、使用tmpdir1、执行计划file sort文件名字MY开头

lsof|grepdelete

如:/tmp/MYdRH1GW (deleted)2、大事物binary log缓存 文件名字ML开头

lsof|grepdelete

如:/tmp/MLq9INFu (deleted)3、压缩的tempory table

CREATE TEMPORARY TABLE tmp_table1(id int) ROW_FORMAT=COMPRESSED ;ls /tmp/如:

#sql6b82_6_7.frm

#sql6b82_6_7.ibd4、online DDL 涉及排序比如add key

alter table testsort add key(id);

lsof|grepdelete

如:/tmp/ibCxlYQg (deleted)/tmp/ib51nvZ1 (deleted)

设置 innodb_tmpdir可以将这类文件放到指定的目录

二、使用innodb_temp_data_file_path1、执行计划use temporay table 5.7以后为innodb 内部表2、非压缩tempory table

CREATE TEMPORARY TABLE tmp_table1(id int);

可以使用select *from INNODB_TEMP_TABLE_INFO ;查询

这些也看不到 表现为innodb表

三、使用innodb data

就是online ddl1、ALGORITHM copy 名字为 #sql-alter table testsort ALGORITHM=copy ,add im int;

#sql-6b82_6.frm

#sql-6b82_6.ibd2、ALGORITHM inplace 名字为 #sql-ib

alter table test add keyid int比如

#sql-6b82_6.frm

#sql-ib59-867962583.ibd

但是涉及到排序比如add key 则使用tmpdir或者innodb_tmpdir见上

Mysql tmpdir参数修改

由于操作系统的/tmp空间有限,需要进行参数修改,将tmpdir的值路径进行修改。

mysql> show variables like 'tmpdir';+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| tmpdir | /tmp |

+---------------+-------+

1 row in set (0.00sec)

mysql> set global tmpdir = '/Data/app/mysql5.6.25/mysqltmp';

ERROR1238 (HY000): Variable 'tmpdir'is a read only variable

只能通过配置文件进行修改了。

重启mysql

mysql> show variables like 'tmpdir';+---------------+--------------------------------+

| Variable_name | Value |

+---------------+--------------------------------+

| tmpdir | /mysql5.6/var/tmp |

+---------------+--------------------------------+

1 row in set (0.00sec)

问一下:但是生产环境不能重启服务,这要怎么搞呢?

答:最好搭建主从同步或其他高可用架构,将业务切换至备机,在重启MySQL服务

转自

MYSQL 5.7中临时文件的使用_ITPUB博客 http://blog.itpub.net/7728585/viewspace-2146356/

(1条消息)Linux文件系统被占用,磁盘使用量与实际不一致 - peterxiaoq的专栏 - CSDN博客 https://blog.csdn.net/peterxiaoq/article/details/78676046

Mysql tmpdir参数修改-任何事贵在坚持!-51CTO博客 https://blog.51cto.com/zhaowl/1743293

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值