千家信息网

mysql增量备份断点恢复

发表于:2024-10-22 作者:千家信息网编辑
千家信息网最后更新 2024年10月22日,生产环境中在mysql中误操作是非常正常的,所以就需要用到mysql的增量备份恢复。增量备份是我们经常用到的,它可以指定某个误操作的时间以及位置点进行数据恢复,更加准确的恢复我们想要还原的数据。以下实
千家信息网最后更新 2024年10月22日mysql增量备份断点恢复

生产环境中在mysql中误操作是非常正常的,所以就需要用到mysql的增量备份恢复。
增量备份是我们经常用到的,它可以指定某个误操作的时间以及位置点进行数据恢复,更加准确的恢复我们想要还原的数据。
以下实验为大家演示误操作使用增量备份进行数据的恢复。

1、配置文件中开启二进制日志,并重启mysql


2、创建测试数据库,写入内容

3、查看二进制日志,截断日志,完成完全备份

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql_bin.000001      //查看二进制日志



mysqladmin -uroot -pabc123 flush-logs     //刷新截断,形成一个新日志mysqldump -uroot -pabc123 school > /opt/school.sql   //完全备份school数据库

4、查看新生成的二进制文件

5、添加两条数据,再次查看新生成的二进制文件

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002   //再次查看新生成的二进制文件


6、模拟误操作、查看二进制文件中误操作的位置点时间点



7、删除list表,先进行完全备份恢复

source /opt/school.sql   //进行完全备份恢复

再次查看表,完全备份的数据已恢复

8、再次截断日志,然后进行增量备份恢复

mysqladmin -uroot -pabc123 flush-logs     再次截断日志(此处截断日志,是为了恢复正确数据的时候不会被前面的操作覆盖)

恢复到误操作前时间点前的操作mysqlbinlog --no-defaults --stop-datetime='2018-09-03 22:18:29' /usr/local/mysql/data/mysql_bin.000002 | mysql -uroot -pabc123    

恢复添加jerry的那部分数据mysqlbinlog --no-defaults --start-datetime='2018-09-03 22:19:27' /usr/local/mysql/data/mysql_bin.000002 | mysql -uroot -pabc123

可以查看到五条数据都已被恢复

0