我的 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 处于关闭状态
从字典中获取 mytable 的 index_id 并运行 c_parser,如上例所示。
- 将 dumps/default/mytable.sql 中的 REPLACE 更改为 IGNORE
加载转储
mysql db < dumps/default/mytable.sql