我们最近在一台linux机器(Fedora 5)上遭遇了相当严重的服务器崩溃,导致大量数据损坏,不幸的是mysql数据库是丢失的数据之一。当我们能够启动服务器时,mysql仍然拒绝加载。服务器在启动时仍然会产生很多错误,所以我创建了一个新服务器(Ubuntu8.10),并将mysql目录复制到这个位置--但是mysql仍然不会启动。
附加的是运行mysqld --verbose时显示的错误转储,并带有innodb_force_recovery=6选项。
有时,在运行此检查时,它将通过正常检查,而其他时候则会失败。
我已经找到了很多关于如何从崩溃中恢复的文章,但都假设您实际上可以让mysql启动--这里的情况并非如此。此外,我尝试了所有的innodb_force_recovery选项,从1-8,其中没有一个允许mysql启动。
有人能建议如何恢复数据吗?如果我浏览ibdata1文件,我可以看到大多数数据(似乎少了几行)。是否有任何工具可以读取ibdata1文件并逐行提取数据?
所有的帮助非常感谢-因为我开始失败我的理智检查!
发布于 2016-06-21 18:55:53
有人能建议如何恢复数据吗?如果我浏览ibdata1文件,我可以看到大多数数据(似乎少了几行)。是否有任何工具可以读取ibdata1文件并逐行提取数据?
请不要这样做..。您可能最终会损坏无害的数据文件。
最好按照错误日志上的话去做。
请阅读http://dev.mysql.com/doc/mysql/en/using-stack-trace.html并遵循如何解决堆栈跟踪的说明。解决堆栈跟踪更有助于诊断问题,因此请解决它
只需按照链接中提供的步骤操作即可。一旦堆栈跟踪问题得到解决,您将得到问题的确切原因和解决方案。
发布于 2016-06-25 20:20:18
尽你所能。确保您只在只读模式下工作。您不想进一步破坏数据。
从这里开始:Percona数据恢复
您将希望处理自崩溃以来更改最少的数据文件的副本。你将需要编程技能,如果你没有他们,那么请一个程序员。
您需要构建Percona的恢复工具,并让它们专门针对正在恢复的数据的结构进行定制。在这里,您将从编程概念中受益,因为您将修改一些c代码。使用现有的.frm文件获取结构。
前提是要将数据块从数据文件中提取到磁盘,然后创建cookie刀具工具,通过数据块运行并导出数据。
去年,我经历了一次严重的崩溃,当时同事们忽略了监视警报,一台DB服务器耗尽了磁盘空间。花了大约一天的时间来制定一个计划+准备工具,到了周末,我们已经有超过1000个数据库回到了网上。唯一无法恢复的数据是在具有极高写活动的表中。
https://dba.stackexchange.com/questions/141044
复制相似问题