mysql表空间迁移
个人学习笔记,谢绝转载!!!
原文:https://www.cnblogs.com/wshenjin/p/16277007.html
innodb_file_per_table=1
直接使用ibd迁移的方式
1.在不同库或者实例上新建相同的表结构,并卸载表空间
mysql> ALTER TABLE ttt DISCARD TABLESPACE;
2.导出旧表的表空间(在分区表空间传输没有完成之前,不要退出该会话或者执行unlock tables;操作)
mysql> FLUSH TABLES ttt FOR EXPORT;
3.将表空间文件传输到新表,并授权导入
cp ttt.{cfg,ibd} newdb/
chown mysql:mysql newdb/ttt.{cfg,ibd}
mysql> ALTER TABLE ttt IMPORT TABLESPACE;
4.释放旧表空间的共享锁
mysql> UNLOCK TABLES;
5.对于分区表只是迁移某个分区:
导出分区表空间文件:ALTER TABLE ttt DISCARD PARTITION p2,p3,p4,p5 TABLESPACE;
导入分区表空间文件:ALTER TABLE ttt IMPORT PARTITION p2,p3,p4,p5 TABLESPACE;