guys,
I have a big problem. There is one server with CRM database. I corrupted it probably and don't know what to do.
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
And etc. When I try to watch or make changes I receive
mysql> select * from vcals limit 1;
ERROR 1146 (42S02): Table 'sugarcrm.vcals' doesn't exist
mysqld.log:
130515 11:34:02130515 11:34:02 [ERROR] Cannot find table sugarcrm/vcals from the internal data dictionary of InnoDB though the .frm file for the table exists. Maybe you have deleted and recreated InnoDB data files but have forgotten to delete the corresponding .frm files of InnoDB tables, or you have moved .frm files to another database? See http://dev.mysql.com/doc/refman/5.0/en/innodb-troubleshooting.html how you can resolve the problem.
Problem is that I haven't .ibd files, .frm only. Also I haven't full backup .sql file of DB. Now I imported .sql from 9 May date which is so long ago. :( I know .frm doesn't contents data, structure only.
Question is: can I repair somehow or this copy of DB is not repairable? In general, what ways can be use to repair DB if I would have .ibd files? In my case 9 May backup is the best variant I suppose. I have no exit, isn't it?
Thanks.
First of all If files doesn't exist check system logs for filesystem/disk errors, as it's very strange case.
After that check filesystem (stop mysql, umount and fsck -f) an see if are there errors and fsck is able to repair them.
If these steps doesn't solve your problem, you can check the binary log files, maybe it's older than may 9 and you can restore backcup an binary log after that.