最近的服务器故障给我留下了一个完好无损的ibdata文件,但只有我的..frm目录的一半。我已经将所有这些复制到一个新的mysql安装中,并成功地恢复了我仍然拥有.frm文件的数据库。我的问题是-从ibdata文件中以某种方式重新生成.frm文件是可能的吗?或者以某种方式修改同一数据库的开发版本中的.frm文件,以便它们可以用于恢复?
遗憾的是,从备份中恢复并不是一个可行的选择。
编辑以澄清:我尝试使用本地生成的包含相同模式的.frm文件恢复数据库--即使在innodb_force_recovery = 1时也没有骰子。
发布于 2011-08-24 06:31:24
我从来没有这样做过,但你的问题与我使用的工具有关,所以我很好奇!看起来这是可能的,下面是一个例子:
http://www.chriscalender.com/?p=28
有时,当您只有.ibd文件时,您可能需要恢复一个表。在这种情况下,如果您试图将它加载到一个新实例中,您可能会遇到一些关于表id不匹配的错误。其实没有办法解决这个问题。但是,我已经找到了两种解决方案:注意:您将需要使用这些方法恢复每个表的.ibd文件和CREATE语句。
台阶本身有好几页长,所以我还没有把它们贴在这里。
另一篇相关文章:http://www.mysqlperformanceblog.com/2011/05/13/connecting-orphaned-ibd-files/
我很想知道这是否有效,看起来好像有很多人成功地使用了它。
https://serverfault.com/questions/168989
复制相似问题