MySQL还原数据到任意时间点
实际项目中我们已经做了每日定时备份,这可以还原数据到备份时的状态。但是如果我们想要还原数据到任意两次备份中间的任意时间点,单纯使用备份文件就无法做到了,这需要借助mysql的binlog。
还原数据到任意时间点的主要思路:
1、通过备份文件还原数据
2、从binlog中筛选时间段内的日志,在新还原的数据上重放日志
操作:
1、还原备份文件(略)
2、筛选binlog时间段内日志并还原,示例:
#查看当前的binlog文件名 show master status; #时段内日志筛选 mysqlbinlog --no-defaults --start-datetime='2022-02-21 23:30:00' --stop-datetime='2022-02-22 14:48:17' /datadir/mysql-bin.000020 > /tmp/binlog.sql #还原 source /tmp/binlog.sql
以上命令,从binlog中获取了 2月21日23点30分 到 2月22日14点48分17秒之间 所有在数据库上执行的操作,并将其在目标库上重放。
(完毕)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!