服务器磁盘空间似乎不对,为什么?

时间:2015-08-05 15:53:30

标签: mysql diskspace

我在Drupal的看门狗模块上遇到了很大的问题,它为数据库创建了令人难以置信的大量条目。 MySQL因此而停止工作。当我有一些空间并且能够登录并删除模块时,我回到了早期的点。我运行了SQL命令

    INSTANTIATE_TEST_CASE_P(TestBadExpressions, LogicBuilderTest,
                        ::testing::Values(
                            TestParam("unittest/expressions/bad/17_no_lhs.txt", LogicBuilder::LB_VARIABLE_NO_LHS),
                            TestParam("unittest/expressions/bad/25_incomplete_rhs.txt", LogicBuilder::LB_PARSE_ERROR)
                        ));

因此,当看门狗正在吃掉所有的光盘空间时,我得到了这样的响应

在看门狗删除之前查询结果

queryresults before

无论如何我移除了模块,桌子随之而来。我运行相同的查询,我再也看不到那个表了。

看门狗删除后的查询结果

enter image description here

我进入控制台并输入命令

SELECT CONCAT(table_schema, '.', table_name),
CONCAT(ROUND(table_rows / 1000000, 2), 'M')                                    rows,
CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G')                    DATA,
CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G')                   idx,
CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
ROUND(index_length / data_length, 2)                                           idxfrac
FROM   information_schema.TABLES
ORDER  BY data_length + index_length DESC
LIMIT  10;

看门狗删除后的控制台结果

console result df -h

所以控制台说仍然有大量的内存耗尽。为什么是这样?我应该担心吗?

1 个答案:

答案 0 :(得分:0)

没有太多信息可以继续,我会说你已经遇到了一个" bug"

http://bugs.mysql.com/bug.php?id=1341

从这个答案中获取数据How to shrink/purge ibdata1 file in MySQL

  

因为你想从ibdata1回收你实际需要的空间   删除文件:

  • 执行除mysql和performance_schema数据库之外的所有数据库,过程,触发器等的mysqldump
  • 删除除上述2个数据库之外的所有数据库
  • 停止mysql
  • 删除ibdata1和ib_log文件
  • 启动mysql
  • 从转储中恢复

在恢复之前,您可能希望在配置文件中启用innodb_file_per_table选项

上面的说明实际上可以仅限于jod innodb,以使过程稍微安全