mysql5.7 通过 IBD 文件恢复数据
原创2025年2月12日小于 1 分钟
前提条件
database1 ——> 生成 IBD
IBD ——> database2
其中 database1 和 database2 的版本要一致。
此外
需要有表结构的备份。
注意事项
表结构的 ROW_FORMAT 最好为 DYNAMIC
操作
使用下面命令删除新建表的表空间(即新表的.ibd 文件)。
ALTER TABLE tableName DISCARD TABLESPACE;
(linux)将备份好的.ibd文件复制到目标数据库数据文件夹下,并修改.ibd文件权限。
chown mysql:mysql tableName.ibd
使用下面命令重新导入表空间即可恢复数据(无需重启目标数据库服务)。
ALTER TABLE tableName IMPORT TABLESPACE;