MYSQL .ibd文件数据恢复

恢复还原mysql中的.ibd文件。
1、需先创建一个一样的数据库表结构
2、删除表空间
ALTER TABLE "+dbName+" DISCARD TABLESPACE;
3、复制xxxxx.ibd文件到数据库目录下

4、恢复导入表空间
ALTER TABLE "+dbName+" IMPORT TABLESPACE;

--------恢复frm表结构------`切记:一定要按照顺序操作,否则库会死掉,要重新安装重新来一波`------------------

1、正常mysql服务中创建同样的表名,字段随意1个,表名必须与.frm完全一致
create table app_info(id int);

2、停止数据库服务my.ini中追加
【mysqld】
innodb_force_recovery=6
3、把*.frm进行物理覆盖
4、启动服务执行
desc app_info报错,找到.err文件中的真实列数(我的事例中可以看出是7列)

5、停止服务,去掉my.ini中的innodb_force_recovery=6,再启动服务,删除数据表。
删除后创建对应的列数表
create table app_info(id1 int,id2 int,id3 int,id4 int,id5 int,id6 int,id7 int);

6、重复2、3步骤
服务启动后执行desc即可看到完整的表结构

然后选中表右键“对象信息”可以看到DLL

7、再次停止服务,去掉my.ini中的innodb_force_recovery=6,再启动服务,删除数据表,指定获取的真实dll即可还原表结构

原文地址:https://blog.51cto.com/xuanxy/2461614

时间: 2024-10-10 21:10:16

MYSQL .ibd文件数据恢复的相关文章

硬盘空间满导致mysql ibd文件被删后提示Tablespace is missing for table 'db_rsk/XXX"

昨天一早,开发人员反馈说一个测试环境报Tablespace is missing for table 'db_rsk/XXX",周末刚升级过,特地让开发回去查了下,说脚本中肯定没有drop table的操作.datadir下检查了下,发现frm文件在的ibd文件没有了,bing了下,没发现类似异常.于是先回到mysql.err往回搜索,半天后发现上周五下午mysql出现了一次异常宕机,说是磁盘空间不足了,看日志该文件被损坏了,如下: 2016-11-12 11:31:00 28443 [ERRO

Mysql ibd文件恢复指南

背景 mysql在使用的过程中,难免遇到数据库表误操作,基于此,作者亲力亲为,对mysql数据表ibd文件的恢复做以下详细的说明,对开发或者初级dba提供一定的指导作用,博客中如若存在相关问题,请指明,相互学习,共同进步. 恢复说明 创建数据库(随意创建),create database yygk 创建数据表           备注:row_format要和ibd文件的row_format一致,否则,会提示两者不一致. 当前row_format=dynamic 表的属性查看      我们使用

MySQL借助ibd文件恢复数据技巧?

磁盘坏道.断电等意外不是常态,但遇上了就足够你"惊心动魄"!如果是数据库损坏造成的数据丢失,Binlog也不可用了,怎么办?为了在短时间内无损恢复数据以保证业务稳定性,除了利用binlog,我们还修炼了一招新的恢复技能! 还记得我们之前写过的<只需一招,让失控的研发爱上你>吗?前文提到过我们日常使用的比较多的两种数据库恢复方法是: 以上两种方法都可以实现实时性的回档,但是你会认为有了这两种技能就够了吗? 不-.! 在线上这种错综复杂的架构中,其实还有很多未知的原因,我们是没

MySQL表结构为InnoDB类型从ibd文件恢复数据

客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=

亲测Mysql表结构为InnoDB类型从ibd文件恢复数据

客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=

亲測Mysql表结构为InnoDB类型从ibd文件恢复数据

客户的机器系统异常关机,重新启动后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,仅仅能想办法从数据库文件其中恢复,查找资料,试验各种方法,确认以下步骤可行: 一.找回表结构.假设表结构没有丢失直接到下一步 a.先创建一个数据库.这个数据库必须是没有表和不论什么操作的. b.创建一个表结构.和要恢复的表名是一样的. 表里的字段无所谓. 一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20))

MySQL 8.0 恢复孤立文件每表ibd文件

此过程描述如何将每个文件的 orphan 文件还原 .ibd到另一个MySQL实例.如果系统表空间丢失或不可恢复,并且您希望.idb 在新的MySQL实例上恢复文件备份,则可以使用此过程. 一般表空间 .ibd文件 不支持该过程 . 该过程假定您只有 .ibd文件备份,您正在恢复到最初创建孤立.idb文件的相同版本的MySQL ,并且该 .idb文件备份是干净的.有关创建干净备份的信息,请参见 第15.8.1.3节"移动或复制InnoDB表". 第15.7.6节"将每个表的表

mysql物理文件组成

一:MySQL 与其他数据库比较 1)功能比较 作为一个成熟的数据库系统管理系统,现在已经具备通用数据库管理系统的相关功能 2)易用性比较 对于普通用户操作难度相对简单易用原则,从安装方面来说,MySQL安装包仅仅只有100MB左右,安装难易程度要比Oracl,数据库简单很多,不论是通过已经编译好的二进制分发包还是源码编译安装,都比较简单 3)性能比较 MySQL非常优异表现,而且其他商用的通用数据库系统中,只有Oracle数据库能相提并论. 4可靠性)MySQL数据库发展过程三个原则, 简单,

RDS中的.frm和.ibd文件转换为sql文件

--- 转自他人 mysql存储在磁盘中,各种天灾人祸都会导致数据丢失.大公司的时候我们常常需要做好数据冷热备,对于小公司来说要做好所有数据备份需要支出大量的成本,很多公司也是不现实的.万一还没有做好备份,数据被误删除了,或者ibdata损坏了怎么办呢?别担心,只要有部分的frm.ibd存在就可以恢复部分数据. 注意: 一.这个是对innodb的数据恢复.myisam不需要这么麻烦,只要数据文件存在直接复制过去就可以. 二.大家的mysql数据库必须是按表存放数据的,默认不是,但是大家生产肯定是