我在RHEL上使用MySQL 5.5.33。我启用了innodb_file_per_table,但在ibdata1中却相当大。我假设它来自我运行一致的备份意味着UNDO空间已经增长。反正有没有证实这一点?我在information_schema中找不到任何可能导致我这样做的东西 - 理想情况下我想要分解ibdata1中的大小。
有什么想法吗?
答案 0 :(得分:2)
我的所有同事和我的朋友和我都尝试过如何弄清楚这一点。但是我们找不到任何关于它的东西。我知道的唯一一件事(你知道)是mysqldump并删除所有innodb文件&还原
MySQL Performance Blog为我们提供了重要的两个故事。
<强> 1。检查ibdata1中存储的内容
不幸的是,MySQL没有提供ibdata1共享表空间上存储内容的信息,但有两种工具非常有用。首先是由Mark Callaghan制作并在此错误报告中发表的innochecksum的修改版本。
<强> 2。有没有办法恢复已用空间?
不,至少在一个简单快捷的方式是不可能的。 InnoDB表空间从未缩小...请参阅James Day最近更新的以下10年的错误报告(谢谢):
OP使用the modified innochecksum script
解决了他的问题。摘自他的评论。
我最终使用了修改过的innochecksum脚本,它在live ibdata1文件上工作。事实证明我是对的,主要是UNDO也有很大一部分插入缓冲区