MySQL:使用常见的ibdata文件恢复1个InnoDB表

时间:2013-11-21 09:31:37

标签: mysql innodb database-backups database-restore

我有一台服务器,无意中丢弃了1个InnoDB表。我需要恢复此表的数据,而不回滚来自使用InnoDB的所有其他表的数据。我的最新备份是从大约24小时前开始的。有没有办法做到这一点?

编辑添加: 我应该指定:备份是磁带备份,它不是mysqldump文件。我所拥有的是24小时前的ibdata和其他mysql文件的副本。我确实找到了解决方案,见下文。

2 个答案:

答案 0 :(得分:1)

备份(通常)是简单的SQL代码。使用文本编辑器打开文件并获取所需的数据:)。

其他方法是恢复数据库本地,并只导出所需的表。

答案 1 :(得分:0)

这就是我最终做的事情:

  1. 关闭MySQL服务器。
  2. 制作/ var / lib / mysql的副本(tar -cpvzf mysql.tgz / var / lib / mysql)
  3. 从备份复制/ var / lib / mysql以替换当前的/ var / lib / mysql
  4. 打开MySQL服务器。
  5. 需要数据库的Mysqldump。
  6. 关闭MySQL服务器。
  7. 从我在第2步中创建的tgz文件中恢复/ var / lib / mysql
  8. 打开MySQL服务器。
  9. 从步骤5中创建的mysqldump文件插入所需数据库的数据。
  10. 希望这有助于任何人面临同样的困境!

    更多想法 我强烈建议在my.cnf中打开innodb_file_per_table = 1。 这应该在上面列表中的步骤8和9之间完成。