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

  • 时间:
  • 浏览:0
  • 来源:神彩快3_彩神快3官方

二.解析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解溶解来八个文件(161为主键索引的index_id,325,463,464,465为二级索引的index_id,该id还时要通过开启innodb_table_monitor知晓)

昨晚收到一则求助,三个 用户的本地数据库的重要数据可能性误操作被删除,时要进行紧急恢复,用户的数据库日常并没办法 进行过任何备份,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

四.现在现在开使恢复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);

三.生成表定义:

可能性该工具在解析数据pages的并且 ,时要获得该table的表价值形式定义,没办法 来很多没办法 来很多没办法 来很多没办法 来很多时要执行如下命令:

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

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

.make

/tmp/t_bibasic_salessend.sql 该文件没办法 来很多没办法 来很多没办法 来很多没办法 来很多大伙儿时要load data的文本文件;

总结:

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

2)。数据被误删除后,时要尽快将保护现场,停止数据库,把idb文件拷贝出来,处置ibd文件写入数据被覆盖(笔者恢复的三个 表中,可能性数据删除后,表中仍有几瓶写入,愿因分析大每段数据没办法 恢复出来);

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