一、首先确认数据库有全库备份

当时测试环境也要开启binlog日志模式,才能从日志恢复数据。

二、读取备份文件的位置

Mysql5.7日志恢复数据   使用mysqbinlog 日志恢复_mysql

三、将备份文件和日志文件传输到测试服务器

Mysql5.7日志恢复数据   使用mysqbinlog 日志恢复_mysql_02

四、确定需要恢复的时间点的位置

如确认需要恢复的时间点是 2022-02-18 14点前的数据

mysqlbinlog --base64-output=decode-rows -v mysql-bin.000047 //查看binlog日志

mysqlbinlog --base64-output=decode-rows -v mysql-bin.000047 | grep '#220218' | more //确认恢复时间点为18号 14点前,查看下14点左右的位置是在哪里

Mysql5.7日志恢复数据   使用mysqbinlog 日志恢复_mysql_03

五、开始恢复数据到临时库

mysqlbinlog --stop-position="513724246" --start-position="452799755" mysql-bin.000047 | mysql -uroot -p -h127.0.0.1 dbname

在处理恢复的过程中,也可以查看测试的binlog日志是在读写的,说明是有在更新数据操作的。

数据恢复到开发给的时间点,之后的事情就交给开发处理,后续为了避免相应问题,新建只读用户给开发使用,生产的数据库更新之类。