【问题标题】:Recover unconnected tables from ibdata1从 ibdata1 恢复未连接的表
【发布时间】:2011-11-26 01:42:14
【问题描述】:

我遇到mysql的数据丢失,以下是步骤:

1.我将 Table_A 从 MyISAM 转换为 InnoDB(innodb_file_per_table 关闭),看到 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 已经存在,我无法从架构中找到该表。

我已经搜索了整个互联网,但没有找到任何有用的信息,请帮助!

【问题讨论】:

    标签: mysql innodb recovery


    【解决方案1】:

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

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

    更新:数据恢复工具包移至GitHub

    【讨论】:

      猜你喜欢
      • 2013-02-24
      • 2018-03-06
      • 2019-07-17
      • 2018-11-16
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多