数据库:如果MySQl磁盘满了,如何解决!
使用命令发现磁盘使用率为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磁盘满了,如何解决!相关推荐
- mysql 自动停止_MySQL数据库之mysql自动停止的完美解决方法
本文主要向大家介绍了MySQL数据库之mysql自动停止的完美解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 这两天新买的服务器mysql总是自动停止,查了日志 9:1 ...
- mysql data too large_MySQL数据库之mysql 主从同步故障解决 Error 'Row size too large ( 8126)....
本文主要向大家介绍了MySQL数据库之mysql 主从同步故障解决 Error 'Row size too large (> 8126). ,通过具体的内容向大家展现,希望对大家学习MySQ ...
- 如果MySQL磁盘满了,会发生什么?
来源:https://testerhome.com/topics/23049 问题 使用命令发现磁盘使用率为100%了,还剩几十兆. 一系列神操作 备份数据库,删除实例.删除数据库表.重启mysql服 ...
- 如果mysql磁盘满了,会发生什么?还真被我遇到了!
点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 使用命令发现磁盘使用率为100%了,还剩几十兆. 一系列神操作 备份数据库,删除实例.删除数据库 ...
- linux 清理磁盘 dev sda2,linux /dev/sda1 磁盘满了,解决办法
一开始系统报"no space left on device"(磁盘空间不足),然后本来带桌面的ubuntu系统变成只能黑框输入命令的界面了,tab键自动补全命令也用不了了. 然后 ...
- 计算机硬盘清理,Win7电脑的磁盘满了怎么办?最简单的清理方法教给你!
随着人们平时的工作或学习生活,都离不开电脑的支持,相信有很多的小伙伴都会在电脑上存储大量的重要文件资料,不管是跟学习有关的资料,还是跟工作有关的重要文件,再或者是私人的文档,我们都会在电脑上进行存储, ...
- MySQL 数据库救火:磁盘爆满了,怎么办?
摘要:当磁盘空间爆满后,MySQL会发生什么事呢?又应该怎么应对? 本文分享自华为云社区<[MySQL 数据库救火]- 磁盘突然爆满的处理方式>,原文作者:技术火炬手 . 大多数用户在对于 ...
- isfull mysql_MySQL数据库之MySQL 出现 The table is full 的解决方法
本文主要向大家介绍了MySQL数据库之MySQL 出现 The table is full 的解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 当我们要写入新数据而发生& ...
- ubuntu mysql 多硬盘_ubuntu下磁盘空间不足导致mysql无法启动的解决方法
前言 最近在数据库的一张表添加两个字段,后来提示什么磁盘空间不足什么什么的,后来数据库就断开连接了,之后就一直连接不上去后来,最后经过思考终于解决了这个问题,这一经历下来真是心惊胆战,本文作为记录一下 ...
最新文章
- H5新增的标签以及改良的标签
- MobileViT 网络测试
- ios: coreData的NSManagedObject setvalue为null
- VTK:提取可见细胞用法实战
- android 图片长方形_android 相机只拍摄矩形区域图片
- .NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你
- 串操作指令及其应用程序的设计与调试运行——汇编实验四 用8086汇编完成下题 编制一程序,从键盘输入两个长度不同的字符串,设字符串长度小于25个字符。要求在屏幕上以右边对齐的形式显示出
- 从边缘到云,万物互联时代Aruba的技术经
- C/C++编程知识分享:C++四种强制转换,教你多种类型转换方式!
- L1-022. 奇偶分家-PAT团体程序设计天梯赛GPLT
- 线索二叉树算法 - 草根编程网
- PS打开PSD文档服务器未响应,psd文件打不开怎么办-psd文件打不开的解决方法 - 河东软件园...
- 读取头部姿态数据集300W_LP、AFLW2000、BIWI数据集中的真值
- micropython支持stm32型号_单片机仿真软件Proteus,可支持程序联调
- 深入浅出实时数据库12.8日版
- Laya2自动同步cullingMask方案以及灯光裁剪补丁
- 美国大学计算机工程专业TOP10
- 关于以太网光纤收发器,逻辑隔离与物理隔离的理解与区别
- 《Learn to Augment: Joint Data Augmentation and Network Optimization for Text》
- 程序员的2023发展方向
热门文章
- C# 数值和字符串之间的相互转换
- HALCON示例程序measure_pump.hdev螺纹孔位置与尺寸测量
- 无人驾驶汽车之争本田为何未战先败
- 【数据库学习】——数据库可视化--Navicat下载安装连接教程
- Python中利用plt显示中文标题解决方案
- 最优化作业第六章——共轭梯度法和鲍尔法
- C++总结笔记(二)——指针
- java word转图片tiff_不怕复制内容 Word转存TIFF文件这么玩
- 某著名公司2015暑期实习招聘试题及相关内容复习
- vb语言程序设计_如果编程语言难度决定头发浓度,学这语言的可能要光头了