Mysql数据库恢复

Mysql数据库恢复

我的 mysql 备份每天凌晨 4 点运行,我的数据库在早上 7 点意外损坏。现在如何恢复凌晨 4 点至早上 7 点之间更新的数据

答案1

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

如果 innodb_file_per_table 处于 ON 状态

  • 使用 stream_parser 分割每个 ibd 文件
  • 获取具有最小 id 的 *.page 文件并使用 c_parser 获取记录。将输出保存到文件。

    ./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 处于关闭状态

  • 恢复InnoDB 字典

  • 从字典中获取 mytable 的 index_id 并运行 c_parser,如上例所示。

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

      mysql db < dumps/default/mytable.sql

相关内容