Из-за сбоя жесткого диска я пытался восстановить mysql из копии папки «data». У меня были дампы «большей части» содержимого, но мне не хватает какой-то папки Data, в которой есть idbdata1 / файлы журнала / папки файлов .frm Итак, я много читал о это и пробовал много вещей (см. ниже), но не могу запустить службу - я пользователь Windows с mysql 5.5
1) запустить службу со всеми исходными файлами журнала с innodb_force_recovery = 6
RESULT:
InnoDB: Error: log file .\ib_logfile0 is of different size 0 100663296 bytes
InnoDB: than specified in the .cnf file 0 178257920 bytes!
2) удаленные файлы журнала запускают службу с innodb_force_recovery = 6
RESULT:
InnoDB: Page directory corruption: infimum not pointed to
131001 19:54:14 InnoDB: Page dump in ascii and hex (16384 bytes):len 16384; hex
3) пытался использовать инструкции по восстановлению innodb на http://www.chriscalender.com/?p=49 но это использует Linux и не будет работать с моей настройкой Windows - несмотря на установку perl
я сейчас застрял и собираюсь позвонить в Percona - любые идеи приветствуются ???
***РЕДАКТИРОВАТЬ
Нашли еще одну папку с "данными" за 3 месяца назад. Можно запустить службу с этим, но получаются ошибки.
Cannot find table xxx from the internal data dictionary of innodb
though the .frm table exists etc...
для всех таблиц innodb - сейчас я ищу решения в Google
Все файлы, созданные и используемые сервером MySQL - ibdata1, ib_logfile *, .frm, .ibd и т. Д., Должны быть взаимозаменяемыми между операционными системами - я знаю по опыту, что они обмениваются между Solaris и Linux, но я остаюсь таким же далеко от Windows, как я обычно могу, поэтому я не могу сказать это наверняка ... но один из вариантов может заключаться в том, чтобы запустить рабочую установку Linux MySQL 5.5, а затем остановить ее и скопировать все эти файлы в Linux machine вместо существующего datadir.
Но следующий подходящий шаг также будет сильно зависеть от того, что именно происходит ... корректно ли завершается сервер или он постоянно дает сбой? И это будет зависеть от того, какой файл вызывает проблему. Если это файл .ibd только из одной таблицы, то переименование этого файла во что-то другое, кроме .ibd, должно позволить MySQL пропустить этот файл и перейти к следующему.
Если бы вы не использовали innodb_file_per_table
тогда все ваши яйца будут в одной потенциально деликатной корзине ibdata1.
Если у вас включено двоичное ведение журнала и есть только слегка устаревшая резервная копия, есть также возможность восстановить резервную копию на другом компьютере и воспроизвести двоичные журналы для восстановления дополнительных данных.
В зависимости от вашего общего уровня знаний системного администрирования, отсутствия резервных копий, а также срочности и ценности данных, вызов Percona или SkySQL может быть лучшим планом.