Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL InnoDB数据库恢复_Mysql_Backup_Innodb_Restore - Fatal编程技术网

MySQL InnoDB数据库恢复

MySQL InnoDB数据库恢复,mysql,backup,innodb,restore,Mysql,Backup,Innodb,Restore,我必须恢复MySQL 5.0中意外删除的数据库。通过检查备份文件,我似乎只有.FRM文件来保存数据库数据 有谁能告诉我,这是我从备份中执行数据库还原/导入所需的全部内容,还是我还需要其他文件才能完成此操作?。frm文件不是数据文件,它们只存储“数据字典信息”(请参阅)。InnoDB将其数据存储在ib_logfile*文件中。这正是执行备份/恢复所需的。有关更多详细信息,请参阅。哦,天哪。。。你有麻烦了。关闭数据库。备份innodb文件。祈祷你在删除数据库后什么也没做 Percona的家伙(包括M

我必须恢复MySQL 5.0中意外删除的数据库。通过检查备份文件,我似乎只有.FRM文件来保存数据库数据


有谁能告诉我,这是我从备份中执行数据库还原/导入所需的全部内容,还是我还需要其他文件才能完成此操作?

。frm文件不是数据文件,它们只存储“数据字典信息”(请参阅)。InnoDB将其数据存储在ib_logfile*文件中。这正是执行备份/恢复所需的。有关更多详细信息,请参阅。

哦,天哪。。。你有麻烦了。关闭数据库。备份innodb文件。祈祷你在删除数据库后什么也没做

Percona的家伙(包括MySQL性能博客的作者)应该能够帮助你:

如果你自己创业,带上这个

它的物流?您必须以这种方式读取每一页(Innodb中的计算机术语页…16k块)并重建数据。这是一项非常低级的工作(我们说的是打开你的十六进制编辑器,如果工具箱不能帮你计算字节数),如果你不是一名经验丰富的程序员,你会受到伤害。

恢复innodb: (假设您的数据文件夹是C:\ProgramData\MySQL\MySQL Server 5.5\data)

  • 将要还原的数据库(以数据库名称命名)的文件夹复制到C:\ProgramData\MySQL\MySQL Server 5.5\data
  • 将3个ibdata文件复制到数据文件夹ex.(C:\ProgramData\MySQL\MySQL Server 5.5\data)

  • 通过文件右键单击->属性,获取以MB为单位的_ib_logfile0的大小(它应该与_ib_logfile1相同)

  • 编辑innodb_log_file_size=343M的mysql配置文件(mysql\bin\my.ini),使其与IBMData文件的大小完全相同

  • mysqld--默认文件=mysql\bin\my.ini--独立--控制台 --innodb_force_recovery=6

  • 现在,您的数据应该回到数据库中。使用phpmysql或任何其他工具导出它们


  • 您可以在此处找到详细的解决方案:

    (葡萄牙语文章)

    除了标记innodb\u force\u recovery,我还找到了另一个解决方案:innodb\u file\u per\u table,它将innodb表拆分到每个文件中,就像MyISAM表一样


    在崩溃恢复中,您可能会丢失比单个文件中更少的数据ibdata1

    InnoDB除了需要*.frm文件外,还需要ibdata、ib_日志文件*和/或*.ibd文件。如果您只有ib_日志文件*和.frm文件(以及一个月前的备份),该怎么办?在那种情况下有机会恢复吗?或者您需要ibdata来恢复任何东西吗?对我来说不起作用-在phpMyAdmin中,我可以看到InnoDb表,但无法访问它们步骤3/4不确定它们是否做了任何事情。必须删除这些文件才能真正重新启动mysql。不确定第5步是什么。。。但是第1步、第2步、第5步和重新启动的mysql似乎都起作用了!正如@msponagle所说。我不能完成所有的步骤,但防御步骤1,2,也许3然后重新启动服务,如果它无法启动,尝试重新启动机器。这对我很管用。
    _ib_logfile0
    _ib_logfile1
    _ibdata1