Chinaunix首页 | 论坛 | 博客
  • 博客访问: 297408
  • 博文数量: 57
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1474
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-25 10:56
文章分类
文章存档

2014年(25)

2013年(32)

分类: 网络与安全

2014-03-10 17:22:06

内网某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;

再次建表成功!再从备份中恢复数据!
阅读(3039) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~