首页 > 数据库 > MySQL > 正文

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

2024-07-24 12:49:54
字体:
来源:转载
供稿:网友

简介

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

目的

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

特点

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

实现方式

通过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


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


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:避免文件中乱码,前面的查看命令也可以使用



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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表