基于 时间/位置 恢复

最后更新于:2022-04-02 03:56:21

[TOC] ## 基于时间点的恢复 - 如果误删某张表,需要还原到误操作前,并跳过误操作操作,在恢复后面的语句 - 这种恢复叫不完全恢复 ``` > mysqlbinlog --stop-date="2017-09-30 9:59:59" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword > mysqlbinlog --start-date="2017-09-30 10:01:00" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword ``` ## 基于位置恢复 和基于时间点的恢复类似,但是更精确,因为同一个时间点可能有很多条 sql 语句同时执行 ``` > mysqlbinlog --start-date="2017-09-30 9:59:59" --stop-date="2017-09-30 10:01:00" /data/mysql/mysql-bin.123456 > /tmp/mysql_restore.sql ``` - 该命令将在 /tmp 目录创建小的文本文件, - 查看此文件,知道出错语句前后的位置号,例如前后位置号分别为 368312 和 368315 ``` > mysqlbinlog --stop-position="368312" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword > mysqlbinlog --start-position="368315" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword ```
';