美文网首页
MySql 利用frm与idb恢复数据

MySql 利用frm与idb恢复数据

作者: 0晨鹤0 | 来源:发表于2018-10-25 12:33 被阅读0次

    备份

    有时候服务器突发故障,平时运维不到位,还没来来得急备份服务就挂了,那么数据库怎么办呢?只能先备份下原始文件了。在 innodb 引擎中,每个库是一个文件夹,每个表都有一个 .frm.idb 文件。但是光备份这两个然后还原是不行的,因为需要 idb 文件中的 tablespace idibdata1 中的一致才可以。

    既然知道了原因那么也就有解决方案了,就是连同 ibdata1 文件一起备份。

    还原

    那么如何正确还原呢?

    为了能让 mysql 正确识别我们的表,需要将旧的 ibdata1 文件恢复。但同时又不能影响新的数据,因此先将现在的 ibdata1 文件再次备份。

    然后就可以还原 frmidb 以及 ibdata1 了。为了保险起见重启下数据库:

    service mysql restart
    

    这时候就发现数据都已经恢复过来了。那么就赶紧转储吧:

    mysqldump -u[用户名] [数据库名] > [文件名]
    
    mysqldump -u root demo > demo.sql
    

    现在我们已经拿到了 sql 文件,之前恢复的数据可以删除了,最后再把 ibdata1 恢复回来。现在新创建一个库,导入 .sql 即可~

    注意下文件权限问题。如果数据库用的是单独用户,恢复的备份文件可能需要 chown 改变一下用户组。否则 MySql 会无法启动,具体可以看错误日志。

    相关文章

      网友评论

          本文标题:MySql 利用frm与idb恢复数据

          本文链接:https://www.haomeiwen.com/subject/cxbqtqtx.html