【问题标题】:Reclaim disk space after drop database in mysql在mysql中删除数据库后回收磁盘空间
【发布时间】:2011-08-24 10:30:59
【问题描述】:

我创建了一些非常大的数据库,后来又删除了一些。我注意到我的磁盘空间没有像我预期的那样恢复。例如,我添加的最后一个数据库实际上用尽了我所有的可用空间并中止了,所以我删除了该模式。在此之前,我有 12.4 GB 的可用空间,现在我只有 7.52 GB 的可用空间。
这里发生了什么?如何取回大约 5 GB 的数据?

【问题讨论】:

标签: mysql drop-database


【解决方案1】:

来自http://dev.mysql.com/doc/refman/5.1/en/innodb-data-log-reconfiguration.html

目前,您无法从表空间中删除数据文件。要减小表空间的大小,请使用以下过程:

  1. 使用 mysqldump 转储所有 InnoDB 表。

  2. 停止服务器。

  3. 删除所有现有的表空间文件,包括 ibdata 和 ib_log 文件。如果您想保留信息的备份副本,请在删除 MySQL 安装中的文件之前将所有 ib* 文件复制到另一个位置。

  4. 删除 InnoDB 表的所有 .frm 文件。

  5. 配置一个新的表空间。

  6. 重启服务器。

  7. 导入转储文件。

Innodb 在数据文件本身内创建一个文件系统(“表空间”)。当数据被删除时,它永远不会“缩小”数据文件,因为文件中数据的重组可能代价高昂(不能保证删除的数据在最后,甚至是连续的)。通过如上所述重新创建数据库,它可以使文件尽可能大,以容纳所有数据,但不会更大。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 2010-11-19
  • 2022-01-09
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多