首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ibdata/frm文件恢复mysql

从ibdata/frm文件恢复mysql
EN

Server Fault用户
提问于 2013-10-01 19:08:26
回答 1查看 2.3K关注 0票数 0

硬盘故障使我试图从“数据”文件夹的副本中恢复mysql,我已经转储了“大部分”内容,但缺少一些数据文件夹有idbdata1 / log文件/ .frm文件的文件夹,因此,我已经阅读了很多关于这方面的内容,并尝试了很多事情(见下文),但无法启动服务-是一个使用mysql 5.5的windows用户。

1)使用innodb_force_recovery =6的所有原始日志文件启动服务

代码语言:javascript
复制
RESULT: 
InnoDB: Error: log file .\ib_logfile0 is of different size 0 100663296 bytes
InnoDB: than specified in the .cnf file 0 178257920 bytes!

2)用innodb_force_recovery =6删除日志文件启动服务

代码语言:javascript
复制
RESULT:
InnoDB: Page directory corruption: infimum not pointed to
131001 19:54:14  InnoDB: Page dump in ascii and hex (16384 bytes):len 16384; hex 

3)尝试在http://www.chriscalender.com/?p=49上使用innodb恢复指令,但这是使用linux的,并且不会在我的windows安装程序上工作--尽管安装perl

我现在被困住了,准备打电话给Percona -有什么想法欢迎吗?

*编辑

在3个月前找到了另一个“数据”文件夹--可以用它启动服务,但是会出现错误。

代码语言:javascript
复制
Cannot find table xxx from the internal data dictionary of innodb 
though the .frm table exists etc...

对于所有无害的am表-现在正在googling解决方案。

EN

回答 1

Server Fault用户

回答已采纳

发布于 2013-10-02 01:19:20

所有由MySQL服务器生成和使用的文件-- ibdata1、ib_logfile*、.frm、.ibd等等--都应该在操作系统之间互换--我从经验中知道,它们在Solaris和Linux之间交换,但我尽可能远离Windows,所以我不能肯定地说.但是,一种选择可能是启动LinuxData5.5安装程序,然后停止它并将所有这些文件复制到linux机器上,而不是现有的‘MySQL’。

但是下一个适当的步骤也将在很大程度上取决于到底发生了什么.服务器是优雅地终止,还是反复崩溃?而且,这将取决于是哪个文件导致了问题。如果它只是一个表中的.ibd文件,那么将该文件重命名为.ibd以外的其他文件将允许MySQL跳过该表并转移到下一个表。

如果你没有使用innodb_file_per_table,那么你所有的鸡蛋都在一个非常脆弱的篮子里,ibdata1。

如果启用了二进制日志记录,并且只有稍微陈旧的备份,那么还可以在另一台机器上还原备份,并向前播放二进制日志以恢复其他数据。

根据系统管理专业知识的一般水平、缺乏备份的可用性以及数据的紧迫性和价值,调用Percona或SkySQL可能是最好的计划。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/543057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档