是否可以仅从.ibd文件重新创建表模式?

时间:2014-09-22 08:03:51

标签: mysql innodb percona

是否有任何方法仅从.ibd文件重新创建mysql数据库? 如果有人可以发布一个方法来创建.frm或者获得"创建表"那将会很棒。语句甚至完全恢复数据库。

问题是,我使用percona的xtrabackup进行mysql备份,但不幸的是这个工具似乎只备份数据,不包括数据库的模式。在我看来,他们应该在他们的文档中更清楚地提到这一点。所以现在我只有一堆.ibd文件,需要完全恢复数据库。数据库中的所有表都使用InnoDB引擎。

这是我用来备份的命令:

xtrabackup --backup --datadir=/var/lib/mysql/ --target-dir=/backup/

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

根据the mysql documentation

LOCK TABLES tblname WRITE;
ALTER TABLE tbl DISCARD TABLESPACE;
ALTER TABLE tbl IMPORT TABLESPACE;
UNLOCK TABLES;

请注意以下事项:

  • ibd文件中不能有未提交的事务。
  • .ibd文件中没有未合并的插入缓冲区条目。
  • Purge已删除.ibd文件中所有删除标记的索引记录
  • mysqld已将.ibd文件的所有已修改页面从缓冲池刷新到该文件。

我希望此摘要和文档可以帮助您解决问题。如果您还有其他问题,请发表评论。