Что я могу сделать с поврежденной БД в формате InnoDB в этом случае?
Ребята ,
У меня большие проблемы. Есть один сервер с базой данных CRM. Я испортил это, вероятно, и не знаю, что делать.
ls /var/lib/mysql/sugarcrm/
accounts_audit.frm address_book.ibd contacts_audit.frm emails_email_addr_rel.ibd mkt_marketiery_accounts_c.frm pm_processmanagerstagetask.frm quotes.frm uni_webinars.frm
accounts_audit.ibd bugs_audit.frm
И т. Д. Когда я пытаюсь посмотреть или внести изменения, я получаю
mysql> select * from vcals limit 1;
ERROR 1146 (42S02): Table 'sugarcrm.vcals' doesn't exist
mysqld.log:
130515 11: 34: 02130515 11:34:02 [ОШИБКА] Не удается найти таблицу sugarcrm/vcals из словаря внутренних данных InnoDB, хотя файл.frm для таблицы существует. Может быть, вы удалили и заново создали файлы данных InnoDB, но забыли удалить соответствующие файлы.frm таблиц InnoDB, или вы переместили файлы.frm в другую базу данных? См. http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html, как вы можете решить проблему.
Проблема в том, что у меня нет файлов.ibd, только.frm. Также у меня нет полной резервной копии.sql файла БД. Теперь я импортировал.sql с даты 9 мая, которая так давно.:(Я знаю, что.frm не содержит данных, только структуру.
Вопрос: можно ли как-то починить или эта копия БД не поддается ремонту? В общем, какие способы можно использовать для восстановления БД, если бы у меня были файлы.ibd? В моем случае резервное копирование 9 мая - лучший вариант, я полагаю. У меня нет выхода, не так ли?
Благодарю.
1 ответ
Прежде всего, если файлы не существуют, проверьте системные журналы на наличие ошибок файловой системы / диска, поскольку это очень странный случай.
После этого проверьте файловую систему (остановите mysql, umount и fsck -f), посмотрите, есть ли ошибки, и fsck может их исправить.
Если эти шаги не решают вашу проблему, вы можете проверить двоичные файлы журналов, возможно, они старше, чем 9 мая, и вы можете восстановить резервное копирование двоичного журнала после этого.