(1)“导出”表
导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在prepare过程中通过--export选项将某表导出了:
innobackupex --apply-log --export /backup/xbackup/full/ #这个需要在备份的目录下面执行. 后面的路径是备份的目录.(重要) 不是自己定义的目录.
# innobackupex --apply-log --export /path/to/backup
innobackupex --apply-log --export /backup
此命令会为每个innodb表的表空间创建一个以.exp结尾的文件,这些以.exp结尾的文件则可以用于导入至其它服务器。
(2)“导入”表
要在mysql服务器上导入来自于其它服务器的某innodb表,需要先在当前服务器上创建一个跟原表表结构一致的表,而后才能实现将表导入:
mysql> CREATE TABLE mytable (...) ENGINE=InnoDB;
#这里要新建表结构
#create table test(id int,name varchar(20),age int) ENGINE=InnoDB;
#mysql> show variables like '%autocommit%';
然后将此表的表空间删除:
mysql> ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;
接下来,将来自于“导出”表的服务器的mytable表的mytable.ibd和mytable.exp文件复制到当前服务器的数据目录,
然后使用如下命令将其“导入”:(记得改权限)
这里需要改权限很重要
mysql> ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;
mysql -uroot -poldboy123 <all_2017-12-25.sql