.frm文件:保存了每个表的元数据,包括表结构的定义等,该文件与数据库引擎无关。
.ibd文件:InnoDB引擎开启了独立表空间(my.cnf中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件。
恢复:
1) 创建新表
2) 丢弃表空间
mysql>alter table table_name discard tablespace ;
3) 拷贝线上备份目录中的ibd到要恢复数据库的数据目录并chown mysql:mysql xxx.idb
4) 导入表空间
mysql>alter table table_name import tablespace ;
5) 查看表数据是否正常
注意事项:
1、数据库大版本要相同
2、row_format要和ibd文件的row_format一致,否则会提示两者不一致(set global innodb_file_format=xxx)
3、创建的表要跟恢复的表结构相同