日期:2014-05-16  浏览次数:20355 次

Percona Data Recovery Tool for InnoDB工具恢复单表的案例
今天上班有个朋友询问我,相关Percona Data Recovery Tool for InnoDB恢复数据中的一些问题,比如说delete,没法恢复数据,原先做过类似的异常处理就,再次模拟了下相关的恢复操作流程,仅供学习使用;相关的配置工具策略网上很多,这里我就一笔带过了,不再进行详述,下面就开始梳理相关的细节问题;

[root@Mysql64 local]# mysql -uroot -proot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 5.5.28-log Source distribution


Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql> create database gg;
ERROR 1007 (HY000): Can't create database 'gg'; database exists
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| cacti              | 
| gg                 | 
| mysql              | 
| performance_schema | 
| temp               | 
| test               | 
+--------------------+
7 rows in set (0.12 sec)


mysql> use gg;
Database changed
mysql> show tables;
Empty set (0.00 sec)


mysql> create table a select * from mysql.user;
Query OK, 12 rows affected (0.17 sec)
Records: 12  Duplicates: 0  Warnings: 0
mysql> delete from a;
Query OK, 12 rows affected (0.12 sec)


mysql> select * from a;
Empty set (0.00 sec)


mysql> 
[root@Mysql64 percona-data-recovery-tool-for-innodb-0.5]# ./page_parser -5 -f /usr/local/mysql/data/gg/a.ibd 
Opening file: /usr/local/mysql/data/gg/a.ibd:
64768           ID of device containing file
5836121         inode number
33200           protection
1               number of hard links
500             user ID of owner
500             group ID of owner
0               device ID (if special file)
98304           total size, in bytes
4096            blocksize for filesystem I/O
200             number of blocks allocated
1377829472      time of last access
1377831011      time of last modification
1377831011      time of last status change
98304   Size to process in bytes
104857600       Disk cache size in bytes
[root@Mysql64 percona-data-recovery-tool-for-innodb-0.5]#
./create_defs.pl --host=localhost --user=root --password=root --db=gg --table=a  > include/table_defs.h
[root@Mysql64 percona-data-recovery-tool-for-innodb-0.5]# cat include/table_defs.h
                                        can_be_null: FALSE,
                                        uint_min_val: 0,
                                        uint_max_val: 4294967295ULL
                                },


                                can_be_null: FALSE
                        },
      &nb