V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
xfack
V2EX  ›  问与答

InnoDB 数据库如何恢复

  •  
  •   xfack · 2015-05-26 16:57:29 +08:00 · 2645 次点击
    这是一个创建于 3251 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因自己本想格式化自己数据库,无奈格错了朋友的数据库,还好朋友数据他有备份,但是备份文件里只有.frm和.ibd的文件,还有一个opt的文件.上网查了下,idb后缀的文件是innodb的,故请教怎么恢复innodb的数据文件,里面的不知道有什么字段,因为不是自己设计的表,

    也百度过,都说用percona data recover tool这个工具,但是没有成功,

    win下不知道有没有工具?

    11 条回复    2015-05-28 13:12:37 +08:00
    lyragosa
        1
    lyragosa  
       2015-05-26 17:07:17 +08:00
    innodb如果只有“数据库文件”的备份,估计有点麻烦。

    innodb因为其特殊的格式,使得完美备份方法只有
    - mysqldump 不用说
    - binlog回滚
    - 主从

    单纯备份/var/mysql 下的文件会作死……我就作死过一次……
    billlee
        2
    billlee  
       2015-05-26 17:20:27 +08:00
    有 idb 和 frm 应该就可以了,<表名>.idb 是表数据,<表名>.frm 是表结构,db.opt 是数据库级别的一些额外的选项(比如默认字符集)
    恢复后把这些文件放回 /var/lib/mysql/<数据库名>/ 下面应该就可以了。
    xfack
        3
    xfack  
    OP
       2015-05-26 17:56:25 +08:00
    @lyragosa 还真的只是备份了mysql里的data文件,其他都没有了...
    xfack
        4
    xfack  
    OP
       2015-05-26 17:58:27 +08:00
    @billlee 这个办法试过了,数据库和表名是出现了,可是用navicat premium点击打开报错

    报错:

    1033 - Incorrect information in file '.\web\user.frm'
    billlee
        5
    billlee  
       2015-05-26 18:03:58 +08:00
    @xfack 如果能记得数据表结构,可以试试创建一个同样结构的表,然后关闭 mysql 服务器,用备份的 idb 替换掉新的 idb 文件。
    xfack
        6
    xfack  
    OP
       2015-05-26 18:11:53 +08:00
    @billlee 不记得表结构了,用mysql命令进行查看的时候,也是报刚才1033的错误.
    lyragosa
        7
    lyragosa  
       2015-05-26 18:37:41 +08:00
    @billlee 可能某些时候可以……但关键时候就会坑你了。
    我曾经试过直接把mysql下的data通盘拷贝到一台其他机器,结果所有innodb表直接挂掉
    所以最佳的备份办法永远是mysqldump 直接文本格式肯定没问题
    billlee
        8
    billlee  
       2015-05-26 20:58:59 +08:00
    @lyragosa mysqldump 的备份肯定是好的,但是现在楼主并没有这个备份。
    xfack
        9
    xfack  
    OP
       2015-05-27 09:20:47 +08:00
    @lyragosa T . T 我也想直接文本格式,有文本格式我就不用担心了,最起码能打开,现在是没有这文本格式.
    julyclyde
        10
    julyclyde  
       2015-05-27 15:23:31 +08:00
    @billlee 还有innodb log呢
    xfack
        11
    xfack  
    OP
       2015-05-28 13:12:37 +08:00
    @julyclyde 也没有...只有.frm和.idb
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2562 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 01:26 · PVG 09:26 · LAX 18:26 · JFK 21:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.