Я недавно удалил строки из таблицы innodb, которые мне теперь нужно восстановить!
Таблица имеет следующую структуру:
CREATE TABLE `myDatabase`.`myTable` (
`file_id` int(11) NOT NULL,
`chunk_id` int(11) NOT NULL,
`filedata` longblob,
PRIMARY KEY `PRIMARY` (`file_id`,`chunk_id`)
) ENGINE=InnoDB;
У меня есть 2 резервные копии, доступные мне;
необработанный файл IBD (2,2 ГБ) и соответствующий ему файл .frm.Файл ib_log сервера занимает всего 48 МБ, поэтому я предполагаю, что вся необходимая информация находится в файле IBD.
Я попытался создать новый экземпляр mysql, создать таблицу с такими же столбцами, отброситьзатем табличное пространство перезаписывает файл .idb с копией 2,2 ГБ, однако, когда я пытаюсь выполнить команду «ИМПОРТ табличного пространства», я получаю следующую ошибку:
ERROR 1815 (HY000): Internal error: Cannot reset LSNs in table `myDatabase`.`myTable` : Data structure corruption
Я не уверен, где я могу восстановить таблицус этой ошибкой - в моих исследованиях, похоже, об этом ничего особенного нет.
У меня есть еще одна резервная копия, она была сделана с использованием mysqldump, однако Powershell был использован для создания резервной копии, что привело крезервная копия UTF-16 LE, а не UTF-8 (mysqldump выводит UTF-8, но Powershell преобразует в UTF-16 LE при записи на диск).
При попытке импортировать этот файл SQL я получаюошибка "набор символов не поддерживается", поэтому я использовал Powershell для преобразования файла SQL в UTF-8 с помощью следующей команды:
Get-Content file.foo -Encoding Unicode | Set-Content -Encoding UTF8 newfile.foo
Хотя я могу импВ результирующей резервной копии SQL UTF-8 данные BLOB-объектов прерываются (хотя остальные столбцы file_id, chunk_id в порядке).Кажется, я не могу найти способ преобразовать резервную копию SQL UTF-16 в UTF-8, не повредив столбец BLOB-объектов, не уверен, что Powershell испортил столбец BLOB-объектов при преобразовании mysqldump UTF-8 в UTF-16.при записи на диск.
Представляется ли вероятным, что я смогу восстановить эту таблицу с помощью файла IDB или файла mysqldump UTF-16?
Спасибо, Джош