由于某些原因,这些文件ibdata1,ib_logfile0,ib_logfile1已从硬盘驱动器中删除,mysql服务器已重新启动,当然其中一个数据库停止了错误" db.table不存在!"。如果只有* .frm,db.opt文件,可以以某种方式恢复这些文件吗?
感谢。
答案 0 :(得分:1)
尽快获取磁盘映像或以只读方式挂载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
到stderr以将转储上传回MySQL。
有关详细信息,请查看Percona网站上的文档。
根据我的经验,在此类事故发生后,70-80 %%的数据应该可以恢复。