一、首先确认数据库有全库备份
当时测试环境也要开启binlog日志模式,才能从日志恢复数据。
二、读取备份文件的位置
三、将备份文件和日志文件传输到测试服务器
四、确定需要恢复的时间点的位置
如确认需要恢复的时间点是 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点左右的位置是在哪里
五、开始恢复数据到临时库
mysqlbinlog --stop-position="513724246" --start-position="452799755" mysql-bin.000047 | mysql -uroot -p -h127.0.0.1 dbname
在处理恢复的过程中,也可以查看测试的binlog日志是在读写的,说明是有在更新数据操作的。
数据恢复到开发给的时间点,之后的事情就交给开发处理,后续为了避免相应问题,新建只读用户给开发使用,生产的数据库更新之类。