今天收到阿里云磁盘告警通知,查看了一个100G的空间已达到80G的使用量,如果决定删除2018年1月1日之前的数据,可delete后,再去查看发现磁盘可用空间并没有减少,还飞速的上涨,这可把我急坏了,不一会儿数据库就锁死了。
敢忙找度娘,原来delete后,磁盘不会减少,还得执行一下 OPTIMIZE TABLE +表名,以后找到救星了,可执行此命信不成功,原来是空间不足,数据库存补锁不能执行这条指令,一下没了头绪,如是决定先把服务器暂停,就在暂停时奇迹发生了,可用空间有5G多了,这下可以执行OPTIMIZE TABLE 来优化表了,可执行3分钟后,指令返回错误,一看空间又不足了,又表锁住了。
最张决定,先导出一个表,转存sql文件,足足导了40分钟才导完,然后删除了这个表,服务器一下可用空间多了50G,于是再执行运行sql文件,将数据还原,足足执行了150分钟。执行完后磁盘使了70G, 再执行 OPTIMIZE TABLE +表名 ,由于其中一张表太大了,执行了接近40分钟,此间磁盘使用率一度飙到100%,好在还是刚才度过。
delete 数据后mysql空间并不会减少,要执行OPTIMIZE TABLE 才行,OPTIMIZE TABLE其间会产生大量临时文件,如果原表体量很大,会占用大量的空间,所以执行这条时,一定要在磁盘空间充足时。不然执行其它会引起磁盘不足,锁死数据库,而导致,执行失败
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。