我有一个臃肿的mysql 5.0声纳数据库(360gb而不是平均30gb)
此链接说为了修复它我需要导出数据库,安装mysql 5.6,导入和导出,它应该恢复到原来的大小..:SonarQube : How to reduce size of measures_data.ibd?
所以我们有一个虚拟机来测试,安装了Centos 5.6和mysql 5.6,并开始导入... 不幸的是,我总是在某些进口产品中出错......
[错误] InnoDB:总blob数据长度(39220742)大于 重做日志文件大小的10%(3072)。请增加 innodb_log_file_size。
这让我进入了innodb_log_file_size的许多链接,就像这样: Issue changing innodb_log_file_size
我没有错误地关闭了mysql。 我修改了my.cnf
innodb_log_file_size = 64M(例如目的虽然我尝试了更高的值以尝试600M 6G等。)
我删除了/ var / lib / mysql中的ib_logfile0和ib_logfile1日志,然后重新启动了服务 ,但没有任何变化......(尽管从我读到的内容中看起来并不重要)。
2014-10-09 13:05:09 18205 [注意] InnoDB:完成缓冲池的初始化
2014-10-09 13:05:10 18205 [Note] InnoDB:将日志文件./ib_logfile101大小设置为48 MB
2014-10-09 13:05:10 18205 [Note] InnoDB:将日志文件./ib_logfile1大小设置为48 MB
2014-10-09 13:05:10 18205 [Note] InnoDB:将日志文件./ib_logfile101重命名为./ib_logfile0
2014-10-09 13:05:10 18205 [警告] InnoDB:创建了新的日志文件,LSN = 36443469334
我在导入失败后截断了所有表数据,并将每个表数据改为使用key_block_size 8k进行压缩。我还删除了所有" DROP TABLE IF EXISTS"从备份我导入,以便我可以保持表格压缩,这是不起作用...
active_rule_changes | InnoDB | 10 |压缩| 379 | 86 | 32768> | 0 | 8192 | 0 | 566 | 2014-10-08 18:03:45 | NULL | > NULL | utf8_bin | NULL | row_format = COMPRESSED KEY_BLOCK_SIZE = 8 | |
我不知道该怎么办...我的日志没有出错,从我读到的内容来看,这应该是直截了当的。
继承my.cnf文件以进行数据导入。
innodb_file_per_table = 1
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_file_format_check = ON
我们将非常感谢您的想法。 感谢。
答案 0 :(得分:2)
人们遇到的一个常见问题是,他们在/etc/my.cnf中有多行定义变量。定义文件中变量的 last 行获胜。因此,在配置文件中搜索另一行,将日志文件大小设置为48M。
另一种可能性是您将变量定义放在错误的组中。它属于配置文件中的[mysqld]
组。
FWIW,您不需要导出和导入所有数据,除非您需要缩小ibdata1
表空间。
您可以使用.ibd
压缩任何单个OPTIMIZE TABLE
文件。