mysql增量备份及断点恢复
admin
2023-04-23 06:23:05
0

简介
增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。
目的
解决完全备份中时间长、恢复慢的问题,采取了增量备份
特点
优:无重复数据,备份量不大,时间短
缺:需要上次完全备份及完全备份后的增量备份才能恢复,需对增量备份逐个反复恢复,操作繁琐
实现方式
通过mysql的二进制日志间接实现增量备份:
二进制日志保存了所有更新或可能更新的数据
二进制日志在mysql启动时开始记录,且会重新创建新的日志文件
需定时执行flush logs方法重新创建日志,生成二进制文件序列
实验环境:
安装了mysql5.7数据库的一台centos7虚拟机
操作过程:
一、增量备份
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增量备份及断点恢复
那么,此处暴露出一个问题,如果出现误操作,还原备份时就会出现错误,并不能实现理想的备份,达到真正的目的。此时,就需要断链恢复(属于恢复增量备份的特殊用法),即在还原时只恢复正确的数据库操作。

二、断链恢复
在操作断链恢复前,需要还原到未进行增量备份还原的状态,如图
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增量备份及断点恢复

相关内容

热门资讯

2030年江苏人工智能产业规模... “大卫,大卫,跳支舞吧!” 话音刚落,眼前的人形机器人忽然抬头,双眼闪烁起黄光。它微微侧身,手臂轻扬...
美国暂停75个国家所有签证申请... 福克斯新闻1月14日报道,美国国务院暂停对75个国家的所有签证申请,以打击那些被认为可能成为公共负担...
“大健康策划公司排名”重磅发布... 近日,小米创始人雷军表示:下一个五年,人工智能将深刻影响传统产业。“所有产业都值得用AI做一遍。”这...
打飞的来中国就医,“国际诊疗目... 作者:邹臻杰“前不久,在昆明的云南圣约翰医院,我做MRI(核磁共振成像)一共才花了486元人民币,这...
生命、家园、深空与智能——20... 2026年,科学与技术将持续深刻影响人类对生命、地球与宇宙的认知边界。从实验室到临床,从地球到深空,...
罗永浩即将喜提荣耀Magic8... 快科技1月14日消息,此前罗永浩发微博表示,荣耀Magic8 Pro Air是他近期最想买的手机。 ...
尺素金声|3.92万亿元销售、... 新年伊始,消费热力升腾,“国补”成为市场上的“抢眼主角”。随着2026年以旧换新政策落地,多地家电和...
小红书选择“中庸之道”:借力大... 本报(chinatimes.net.cn)记者石飞月 北京报道 去年京东、阿里、美团之间外卖大战的喧...
2026年云手机哪个好用:3招... 996打工人哪有时间试错?2026年云手机乱花迷人眼,到底哪个好用?3招教你闭眼选对,再扒一扒厂商藏...
驻卡塔尔美军基地部分人员被要求... 据半岛新闻网报道,美国加大对伊朗的攻击威胁,驻卡塔尔美军基地部分人员被要求在1月14日(周三)晚上之...