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

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

主要原因是很多进程使用后台执行,在执行完成后,有删除日志操作,但进程未停止,所以导致日志还继续占用磁盘容量,查询到该步后,直接重启一下应用服务,释放基础即可。
另外需注意,删除大的日志文件时,最好关闭写入它的程序,或 用 echo > logfile 把日志文件倒空。

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

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

使用临时文件
一、使用tmpdir
、执行计划file sort 文件名字MY开头
lsof|grep delete
如:/tmp/MYdRH1GW (deleted) 、大事物binary log缓存 文件名字ML开头
lsof|grep delete
如:/tmp/MLq9INFu (deleted) 、压缩的tempory table
CREATE TEMPORARY TABLE tmp_table1(id int) ROW_FORMAT=COMPRESSED ;
ls /tmp/
如:
#sql6b82_6_7.frm
#sql6b82_6_7.ibd 、online DDL 涉及排序比如add key
alter table testsort add key(id);
lsof|grep delete
如:
/tmp/ibCxlYQg (deleted)
/tmp/ib51nvZ1 (deleted)
设置 innodb_tmpdir可以将这类文件放到指定的目录 二、使用innodb_temp_data_file_path
、执行计划use temporay table .7以后为innodb 内部表
、非压缩tempory table
CREATE TEMPORARY TABLE tmp_table1(id int);
可以使用 select * from INNODB_TEMP_TABLE_INFO ;查询
这些也看不到 表现为innodb表 三、使用innodb data
就是online ddl
、ALGORITHM copy 名字为 #sql-
alter table testsort ALGORITHM=copy ,add im int ;
#sql-6b82_6.frm
#sql-6b82_6.ibd 、ALGORITHM inplace 名字为 #sql-ib
alter table test add key id int
比如
#sql-6b82_6.frm
#sql-ib59-.ibd
但是涉及到排序比如add key 则使用tmpdir或者innodb_tmpdir见上

Mysql tmpdir参数修改

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

mysql> show variables like 'tmpdir';

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp |
+---------------+-------+
row in set (0.00 sec) mysql> set global tmpdir = '/Data/app/mysql5.6.25/mysqltmp';
ERROR (HY000): Variable 'tmpdir' is a read only variable 只能通过配置文件进行修改了。
重启mysql mysql> show variables like 'tmpdir';
+---------------+--------------------------------+
| Variable_name | Value |
+---------------+--------------------------------+
| tmpdir | /mysql5./var/tmp |
+---------------+--------------------------------+
row in set (0.00 sec) 问一下:但是生产环境不能重启服务,这要怎么搞呢?
答:最好搭建主从同步或其他高可用架构,将业务切换至备机,在重启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

MySQL的tmpdir临时文件说明及使用设置的更多相关文章

  1. MySQL Windows ZIP 免费安装和启动设置

    MySQL Windows ZIP免安装版,设置和启动的过程事实上挺麻烦的.以下一步一步介绍使用的过程: 1.下载Windows (x86, 64-bit), ZIP Archive: 2.解压zip ...

  2. Linux 下操作Mysql指令的总结 远程连接的设置

    参考博客:https://www.cnblogs.com/liaocheng/p/4243579.html (常用命令) https://www.cnblogs.com/zhangzhu/archiv ...

  3. MySQL连接处理方式及最佳并发连接数设置

    MySQL连接处理方式及最佳并发连接数设置 mysql是单进程,多线程的架构,通过创建多个线程来服务不同的用户连接,通常情况下,随着用户连接数的增加,mysql内部用于处理用户连接的线程也会同步的增长 ...

  4. mysql数据库的安装以及常见优化设置

    原文请详见:http://www.ucai.cn/blogdetail/7036?mid=1&f=5 能够在线执行查看效果哦! 本文依据优才网课程整理,面向web开发人员,内容以有用为主,专业 ...

  5. MySQL数据库详解之"双1设置"的数据安全的关键参数案例分享

    mysql的"双1验证"指的是innodb_flush_log_at_trx_commit和sync_binlog两个参数设置,这两个是是控制MySQL 磁盘写入策略以及数据安全性 ...

  6. mysql单表多timestamp的current_timestamp设置问题

    一个表中出现多个timestamp并设置其中一个为current_timestamp的时候经常会遇到 1293 - Incorrect table definition; there can be o ...

  7. 【详记MySql问题大全集】四、设置MySql大小写敏感(踩坑血泪史)

    系列目录 一.安装MySql 二.安装并破解Navicat 三.没有my.in配置文件怎么办 四.设置MySql的大小写敏感 五.重置MySql登陆密码 这一篇可以说是我的踩坑的血泪史了... MyS ...

  8. mysql锁表与不锁表设置主从复制的方法

    有时候MySQL主从同步不一致比较严重的时候,需要手动同步.先说说在锁表的情况下如何操作:以下是其简要过程 1.先对主库锁表FLUSH TABLES WITH READ LOCK; 2.备份数据mys ...

  9. 以Windows服务方式启动MySQL,并将其默认编码设置为UTF-8

    系统环境:Windows XP Professional 版本 2002 Service Pack 3 // 第1步:创建选项文件.首先下载mysql-5.5.12-win32.zip,只需复制mys ...

随机推荐

  1. Java集合学习(8):LinkedList

    一.概述 LinkedList和ArrayList一样,都实现了List接口,但其内部的数据结构有本质的不同.LinkedList是基于链表实现的(通过名字也能区分开来),所以它的插入和删除操作比Ar ...

  2. 搜索和浏览离线 Wikipedia 维基百科(中/英)数据工具

    为什么使用离线维基百科?一是因为最近英文维基百科被封,无法访问:二是不受网络限制,使用方便,缺点是不能及时更新,可能会有不影响阅读的乱码. 目前,主要有两种工具用来搜索和浏览离线维基百科数据:Kiwi ...

  3. vagrant 无法挂载共享目录

    Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem " ...

  4. OSPF 多区域配置

    通过配置OSPF协议使网络互通. 实验拓扑 如图所示连接,地址规划如下: 名称 接口 IP地址 R1 f1/0 192.168.10.1/24 R1 f0/0 192.168.20.1/24 R1 f ...

  5. 实例讲解ip地址、子网掩码、可用地址范围的计算

    关于ip以及相关的掩码.网络号等概念可以查看相关的博客.资料,这些东西很容易找着,一搜一大片.本文主要记录通过实例进行ip相关的计算. 我自己使用的在线网络计算器地址:https://www.sojs ...

  6. MySQL 8.0 的xtrabackup备份

    xtrabackup 备份语句: fname=`date +%F_%H-%M-%S` mkdir -p /mnt/dbbak/db_$fname xtrabackup --defaults-file= ...

  7. C语言入门hello world

    1.安装软件 c语言开发工具众多,初学者推荐使用Dev-Cpp 5.6.3 TDM-GCC x64 4.8.1 Setup.exe:安装过程全部默认安装即可. 2.使用Dev-Cpp编写第一个入门实例 ...

  8. 记CSP2019

    给出题人倒杯茶好吧,出题人给你倒一杯卡布奇诺.给出题人倒一杯卡布奇诺! 开始你的炫技秀,搞CCF.漂亮! 六道题你能秒我?你能秒杀我?!你今天能六道题把李某秒了,我!当!场!就把这个电脑屏幕吃掉!! ...

  9. HDFS的Shell、java操作

    HDFS的Shell操作 1.基本语法 bin/hadoop fs 具体命令   OR  bin/hdfs dfs 具体命令 dfs是fs的实现类. 2.命令大全 [Tesla@hadoop102 h ...

  10. moya与网络编程思想:网络请求的生命周期

    请求数据管理的集中化: 请求配置的标注化: 请求管理的函数式参量化: 几个端点: target代表应用端的原始数据; endpoint代表应用端到网络端的中间数据,这个数据可以编辑公用数据header ...