MySQL InnoDB数据库恢复
题
我必须恢复在MySQL 5.0中无意中DROPped的数据库。从检查备份文件开始,我似乎只有.FRM文件来保存数据库数据。
任何人都可以建议我是否需要从备份中执行数据库恢复/导入,还是需要其他文件才能完成此操作?
其他提示
恢复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)
_ib_logfile0 _ib_logfile1 _ibdata1
-
通过文件右键单击 - >获取以MB为单位的_ib_logfile0的大小(它应与_ib_logfile1相同)属性
-
将innodb_log_file_size = 343M的mysql配置文件(mysql \ bin \ my.ini)编辑为ibdata文件大小
-
运行
mysqld --defaults-file = mysql \ bin \ my.ini --standalone --console --innodb_force_recovery = 6
-
现在您的数据应该回到您的数据库中。使用phpmysql或任何其他工具
导出它们
醇>
哦,我...你遇到了麻烦。关闭数据库。备份innodb文件。祈祷你放弃数据库后没有做任何事情。
Percona的人员(包括MySQL性能博客的作者)应该能够帮助你: Percona紧急支持。
如果您自己冒险,请随身携带: Innodb的数据恢复工具包
物流呢?您必须阅读每个页面(计算机术语页面...在Innodb的情况下为16k块)并以此方式重建您的数据。这是非常低级的工作(我们正在谈论打开你的十六进制编辑器并开始计算字节,如果工具包没有为你做的话),如果你不是一个经验丰富的程序员,你将会受到伤害您可以在此处找到详细的解决方案:
http://www.unilogica.com/mysql-innodb-recovery/(葡萄牙语文章)
除了 innodb_force_recovery 的标志之外,我找到了另一个解决方案: innodb_file_per_table ,它会像MyISAM表一样拆分每个文件中的InnoDB表。
在崩溃恢复中,您可以丢失的数据少于单个文件 ibdata1 。