【MySQL 5.7】通过frm和ibd文件恢复数据库

xixuefeng MySQL 2019-12-04 19:39:18 1,121 次浏览 , 【MySQL 5.7】通过frm和ibd文件恢复数据库已关闭评论

由于某种原因,源数据库(版本MySQL 5.7.19,操作系统CentOS 7)无法启动或者数据表无法访问。

实验:将源库中的某张表,在新的数据库中(版本MySQL 5.7.23,操作系统CentOS 7 )进行恢复。

首先明确一下,既然拥有了ibd文件,那么说明数据库采用的是独立表空间,即:

第一步:需要得到需要恢复表的表结构。如果有该表的建表脚本,那么跳过此步,直接创建即可。

假设,要恢复的表非常多,并且,没有准确的建表脚本,那么可以采用mysql的工具,在frm文件中挖掘表结构,工具安装如下:

第二步:生成建表脚本

第三步:创建表及进行表空间卸载

第四步:停服务,将ibd文件拷贝至新建的数据库所在目录中

第五步:启动数据库,装载表空间,完成恢复

总结:

整体恢复过程相对简单(虽然我写的比较啰嗦),总结一下几步:
1:确保有frm和ibd文件

2:最好有该表的建表脚本,如果实在没有,就利用工具挖掘frm文件获取建表脚本

3:建库建表

4:卸载表空间

5:关闭数据库,拷贝ibd文件。(理论上先进行锁表操作,再拷贝也可以,不用重启,声明:本人并没有做过测试)

6:启动数据库,装载表空间

回顶部