首页 > 解决方案 > 替换 Innodb 中的 IBD 文件

问题描述

今天我犯了一个删除生产数据库的错误。

我能够从昨天晚上恢复数据库,但我发现了最近一段时间的 IBD 和 FRM 文件。

所以我想知道我是否能够恢复这些文件。仅覆盖 IBD 文件是行不通的,因为无法启动 Mysqld ..

对于如何解决这个问题,有任何的建议吗?

标签: mysqldatabaserestore

解决方案


不,您不能只替换 ibd 文件,它们的内部状态本质上与主表空间状态 (ibdata*) 和事务日志状态 (ib_logfile*) 相关联。

将整个数据集恢复到备用服务器,使用 mysqldump 转储您需要的表,或者如果它们很大,则使用可导出的表空间:

在恢复服务器上:FLUSH TABLE table_name FOR EXPORT;保持会话运行。

在主服务器上:ALTER TABLE table_name DISCARD TABLESPACE;

复制ibd文件。

在主服务器上:ALTER TABLE table_name IMPORT TABLESPACE;

那应该做你想做的事。


推荐阅读