MySQL通过binlog恢复误删数据

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

MySQL通过binlog恢复误删数据

背景:binlog记录数据库所有的DDL和DML语句,当误删除数据时可以通过binlog找回,不过当binlog超过过期时间则无法再找回过期时间前的日志。


1.binlog存放位置:show variables like "%log_bin_basename%";

2.binlog过期时间:show variables like "%expire_logs_days%"; 


示例:

2021-07-10 03:34:53时误删了数据,找到此时间段的binlog日志,将其放到tmp目录下/tmp/mysql_bin_39998.000682,将此时间区间(时间范围可以自定义,2021-07-10 03:34:47到021-07-10 03:35:00)执行过的sql语句生成到/tmp/binlog1.sql里,然后在生成的binlog1.sql文件里找到当时的删除记录,再手工转换为insert语句补回数据。

(注: 时间区间越精确、越小越好,生成的sql文件会很有几十M到几百M不等)


/usr/local/mysql/bin/mysqlbinlog --no-defaults  --base64-output=decode-rows   -d 库名 /tmp/mysql_bin_39998.000682  -v --start-datetime='2021-07-10 03:34:47' --stop-datetime='2021-07-10 03:35:00'> /tmp/binlog1.sql


MySQL通过binlog恢复误删数据

背景:binlog记录数据库所有的DDL和DML语句,当误删除数据时可以通过binlog找回,不过当binlog超过过期时间则无法再找回过期时间前的日志。...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息