一、只还原表数据
前提,被还原的表结构与之前的表结构一致。举例子:需要被还原的表:example
- ALTER TABLE example DISCARD TABLESPACE; # 脱离保存表 example 空间数据
- 将已备份好的 example.ibd 覆盖到当前数据目录
- ALTER TABLE example IMPORT TABLESPACE; # 重新导入表 example 空间数据
二、InnoDB 整体还原表数据以及表结构
.frm: 保留表数据结构;.ibd: 保留表数据;
具体情况分以下两种:根据不同MySQL版本 innodb_file_per_table 配置有关。
MySQL <= 5.5.6 默认开启 innodb_file_per_table;MySQL >= 5.5.7 默认关闭 innodb_file_per_table。
之前服务:innodb_file_per_table=1
用已备份的 .frm 和 .ibd 文件覆盖需要被还原的表,同时还需要覆盖
ibdata1
,ib_logfile0
,ib_logfile1
对应文件之前服务: innodb_file_per_table=0
仅需要用已备份的 .frm 和 .ibd 文件覆盖需要被还原的表