`

(转)使用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)。千叮嘱万嘱咐,数据库的备份重于泰山;
分享到:
评论

相关推荐

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

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

    mysql innodb恢复数据工具.rar

    这是我从网上找到的mysql/mariadb对innodb表进行数据恢复的工具,实现从innodb的数据库文件中恢复数据,用于实现下面情况:1、直接下载了innodb数据库的文件,而不是导出其数据,想恢复数据时(需要有完整的文件,...

    MySQL单表ibd文件恢复方法详解

    总的来说,MySQL单表ibd文件恢复涉及对InnoDB存储引擎的理解,以及熟练掌握备份工具如innobackupex和Percona Data Recovery Tool的使用。在实际操作中,应结合具体情况选择合适的恢复方案,并在必要时咨询专业人士以...

    利用 Percona xtrbackup+binlog做完全恢复.docx

    Percona Xtrabackup+Binlog 完全恢复技术 Percona Xtrabackup 是一种热备工具,能在线对 MySQL 数据库进行全量备份和增量...使用 Percona Xtrabackup 和 Binlog,可以快速恢复数据库到故障时刻,减少数据丢失的风险。

    Percona Monitoring Plugins for Zabbix 使用手册

    Percona Monitoring Plugins for Zabbix 使用手册

    《MYSQL备份与恢复》之 Innodb与 MyISAM引擎

    它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-recovery,使得数据恢复一致。  InnoDB维护了一个redo log,又称为transaction log,事务日志,它包含了innodb数据的...

    Percona-Server-for-MySQL-5.7.18-15

    ### Percona Server for MySQL 5.7.18-15 知识点解析 #### 一、引言 Percona Server for MySQL 是一个增强版的 MySQL 替代方案,旨在提供更高的性能、可扩展性及可靠性。它适用于对数据库性能有极高要求的企业级...

    zabbix3.4_percona_templates_for_mysql.xml

    "zabbix3.4_percona_templates_for_mysql.xml"是专为Zabbix 3.4设计的Percona MySQL监控模板,包含了一系列预定义的监控项、触发器、图形和应用,用于监测Percona MySQL服务器的关键性能指标,如CPU使用率、内存消耗...

    percona XtraBackup2.4.28

    对于支持备份锁的环境,Percona XtraBackup会先备份InnoDB数据,然后应用`LOCK TABLES FOR BACKUP`,复制MyISAM表和其他相关文件。备份过程中,所有必要的文件如.frm、.MRG、.MYD、.MYI、.TRG、.TRN、.ARM、.ARZ、....

    innodb_force_recovery.zip

    使用`innodb_force_recovery`,尤其是级别2和3,可能能帮助读取`t1-损坏.ibd`中的一些可恢复数据。 总的来说,处理InnoDB文件损坏时,理解并正确使用`innodb_force_recovery`至关重要。不过,这种操作具有一定的...

    percona-xtrabackup

    Percona Xtrabackup就是这样一款强大的开源工具,专为MySQL数据库设计,提供高效、可靠的数据备份与恢复功能,尤其在热备份场景下表现卓越。 Percona Xtrabackup是由Percona公司开发的,它是一款开源、免费的热备份...

    11.5: percona软件介绍 、 innobackupex备份与恢复 、 总结和答疑.docx

    最后,我们需要搭建新的数据库服务器,并使用备份文件恢复数据。 案例2:恢复单张表 在本案例中,我们将使用innobackupex命令来恢复单张表。 步骤一:备份单张表 首先,我们需要备份单张表,使用以下命令: ...

    Percona XtraBackup 8.0.13 文档

    这一点是用户在备份时需要考虑的,特别是当他们使用的是Percona Server for MySQL或者Percona XtraDB Cluster时。 对于MySQL 8.0之前版本的数据库备份,Percona XtraBackup 8.0并不支持,原因在于MySQL 8.0在数据...

    mysql 5.7 Percona Server

    - **Point-in-Time Recovery (PITR)**:支持精确到时间点的恢复,增强了灾难恢复能力。 4. **高可用性与扩展性**: - **Multi-threaded Slave**:改进了复制机制,支持多个线程并行处理二进制日志,加快了数据...

    percona-xtrabackup mysql备份工具

    Percona XtraBackup是MySQL数据库管理系统的一个重要工具,专门用于高效、无损的数据备份。它在MySQL社区中广受欢迎,特别是在需要对InnoDB存储引擎进行热备份的场景下。这款工具的独特之处在于它可以在不中断服务的...

    percona-xtrabackup-2.0.0

    同时,应定期测试备份恢复流程,确保在真正需要时能够顺利恢复数据。 总结起来,Percona Xtrabackup 2.0.0是MySQL备份的利器,它的热备份、增量备份、压缩和恢复等功能为数据库管理员提供了强大的保障。对于任何...

    Zabbix结合插件percona监控Mysql数据模板

    在Zabbix中,Percona插件可以收集MySQL的关键性能指标,例如查询执行时间、缓存命中率、InnoDB锁等待等,这些数据对于优化数据库性能至关重要。 导入模板文件`zbx_export_templates.xml`是整个过程的第一步。这个...

    Mysql innodb tablespace 表空间实践

    - **关键参数**:`innodb_data_file_path`用于设置InnoDB数据文件的位置和大小。 - **示例设置**:`innodb_data_file_path=ibdata1:128M;ibdata2:10M:autoextend` - `ibdata1:128M`表示第一个数据文件ibdata1的...

    MYSQL percona server manual

    - 性能改进:Percona Server针对性能的提升有很多改善,包括但不限于查询执行速度的提升和稳定性改进,帮助客户在不需要切分数据(sharding)的情况下,或至少延迟切分数据的到来,这在高性能硬件上尤其重要。...

Global site tag (gtag.js) - Google Analytics