ребята,
У меня большая проблема. Есть один сервер с базой данных 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 мая - лучший вариант, я думаю. У меня нет выхода, не так ли?
Спасибо.
Прежде всего, если файлов не существует, проверьте системные журналы на наличие ошибок файловой системы / диска, так как это очень странный случай.
После этого проверьте файловую систему (остановите mysql, umount и fsck -f), посмотрите, есть ли ошибки, и fsck может их исправить.
Если эти шаги не решают вашу проблему, вы можете проверить двоичные файлы журнала, возможно, они старше 9 мая, и после этого вы можете восстановить резервную копию двоичного журнала.