我们最近在两台不同的服务器上进行了从MySQL 5.5到MySQL 5.7的迁移。对于迁移,我们使用了主从复制。旧DB(5.5)设置为主设备,新设备设为从设备(5.7)。
一切顺利,迁移成功。数据库很大,大约600G的数据。
我们现在遇到的问题是,在新的数据库上,还有一个82G的大型.ibd文件。让我们假设数据库名称是my_database。该文件位于:
/var/lib/mysql/my_database
:
-rw-r----- 1 mysql mysql 82G Apr 20 10:28 articles.ibd
文章表很大,但是为什么在新的MySQL服务器上有这么大的ibd文件,并且旧版本没有。
由于我们现在有一些存储限制(SSD),我们想以某种方式删除此文件。怎么做以及为什么在MySQL5.7上创建这个文件?
答案 0 :(得分:1)
基本上只需在停用innodb_file_per_table
后运行ALTER TABLE [TABLENAME] ENGINE=InnoDB ALGORITHM=COPY;
。
比照https://dev.mysql.com/doc/refman/5.7/en/tablespace-copying.html和https://dba.stackexchange.com/questions/136250/migrate-from-innodb-file-per-table-to-off-in-mysql-alter-table-removing-ibd-file,https://dev.mysql.com/doc/refman/5.7/en/innodb-multiple-tablespaces.html