(转)使用Percona Data Recovery Tool for InnoDB恢复数据

http://hidba.org/?p=852

昨晚收到一则求助,一个用户的本地数据库的重要数据由于误操作被删除,需要进行紧急恢复,用户的数据库日常并没有进行过任何备份,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 60.216.75.45 –port 3306 –user root –password QWEhdysJSB20130413 –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)。千叮嘱万嘱咐,数据库的备份重于泰山;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
percona-data-recovery-tool-for-innodb-0.5是一个由Percona公司提供的针对InnoDB存储引擎的数据恢复工具。它可以帮助用户在数据丢失或者损坏时恢复InnoDB数据库。 它的主要功能包括以下几个方面: 1. 支持数据恢复:当InnoDB数据库出现故障时,如数据库文件损坏、误删除数据等情况,该工具可以帮助用户恢复损坏的数据。它可以读取InnoDB存储引擎的日志文件,通过分析日志,找到丢失的数据更新,然后恢复数据。 2. 支持错误检测:该工具可以扫描InnoDB存储引擎的数据文件,检测出潜在的错误或损坏的数据页。通过识别和修复这些问题,可以帮助保障数据库数据完整性和一致性。 3. 支持删选和修改数据:用户可以使用该工具针对InnoDB存储引擎中的数据进行删选和修改。通过设置过滤条件,用户可以选择指定类型的数据进行操作,如根据时间范围、特定字段的值等。 4. 支持日志文件处理:该工具可以解析和处理InnoDB存储引擎的日志文件,包括重做日志和撤销日志。用户可以使用它来查看、分析和恢复日志文件中的数据更新操作,以及进行相关的数据恢复操作。 总之,percona-data-recovery-tool-for-innodb-0.5是一款专门针对InnoDB存储引擎的数据恢复工具,它可以帮助用户在数据库出现故障时进行数据恢复,保障数据的完整性和可用性。这对于数据库管理员和开发者来说是非常重要的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值