内网某innodb表损坏,需要重建。直接drop掉文件后,发现建表的时候死活报表已经存在的错误。
重启后,拷贝文件至数据目录;建表又报错,提示表不存在!innodb无法动态加载frm中的文件信息,共享表空间的数据字典中,已经没有该表存在,直接拷贝文件是不会被识别的!
可以在在错误日志中找到如下信息:
1
2014-03-10 01:33:05 6554 [Warning] InnoDB: Cannot open table banggood_work/edm_email_blacklist from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
删除frm文件,使用建表sql,执行,仍然报错,表不存在。
突然想到,可能在innodb某些地方缓存了该表的信息,直接建表会导致命中该缓存信息!刷新一下表缓存。
1
flush tables t1;
再次建表成功!再从备份中恢复数据!
阅读(3030) | 评论(0) | 转发(0) |