Восстановить несвязанные таблицы из ibdata1 - PullRequest
1 голос
/ 27 сентября 2011

Я сталкиваюсь с потерей данных в MySQL, ниже приведены шаги:

1. Я преобразовал Table_A из MyISAM в InnoDB (с отключенной innodb_file_per_table), увидел, что размер ibdata1 увеличился;

2. Включено innodb_file_per_table;

3. Преобразование таблицы A в MyISAM обратно, ibdata1 не сжимается;

4. Преобразован Таблица_A в InnoDB, получил файл Table_A.ibd;

Теперь я потерял файл Table_A.ibd и хочу найти данные обратно из файла ibdata1.

Я выключаю innodb_file_per_table и пытаюсь создать ту же таблицу Table_A в формате InnoDB, она не работает, и сообщает, что TABLE_A уже существует, и я не могу найти таблицу из схемы.

Я искал весь интернет и не нашел ничего полезного, пожалуйста, помогите!

1 Ответ

0 голосов
/ 11 февраля 2014

Набор инструментов для восстановления данных Goodle Percona.Вам необходимо:

  1. Разделить ibdata1 на страницы (page_parser)
  2. Выбрать записи из словаря InnoDB - таблицы SYS_TABLES и SYS_INDEXES
  3. Найти index_id вашей таблицы из SYS_ *таблицы
  4. Извлечение записей со страниц с index_id вашей таблицы (инструмент constraints_parser).

ОБНОВЛЕНИЕ : набор инструментов для восстановления данных перемещен в GitHub

...