硬盘故障使我试图从“数据”文件夹的副本中恢复mysql,我已经转储了“大部分”内容,但缺少一些数据文件夹有idbdata1 / log文件/ .frm文件的文件夹,因此,我已经阅读了很多关于这方面的内容,并尝试了很多事情(见下文),但无法启动服务-是一个使用mysql 5.5的windows用户。
1)使用innodb_force_recovery =6的所有原始日志文件启动服务
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删除日志文件启动服务
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个月前找到了另一个“数据”文件夹--可以用它启动服务,但是会出现错误。
Cannot find table xxx from the internal data dictionary of innodb
though the .frm table exists etc...对于所有无害的am表-现在正在googling解决方案。
发布于 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可能是最好的计划。
https://serverfault.com/questions/543057
复制相似问题