2011-09-27 37 views
1

我遇到的MySQL的数据丢失,下面是步骤:恢复未连接的表从ibdata1中

1.I转换表-A从MyISAM的InnoDB的(与innodb_file_per_table OFF),看到了ibdata1中尺寸增大;

2.打开innodb_file_per_table;

3.将Table_A转换到MyISAM后面,ibdata1没有收缩;

4.将Table_A转换为InnoDB,得到Table_A.ibd文件;

现在我丢失了Table_A.ibd文件,并且想要从ibdata1文件中找回数据。

我关闭了innodb_file_per_table并尝试使用InnoDB格式创建相同的Table_A,它失败了,并告诉我TABLE_A已经存在,并且我无法从模式中找到该表。

我搜索了整个互联网,没有找到有用的东西,请帮忙!

回答

0

Goodle Percona数据恢复工具包。 您需要:

  1. 拆分ibdata1中为页(page_parser)
  2. 取从InnoDB的字典记录 - 表SYS_TABLES和SYS_INDEXES
  3. 从SYS_你的表
  4. 查找index_id的*表
  5. 获取来自网页记录用你的表的index_id(constraints_parser工具)。

UPDATE:数据恢复工具包移动到GitHub