是否有任何方法可以仅从 .ibd 文件重新创建 mysql 数据库? 如果有人可以发布如何创建 .frm 或获取“创建表”语句甚至完全恢复数据库的方法,那就太好了。
问题是,我使用percona的xtrabackup进行mysql备份,但不幸的是这个工具似乎只备份数据,不包括数据库的模式。在我看来,他们应该在文档中更清楚地提及这一点。所以现在我只有一堆 .ibd 文件,需要完全恢复数据库。数据库中所有表均采用InnoDB引擎。
这是我用来进行备份的命令:
xtrabackup --backup --datadir=/var/lib/mysql/ --target-dir=/backup/
感谢您的帮助!
最佳答案
LOCK TABLES tblname WRITE;
ALTER TABLE tbl DISCARD TABLESPACE;
ALTER TABLE tbl IMPORT TABLESPACE;
UNLOCK TABLES;
请注意以下事项:
- ibd 文件中不能有未提交的事务。
- .ibd 文件中没有未合并的插入缓冲区条目。
- 清除已从 .ibd 文件中删除所有带有删除标记的索引记录
- mysqld 已将 .ibd 文件的所有修改页从缓冲池刷新到文件中。
我希望这个摘要和文档可以帮助您解决问题。如果您还有其他问题,请留言。
关于mysql - 是否可以仅从 .ibd 文件重新创建表模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25969281/