MySQL表空间传输
1、FLUSH TABLES t1 FOR EXPORT ;
此时该表会锁表,可以select,但不能DML操作
在该数据库目录下会生成t1.cfg文件
2、拷贝t1.cfg、t1.frm、t1.ibd文件到目标端
3、源库unlock tables ;
4、目标库新建该表t1.frm
mysqlfrm --diagnostic t1.frm 获取DDL语句 (mysqlfrm是mysql-utilities里的工具)
5、目标库ALTER TABLE tbl_name DISCARD TABLESPACE;
6、拷贝.ibd文件覆盖
7、ALTER TABLE tbl_name IMPORT TABLESPACE;
xtrabackup export 之后会发现生成了.exp和.cfg文件。exp文件适用于percona server,cfg适用于mariadb和mysql。mariadb 10.0可以直接通过ibd和frm文件import。mysql 5.6之后可以不使用cfg来进行import,cfg如果存在会被用来做表结构的验证。
在已经预备好的备份上,可以使用—export和—apply-log创建.exp文件