Mysql数据库还原

我的MySQL备份每天凌晨4点运行,无意中我的数据库在上午7点被损坏。 现在如何恢复在凌晨4点和7点之间更新的数据

  • 将你的原始datadir(Linux上默认的/ var / lib / mysql)复制到安全的地方。
  • 从上次备份还原数据库
  • 下载并编译恢复工具包

如果innodb_file_per_table为ON

  • 用stream_parser拆分每个ibd文件
  • 以最小的id采取* .page文件,并用c_parser提取logging。 将输出保存到文件。

    ./c_parser -f pages-mytable.ibd/FIL_PAGE_INDEX/<minimal id>.page \ -t path/to/create_statements/mytable.sql \ > dumps/default/mytable 2> dumps/default/mytable.sql 

如果innodb_file_per_table是closures的

  • 恢复InnoDB词典

  • 从字典中获取mytable的index_id,并像上面的例子那样运行c_parser。

    • 将dump / default / mytable.sql中的REPLACE更改为IGNORE
    • 加载转储

      MySQL的数据库<转储/默认/ mytable.sql