如何恢复没有ibdata1和*的innodb表.炎症性肠病的文件



由于某些原因,这些文件ibdata1, ib_logfil0, ib_logfile1被从硬盘上删除,mysql服务器重新启动,当然其中一个数据库停止了错误"db "。表不存在!"是否有可能以某种方式恢复这些文件,如果只有*. from, db. .选择文件?

谢谢。

尽快获取磁盘映像或将MySQL分区挂载为只读(如果它不在/上)

然后你需要编译数据恢复工具包(安装依赖,如果"make"失败):

  make 

然后用page_parser扫描磁盘映像。它将查找InnoDB页面,并根据页面类型(每个index_id)对它们进行排序。

  ./page_parser -f /path/to/disk.img

然后需要表结构(要么从旧的备份中获取它们,要么从.frm中恢复)。你需要这个结构来编译constraints_parser——一个从InnoDB页面获取记录的工具。

  ./constraints_parser -5f pages-XXXXXX/FIL_PAGE_INDEX/0-x/

将输出保存在某个文件中。它还将生成LOAD DATA,以便将转储文件上传到MySQL。查看Percona网站上的文档了解更多详细信息。

根据我的经验,在这种事故发生后,70-80%的数据应该是可以恢复的。

最新更新