昨晚收到一则求助,一个用户的本地数据库的重要数据由于误操作被删除,需要进行紧急恢复,用户的数据库日常并没有进行过任何备份,binlog也没有开启,所以从备份和binlog入手已经成为不可能,咨询了丁奇,发了一篇percona的文章给我,顿时感觉有希望,于是到percona的官网上下载了恢复工具:

一.安装:

.tar -xvf percona-data-recovery-tool-for-innodb-0.5.tar.gz

.cd percona-data-recovery-tool-for-innodb-0/mysql-source/../configure

.cd percona-data-recovery-tool-for-innodb-0.make

二.解析ibd文件:

此过程会将表的idb文件解析为很多的page,innodb的page分为两大部分,一部分一级索引部分(primary key),另一部分为二级索引部分(secondary key),所以解析出来的idb包括了主键数据和索引数据两大部分(如果该表有多个二级索引,则会生成多个文件)

./page_parser -5 -f t_bibasic_storage.ibd

参数解释:

-5:代表 row format为Compact

-f:代表要解析的文件

结果如下:

pages-1377707810/FIL_PAGE_INDEX

0-161 0-325 0-463 0-464 0-465

可以看到t_bibasic_storage.ibd解析出来5个文件(161为主键索引的index_id,325,463,464,465为二级索引的index_id,该id可以通过开启innodb_table_monitor知晓)

三.生成表定义:

由于该工具在解析数据pages的时候,需要获得该table的表结构定义,所以需要执行如下命令:

./create_defs.pl –host xxxx –port 3306 –user root –password xxx –db didb –table t_bibasic_storage >include/table_defs.h

上面的命令会将t_bibasic_storage表的表结构定义传入到table_defs.h中,在生成了表结构定义后,重新make该恢复工具:

.make

四.开始恢复pages中删除的数据:

在重新编译工具后,执行如下命令:

./constraints_parser -5 -D -f pages-1377707810/FIL_PAGE_INDEX/0-161 >/tmp/t_bibasic_salessend.sql

参数:

-5 -f的参数和page_parser相同;

-D:该参数的含义为代表恢复删除的数据页;

恢复完成后生成如下语句和文件:

LOAD DATA INFILE ‘/tmp/t_bibasic_proinfo.dmp’ REPLACE INTO TABLE `t_bibasic_proinfo` FIELDS TERMINATED BY ‘\t’ OPTIONALLY ENCLOSED BY ‘”‘ LINES STARTING BY ‘t_bibasic_proinfo\t’ (id, procode, skuoid, skucode, skuname, catatt, dutydepoid, dutydepname, seasonatt, brandatt, prostatus, choosedate, syear, smonth, sday, created, unioncomcode);

/tmp/t_bibasic_salessend.sql 该文件就是我们需要load data的文本文件。

总结:

1)。该恢复工具只支持innodb存储引擎,文件的格式需要为:Compact

2)。数据被误删除后,需要尽快将保护现场,停止数据库,把idb文件拷贝出来,防止ibd文件写入数据被覆盖(笔者恢复的一个表中,由于数据删除后,表中仍有大量写入,导致大部分数据没有恢复出来);

3)。千叮嘱万嘱咐,数据库的备份重于泰山;

更多信息见:

BTW:

按照上面的方法进行还原,只还原出部分数据,不知道原因,环境和刷写机制相关,待确认!

mysql根据idb还原数据_转一篇文章:MySQL 通过idb文件恢复Innodb 数据相关推荐

  1. 向HBase中导入数据3:使用MapReduce从HDFS或本地文件中读取数据并写入HBase(增加使用Reduce批量插入)

    前面我们介绍了: 向HBase中导入数据1:查询Hive后写入 向HBase中导入数据2:使用MapReduce从HDFS或本地文件中读取数据并写入HBase(只使用Map逐条查询) 为了提高插入效率 ...

  2. 后台数据到mysql怎样保持实时更新_京东智联云MySQL数据库如何保障数据的可靠性?...

    MySQL作为当前最流行的关系型数据库,在各个行业的系统中扮演着最重要的角色.随着大家对数据价值认可的逐步加深,数据的可靠性是最常被问到的一个问题.MySQL是如何保证数据可靠性的?京东智联云RDS- ...

  3. mysql undrop_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据

    适用于: MySQL服务器版本4.1到5.6 [发行版4.1到5.6] 本文信息适用于所有平台. 目标 如何使用undrop for innodb从损坏的表中提取数据 解决方案 使用工具有时可能从无法 ...

  4. mysql数据库innodb恢复命令_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据

    适用于: MySQL服务器版本4.1到5.6 [发行版4.1到5.6] 本文信息适用于所有平台. 目标 如何使用undropforinnodb从损坏的表中提取数据 解决方案 使用工具有时可能从无法用i ...

  5. mysql innodb 从 ibd 文件恢复表数据

    最近内部的 mysql 数据库发生了一件奇怪的事,其中有一个表 users625 突然出现问题, 所有对它的操作都报错误 数据表不存在. mysql> select count(*) from ...

  6. 从mysql数据库中读取二进制文件_数据库技术之在MYSQL数据库中如何存取二进制文件...

    [数据库技术之在MYSQL数据库中如何存取二进制文件]在MySQL数据库中,不可以存放文字信息,还可以存放图片.声音.文件等二进制信息.那么在MYSQL数据库中中如何存取二进制文件?下面,武汉宏鹏鲁广 ...

  7. mysql什么隔离级别最好_面试必问的 Mysql 四种隔离级别,看完吊打面试官

    什么是事务 事务是应用程序中一系列严密的操做,全部操做必须成功完成,不然在每一个操做中所做的全部更改都会被撤消.也就是事务具备原子性,一个事务中的一系列的操做要么所有成功,要么一个都不作.sql 事务 ...

  8. mysql killed进程不结束_优秀的数据库产品——MySQL 云数据库服务

    作为一种低成本,高性能,高可靠性和开放源代码的数据库产品,MySQL已在Internet公司中广泛使用. 例如,淘宝有数千个MySQL服务器. 尽管NoSQL在过去两年中发展迅速,新产品层出不穷,但N ...

  9. mysql查询死锁的次数_一次神奇的MySQL死锁排查记录

    一次神奇的MySQL死锁排查记录 发布时间:2020-08-29 00:50:26 来源:脚本之家 阅读:135 作者:咖啡拿铁 背景 说起Mysql死锁,之前写过一次有关Mysql加锁的基本介绍,对 ...

  10. mysql 5.5.安装包_完美!阿里内部MySQL笔记爆火,肝完不再删库到跑路!(文档+视频贼全!)...

    MySQL凭借着它还不错的性能.还不错的稳定性常年稳居老二宝座,当然最大的优势就是它不要钱,还开源,这让它成为大部分中小型公司,尤其是互联网公司首选的数据库(近年来越来越多的大公司也在尝试将业务转移到 ...

最新文章

  1. python 地址模糊匹配_使用python处理selenium中的xpath定位元素的模糊匹配问题
  2. 常见Z纯CSS小样式合集(三角形)
  3. AtCoder Beginner Contest 072
  4. Hadoop应用实战100讲(二)-Hadoop常用命令汇总
  5. 《当程序员的那些狗日日子》(三十三)昙花一现
  6. python中的open函数
  7. linux开启内部路由转发功能
  8. mac 用户 文件夹 权限_这可能是 Mac 共享文件最详细的教程了
  9. 【数学基础】运筹学:拉格朗日乘子法和KKT条件(上)
  10. 使用JUnitParams进行参数化的JUnit测试
  11. js父元素获取子元素img_css,前端_父标签div中包含一个子元素img标签,子元素div标签,为什么img要加上浮动,子元素div才会处于正常位置?,css,前端 - phpStudy...
  12. 计算机专业指南作业6,计算机专业指南的学习心得体会
  13. Kafka的介绍之一
  14. webview 禁用横竖屏切换_X5内核WebView横屏切换崩溃
  15. 软件系统架构师大概工作过程
  16. 5.UML2 软件建模入门与提高 --- 类图
  17. 桥接模式 和 中继模式
  18. 中国海水产品加工行业发展现状及趋势分析,山东省产量最高「图」
  19. 亚马逊森林大火----- 我也来评论一下
  20. Spring Cloud Eureka 全解 (1) - 总览篇

热门文章

  1. java分布式框架-JDF
  2. ios审核要注意的地方(转)
  3. 我用前世的五百次回眸换今生与你一次擦肩而过
  4. 结巴分词--关键词抽取
  5. java线程游戏之随机小球游戏V2
  6. 附加支付和统筹支付_上海市医疗保险,请问账户支付和统筹支付是什...
  7. RedHat/CentOS 服务器 SSH 密钥交换实验(实现SSH密钥认证)
  8. 【小程序】用canvas 实现一个简易的移动端名片可编辑小程序
  9. php合成flv,用php将任何格式视频转为flv
  10. elasticsearch-01