Percona Xtrabackup导出/导入单表

Posted jmbkeyes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Percona Xtrabackup导出/导入单表相关的知识,希望对你有一定的参考价值。

默认情况下,InnoDB表不能通过直接复制表文件的方式在mysql服务器之间进行移植,即便使用了innodb_file_per_table选项。而使用Xtrabackup工具可以实现此种功能,不过,此时需要“导出”表的mysql服务器启用了innodb_file_per_table选项(严格来说,是要“导出”的表在其创建之前,mysql服务器就启用了innodb_file_per_table选项),并且“导入”表的服务器同时启用了innodb_file_per_table和innodb_expand_import选项。


(1)“导出”表
导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在preparef过程中通过--export选项将某表导出了:
# innobackupex --apply-log --export /path/to/backup

此命令会为每个innodb表的表空间创建一个以.exp结尾的文件,这些以.exp结尾的文件则可以用于导入至其它服务器。

(2)“导入”表
要在mysql服务器上导入来自于其它服务器的某innodb表,需要先在当前服务器上创建一个跟原表表结构一致的表,而后才能实现将表导入:
mysql> CREATE TABLE mytable (...)  ENGINE=InnoDB;

然后将此表的表空间删除:
mysql> ALTER TABLE mydatabase.mytable  DISCARD TABLESPACE;

接下来,将来自于“导出”表的服务器的mytable表的mytable.ibd和mytable.exp文件复制到当前服务器的数据目录,然后使用如下命令将其“导入”:
mysql> ALTER TABLE mydatabase.mytable  IMPORT TABLESPACE;

以上是关于Percona Xtrabackup导出/导入单表的主要内容,如果未能解决你的问题,请参考以下文章

mysql备份恢复之xtrabackup

如何用Percona XtraBackup进行MySQL从库的单表备份和恢复

使用 Xtrabackup 在线对MySQL做主从复制

使用 Xtrabackup 在线对MySQL做主从复制

Linux----------mysql备份

数据库的备份与还原系列——单表备份和恢复详细完整实现