2011-09-27 62 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