在mysql5.6之前,导入单个innodb表的idb文件需要对齐tablespace id,而如果tablespace id不一致,就需要通过在新库不挺的新建表,来增长tablespace id,以致对齐tablespace id。
5.6版本之后
alter table ... import tablespace
已经不需要对齐tablespace id。
alter table ...for export
5.6增加了以上命令,可以使导出的idb文件保持一致状态,并且生成文件.cfg后缀文件。当我们需要单表复制的时候,直接拷贝.frm/.idb/.cfg文件,然后直接执行
alter table ... import tablespace
即可导入.
在5.6.8之后,可以不需要生成cfg文件,直接复制idb文件和结构文件即可进行导入!但是会生成如下告警:
Warning Code : 1810 InnoDB: IO Read error: (2, No such file or directory) Error opening ‘./test/log_table_cube.cfg‘, will attempt to import without schema verification
注意,当对表加上for export锁定之后,复制完记得unlock tables释放该锁!
参考资料:
http://www.educity.cn/wenda/404363.html
http://dev.mysql.com/doc/refman/5.6/en/tablespace-copying.html
mysql5.6之innodb导入的改进,布布扣,bubuko.com
时间: 2024-11-08 06:09:52