mysql 磁盘已满_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。
[](/img/bVcMVFR)
网上推荐的做法如下所示,对表格进行碎片化整理。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、关闭mysqlservice mysql stop
3、删除datadir目录下的ibdata1、ib_logfile0 ib_logfile1这些文件
[](/img/bVcMVFS)
4、 移动mysql的启动参数mv /etc/my.cnf ./abc
5、重新启动mysql 发现磁盘空间释放了service mysql start
磁盘空间终于释放了,下一步数据库还原
1、采用navicate备份工具,进行数据库备份
[](/img/bVcMVFT)
备份成功后生成了,生成psc文件。
200409141055.psc
2、新建一个数据库实例,设置数据库名和字符集
[](/img/bVcMVFU)
3、然后对备份数据库进行还原,点击还原
[](/img/bVcMVFV)
4、开始进行还原
第一次还原后发现还原后数据库表建成功了,但是表里面没有数据。
后来网上查找资料发现是,遇到错误就停止了。所以更改了还原的配置,再次进行还原。
之前是这样设置的
[](/img/bVcMVFW)
还原时当成一个事务进行了,遇到错误就停止了。
更改配置:
[](/img/bVcMVFX)
重新进行还原,数据库里的数据有了,并且验证没有问题。
问题解决
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 表名;
觉得不错,别忘了随手点赞+转发哦!
mysql 磁盘已满_MySQL 磁盘满了,怎么办??相关推荐
- word保存不了磁盘已满_磁盘到底该不该分区?容量不够怎么办?
据说99%的人都有磁盘分区的习惯?这么巧,你也是? 可是随着SSD(固态硬盘)的普及使用,又据说SSD分区会导致空间浪费和性能下降? 其实,SSD分两到三个区不管从空间还是性能上,都是完全OK的.分不 ...
- 硬盘满了 mysql启不来_MySQL数据库之磁盘已满造成的mysql启动失败问题分享
本文主要向大家介绍了MySQL数据库之磁盘已满造成的mysql启动失败问题分享 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 突然发现mysql死活都启不起来了: 复制代码 代 ...
- 怎样清理苹果电脑磁盘空间_Mac启动磁盘已满?如何快速清理电脑磁盘
原标题:Mac启动磁盘已满?如何快速清理电脑磁盘 Mac启动磁盘满了怎么办?是不是经常被"mac启动盘已满"这种情况干扰,该如何快速清理苹果电脑磁盘呢?以下六个方法可以轻松帮你解决 ...
- Mac启动磁盘已满怎么办?Mac启动磁盘已满怎么清理?
如果你的Mac电脑经常弹出窗口"您的启动盘几乎已经满了",这说明你的Mac硬盘空间严重不足了,清理各种不必要的垃圾可以释放一些空间,那么Mac启动磁盘已满怎么清理?下面为大家带来几 ...
- Wsus存储更新文件的磁盘已满
存储更新文件的磁盘已满或出现故障如果在 WSUS 服务器上存储更新文件并且磁盘已满,则可能需要更改 WSUS 存储更新文件的位置.如果存储更新文件的磁盘出现故障并且替用磁盘使用新的驱动器号,也必须更改 ...
- 安装VS2008关于解决磁盘已满问题方案.
在下载了VS2008后安装时出现一个问题,提示Disk is FUll(磁盘已满), 导致无法解压数据包,真正的原因是我的文件系统是FAT32(操作系统是WindowsXP)支持单个文件的大小是4.0 ...
- 如何刷机:iphone8锁屏密码错误多次,手机停用,连接iTunes,磁盘已满,双重认证弊端!
前两天,我正玩着的手机突然提示IOS系统升级,随手点了个"稍后",再等会打开手机时却要输入密码,问题来了:输了多次锁屏密码一直不对,但我的密码确实没改过,怀疑是系统漏洞所致,最后手 ...
- 计算机硬盘不能存储文件,磁盘已满,文件无法保存怎么弄
演示工具: 电脑型号:华硕 adolbook14 2020 系统版本:windows10 磁盘已满,文件无法保存,出现这种情况是因为文件所在的磁盘空间已经不够再放入此文件.可以清理一下磁盘再储存.以w ...
- macbook系统占用硬盘大_十大方法解决Mac“启动磁盘已满”!让你的Mac“飞起来”~~...
原标题:十大方法解决Mac"启动磁盘已满"!让你的Mac"飞起来"~~ 当你的Mac说磁盘已满时,这是什么意思? 其实这有两个坏消息: 1.很快你就会完全耗尽空 ...
最新文章
- Idea(二) 解决IDEA卡顿问题及相关基本配置(转)
- java从键盘输入数据斐波那契数_从键盘输入一个正整数n,打印出斐波那契数列的前n个元素...
- c++函数模板(c++细节篇十)
- 地理数据库 (geodatabase) 的架构
- .NET Core 3.0 的新改进:针对分布式应用程序的故障诊断和监控
- 弯道超车时机已来 百度:中国有机会定义AI时代的用户体验标准
- Ciesz się Polską
- memcache的简单应用
- CuteFTP下载包含中文的文件,无法下载的问题
- 各大快递公司面单号准确性验证的正则表达式
- 北京375路公交车灵异事件真相
- 网页加载Java特别慢_打网页打开速度慢,教你3分钟解决
- sql 查询本月请假的人数_温故而知新---学习SQL练习作业
- unity 2d地图tilemap滚轮缩放出现缝隙解决办法
- python字符串是啥_python字符串表示什么?
- 谷歌小语种外链代发,谷歌外链购买平台哪个好?
- 计算机三个人的英语情景对话,三个人的英语对话情景阅读
- 红米note2能刷机没显示无服务器,红米Note2怎么线刷刷机 红米Note2手机线刷机教程图解...
- 《电脑音乐制作实战指南:伴奏、录歌、MTV全攻略》——第2章 音频伴奏的获取与制作 2.1 获取伴奏的途径...
- HT合泰单片机入门教程(第六章 时基中断)