使用命令发现磁盘使用率为100%了,还剩几十兆。

一系列神操作

备份数据库,删除实例、删除数据库表、重启mysql服务,结果磁盘空间均没有释放。

怎么办

网上查了很多资源,说要进行磁盘碎片化整理。原因是datafree占据的空间太多啦。具体可以通过这个sql查看。

SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size,
CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size,
CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free,
CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size
FROM information_schema.tables WHERE TABLE_NAME = 'datainfo';

这个是后来的图了,之前的图没有留,当时显示一张表里的data_free都达到了20个G。

网上推荐的做法如下所示,对表格进行碎片化整理。

ALTER TABLE datainfo ENGINE=InnoDB;
ANALYZE TABLE datainfo;optimize table datainfo;

僵局:

查看数据库版本为5.562不支持inodb,要么选择升级数据库。正在这时,有个不好的消息发生了,那张表格给删掉了,但是磁盘空间还是没有释放啊。所以对表进行碎片化整理的路也走不通了,因为表没了。。。

后来的神操作

1、使用命令查看mysql安装的位置和配置文件所在的地方

mysql 1118 945 0 14:28 ? 00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

2、关闭mysql

service mysql stop

3、删除datadir目录下的ibdata1、ib_logfile0 ib_logfile1这些文件

4、 移动mysql的启动参数

mv /etc/my.cnf ./abc

5、重新启动mysql 发现磁盘空间释放了 service mysql start

磁盘空间终于释放了

下一步数据库还原

1、采用navicate备份工具,进行数据库备份

备份成功后生成了,生成psc文件。200409141055.psc

2、新建一个数据库实例,设置数据库名和字符集

3、然后对备份数据库进行还原,点击还原

4、开始进行还原 第一次还原后发现还原后数据库表建成功了,但是表里面没有数据。后来网上查找资料发现是,遇到错误就停止了。所以更改了还原的配置,再次进行还原。之前是这样设置的

还原时当成一个事务进行了,遇到错误就停止了。更改配置重新进行还原,数据库里的数据有了,并且验证没有问题。

问题解决

mysql碎片化产生的原因

(1)表的存储会出现碎片化,每当删除了一行内容,该段空间就会变为被留空,而在一段时间内的大量删除操作,会使这种留空的空间变得比存储列表内容所使用的空间更大;

(2)当执行插入操作时,MySQL会尝试使用空白空间,但如果某个空白空间一直没有被大小合适的数据占用,仍然无法将其彻底占用,就形成了碎片;

(3)当MySQL对数据进行扫描时,它扫描的对象实际是列表的容量需求上限,也就是数据被写入的区域中处于峰值位置的部分;

清除碎片的优点:

降低访问表时的IO,提高mysql性能,释放表空间降低磁盘空间使用率

注意

1.MySQL官方建议不要经常(每小时或每天)进行碎片整理,一般根据实际情况,只需要每周或者每月整理一次即可(我们现在是每月凌晨4点清理mysql所有实例下的表碎片)。

2.在OPTIMIZE TABLE运行过程中,MySQL会锁定表。因此,这个操作一定要在网站访问量较少的时间段进行。

3.清理student的105万条数据, OPTIMIZE TABLE 库.student;本地测试需要37秒。

自测

大家可以用这条语句看看自己的系统的datafree大不大 show table status from 表名;

来源 | https://urlify.cn/jemaym

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

数据库:如果MySQl磁盘满了,如何解决!相关推荐

  1. mysql 自动停止_MySQL数据库之mysql自动停止的完美解决方法

    本文主要向大家介绍了MySQL数据库之mysql自动停止的完美解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这两天新买的服务器mysql总是自动停止,查了日志 9:1 ...

  2. mysql data too large_MySQL数据库之mysql 主从同步故障解决   Error 'Row size too large ( 8126)....

    本文主要向大家介绍了MySQL数据库之mysql 主从同步故障解决   Error 'Row size too large (> 8126). ,通过具体的内容向大家展现,希望对大家学习MySQ ...

  3. 如果MySQL磁盘满了,会发生什么?

    来源:https://testerhome.com/topics/23049 问题 使用命令发现磁盘使用率为100%了,还剩几十兆. 一系列神操作 备份数据库,删除实例.删除数据库表.重启mysql服 ...

  4. 如果mysql磁盘满了,会发生什么?还真被我遇到了!

    点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 使用命令发现磁盘使用率为100%了,还剩几十兆. 一系列神操作 备份数据库,删除实例.删除数据库 ...

  5. linux 清理磁盘 dev sda2,linux /dev/sda1 磁盘满了,解决办法

    一开始系统报"no space left on device"(磁盘空间不足),然后本来带桌面的ubuntu系统变成只能黑框输入命令的界面了,tab键自动补全命令也用不了了. 然后 ...

  6. 计算机硬盘清理,Win7电脑的磁盘满了怎么办?最简单的清理方法教给你!

    随着人们平时的工作或学习生活,都离不开电脑的支持,相信有很多的小伙伴都会在电脑上存储大量的重要文件资料,不管是跟学习有关的资料,还是跟工作有关的重要文件,再或者是私人的文档,我们都会在电脑上进行存储, ...

  7. MySQL 数据库救火:磁盘爆满了,怎么办?

    摘要:当磁盘空间爆满后,MySQL会发生什么事呢?又应该怎么应对? 本文分享自华为云社区<[MySQL 数据库救火]- 磁盘突然爆满的处理方式>,原文作者:技术火炬手 . 大多数用户在对于 ...

  8. isfull mysql_MySQL数据库之MySQL 出现 The table is full 的解决方法

    本文主要向大家介绍了MySQL数据库之MySQL 出现 The table is full 的解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 当我们要写入新数据而发生& ...

  9. ubuntu mysql 多硬盘_ubuntu下磁盘空间不足导致mysql无法启动的解决方法

    前言 最近在数据库的一张表添加两个字段,后来提示什么磁盘空间不足什么什么的,后来数据库就断开连接了,之后就一直连接不上去后来,最后经过思考终于解决了这个问题,这一经历下来真是心惊胆战,本文作为记录一下 ...

最新文章

  1. H5新增的标签以及改良的标签
  2. MobileViT 网络测试
  3. ios: coreData的NSManagedObject setvalue为null
  4. VTK:提取可见细胞用法实战
  5. android 图片长方形_android 相机只拍摄矩形区域图片
  6. .NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你
  7. 串操作指令及其应用程序的设计与调试运行——汇编实验四 用8086汇编完成下题 编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于25个字符。要求在屏幕上以右边对齐的形式显示出
  8. 从边缘到云,万物互联时代Aruba的技术经
  9. C/C++编程知识分享:C++四种强制转换,教你多种类型转换方式!
  10. L1-022. 奇偶分家-PAT团体程序设计天梯赛GPLT
  11. 线索二叉树算法 - 草根编程网
  12. PS打开PSD文档服务器未响应,psd文件打不开怎么办-psd文件打不开的解决方法 - 河东软件园...
  13. 读取头部姿态数据集300W_LP、AFLW2000、BIWI数据集中的真值
  14. micropython支持stm32型号_单片机仿真软件Proteus,可支持程序联调
  15. 深入浅出实时数据库12.8日版
  16. Laya2自动同步cullingMask方案以及灯光裁剪补丁
  17. 美国大学计算机工程专业TOP10
  18. 关于以太网光纤收发器,逻辑隔离与物理隔离的理解与区别
  19. 《Learn to Augment: Joint Data Augmentation and Network Optimization for Text》
  20. 程序员的2023发展方向

热门文章

  1. C# 数值和字符串之间的相互转换
  2. HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量
  3. 无人驾驶汽车之争本田为何未战先败
  4. 【数据库学习】——数据库可视化--Navicat下载安装连接教程
  5. Python中利用plt显示中文标题解决方案
  6. 最优化作业第六章——共轭梯度法和鲍尔法
  7. C++总结笔记(二)——指针
  8. java word转图片tiff_不怕复制内容 Word转存TIFF文件这么玩
  9. 某著名公司2015暑期实习招聘试题及相关内容复习
  10. vb语言程序设计_如果编程语言难度决定头发浓度,学这语言的可能要光头了