gpt4 book ai didi

mysql增量备份及断点恢复脚本实例

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章mysql增量备份及断点恢复脚本实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

简介 。

增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推.

目的 。

解决完全备份中时间长、恢复慢的问题,采取了增量备份 。

特点 。

优:无重复数据,备份量不大,时间短 缺:需要上次完全备份及完全备份后的增量备份才能恢复,需对增量备份逐个反复恢复,操作繁琐 。

实现方式 。

通过mysql的二进制日志间接实现增量备份: 二进制日志保存了所有更新或可能更新的数据 二进制日志在mysql启动时开始记录,且会重新创建新的日志文件 需定时执行flush logs方法重新创建日志,生成二进制文件序列 。

实验环境:

安装了mysql5.7数据库的一台centos7虚拟机 。

操作过程:

1、增量备份 。

1、在配置文件中添加二进制日志 。

vim /etc/my.cnf [mysqld] #在此模块下添加 log-bin=mysql-bin #二进制日志 。

2、重启服务,并查看二进制日志 。

systemctl restart mysqld.service cd /usr/local/mysql/data/ mysqlbinlog --no-defaults mysql-bin.000001 。

mysql增量备份及断点恢复脚本实例

3、在数据库自由创建数据库、表,作为实验模板 。

mysql增量备份及断点恢复脚本实例

4、对school数据库进行完全备份 。

mysqldump -uroot -pabc123 school > /opt/school.sql 。

5、刷新日志,生成新的日志,注意:之前数据库的操作写入编号为000001的日志中,新生成的000002的日志为空 。

mysqladmin -uroot -pabc123 flush-logs #刷新日志 mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 #查看000001日志 mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志 #--base64-output=decode-rows -v:避免文件中乱码,前面的查看命令也可以使用 。

mysql增量备份及断点恢复脚本实例
mysql增量备份及断点恢复脚本实例

6、新添加mysql数据库操作,然后刷新日志,进行增量备份 。

use school; mysql>indert into info (id,name,score) values (3,'aaa',78); mysql>delete from info where name='tom'; #误操作 mysql> insert into info (id,name,score) values (4,'bbb',64); mysqladmin -uroot -pabc123 flush-logs #刷新日志,生成000003 #此次增量备份已记录到000002日志文件中 。

mysql增量备份及断点恢复脚本实例
mysql增量备份及断点恢复脚本实例

7、删除info表 。

mysql -uroot -pabc123 -e 'use school;drop table info;' 。

8、恢复完全备份,然后恢复增量备份 。

mysql -uroot -pabc123 school < /opt/school.sql #完全备份还原 。

mysql增量备份及断点恢复脚本实例

mysqlbinlog --no-defaults mysql-bin.000002 | mysql -uroot -p 。

mysql增量备份及断点恢复脚本实例

那么,此处暴露出一个问题,如果出现误操作,还原备份时就会出现错误,并不能实现理想的备份,达到真正的目的。此时,就需要断链恢复(属于恢复增量备份的特殊用法),即在还原时只恢复正确的数据库操作.

2、断链恢复 。

在操作断链恢复前,需要还原到未进行增量备份还原的状态,如图 。

mysql增量备份及断点恢复脚本实例

基于时间点 。

2018-09-04 16:43:52 错误操作时间 (开头加载到此时间点结束) 2018-09-04 16:44:32 正确操作时间 (从此时间点再次开始加载) 从此时间点再次开始加载 。

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志 。

mysql增量备份及断点恢复脚本实例

mysqlbinlog --no-defaults --stop-datetime='2018-09-04 16:43:52' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p mysqlbinlog --no-defaults --start-datetime='2018-09-04 16:44:32' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p 。

mysql增量备份及断点恢复脚本实例

基于位置点 。

at 565 上一次正确执行位置 --stop-position at 667 下一次正确执行位置 --start-position 。

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #查看000002日志 。

mysql增量备份及断点恢复脚本实例

mysqlbinlog --no-defaults --stop-position='565' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p mysqlbinlog --no-defaults --start-position='667' /usr/local/mysql/data/mysql-bin.000002 | mysql -uroot -p 。

mysql增量备份及断点恢复脚本实例

原文链接:http://blog.51cto.com/13784264/2170434 。

最后此篇关于mysql增量备份及断点恢复脚本实例的文章就讲到这里了,如果你想了解更多关于mysql增量备份及断点恢复脚本实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com