MySQL的增量备份与恢复

网友投稿 261 2022-10-15

MySQL的增量备份与恢复

MySQL增量备份与恢复

增量备份:只备份那些在上次完全备份或者增量备份后被修改的文件才会被备份。 优点:没有重复数据,备份量不大,时间短。 缺点:需要上一次完全备份及完全备份之后所有的增量备份才能恢复,而且对所有增量备份进行逐个反推恢复,操作较为繁琐。

一、增量备份

1、编辑MySQL配置文件,开启二进制功能

vim /etc/my.cnf

log-bin=mysql-bing #添加二进制日志文件

systemctl restart mysql.service

服务重启之后会在/use/local/mysql/data目录下生成一个空的二进制日志文件;

2、创建以基本数据库

mysql -u root -p #进入MySQL create database client; #创建一个名为client的库 use client; #使用数据库 create table info (name varchar(10),score decimal(5.2)); #创建表 insert into info (name,score) values ('zhangsan',88); #插入内容 insert into info (name,score) values ('lisi',88); quit #退出MySQL

3、备份数据库,并生成新的二进制日志文件;

mysqldump -u root -p client test > /opt/client.sql mysqladmin -u root -p flush-logs

数据库中的内容会生成到第一个二进制日志文件中,除此之外还会生成一个空的二进制日志文件;

4、在数据库中添加新的内容,并生成新的二进制日志文件;

mysql -u root -p use client insert into info (name,score) values ('test01',88); quit #退出MySQL mysqladmin -u root -p flush-logs

数据库中新添加的内容会生成到第二个二进制日志文件,同时生成一个空的二进制日志文件;

二、恢复

1、删除表,并进行完全备份恢复操作;

mysql -u root -p ; use client; drop tables test; quit; mysql -u root -p client < /opt/client.sql

2、使用二进制日志文件进行恢复操作;

mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p

三、基于时间点与位置的恢复

1、插入两条数据内容,并删除一条数据,模拟操作失误;

mysql -u root -p use client insert into info (name,score) values ('test01',88); delete from test where name='lisi'; insert into info (name,score) values ('test02',88); quit

2、生成二进制日志文件,删除表,并进行完全备份恢复操作;

mysqladmin -u root -p flush-logs mysql -u root -p ; use client; drop tables test; quit mysql -u root -p client < /opt/client.sql

3、按时间点进行恢复(跳过误操作时间);

mysqlbinlog --no-defaults --stop-datetime='18-07-06 10:39:23' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p mysqlbinlog --no-defaults--start-datetime='18-07-06 10:39:33' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p

4、按位置进行恢复(跳过错误的位置);

mysqlbinlog --no-defaults --stop-position='1151' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p mysqlbinlog --no-defaults--start-position='1226' /usr/local/mysql/data/mysql-bin.000003 | mysql -u root -p

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot 接收List 入参的几种方法
下一篇:分布式消息服务DMS如何实现死信消息的消费
相关文章

 发表评论

暂时没有评论,来抢沙发吧~