Centos7Mysql增量备份与恢复——亲测有效

实验材料:
一台Centos7已安装Mysql数据库,并开启3306端口
不会安装的可以看我之前写的博客
https://blog.csdn.net/weixin_46902396/article/details/108171060

注意:三种增量备份方式都需要有完全备份

一般备份与恢复

1).先录入样本
在这里插入图片描述
2).进行完全备份

mkdir /mysql.bak
mysqldump -u root -p qqq cjb > /mysql.bak/qqq_cjb-$(date +%F).sql
ll /mysql.bak/

在这里插入图片描述
3).开启日志文件

vim /usr/local/mysql/my.cnf

在[mysqld]下添加

log_bin=/usr/local/mysql/mysql-bin

4).重启服务

systemctl restart mysqld
netstat -anpt | grep mysqld

5).查看生成的日志文件

ll /usr/local/mysql/mysql-bin.*

在这里插入图片描述6).再次录入样本
在这里插入图片描述
7).进行增量备份

mysqladmin -u root -p flush-logs
ll /usr/local/mysql/mysql-bin.*
cp /usr/local/mysql/mysql-bin.000002 /mysql.bak/

在这里插入图片描述
8).模拟故障,删除cjb表

mysql -u root -p -e 'drop table qqq.cjb';
mysql -u root -p -e 'select *from qqq.cjb';

在这里插入图片描述
9).先恢复完全备份 ,再进行增量恢复

#恢复完全备份
mysql -u root -p qqq < /mysql.bak/qqq_cjb-2020-08-27.sql
mysql -u root -p -e 'select *from qqq.cjb';
#增量恢复
mysqlbinlog --no-defaults /mysql.bak/mysql-bin.000002 | mysql -u root -p
mysql -u root -p -e 'select *from qqq.cjb';

在这里插入图片描述

基于位置的恢复

模拟故障,删除cjb表

mysql -u root -p -e 'drop table qqq.cjb';
mysql -u root -p -e 'select *from qqq.cjb';

查看二进制文件来根据位置恢复

mysqlbinlog --no-defaults /mysql.bak/mysql-bin.000002 |grep -v "/"

在这里插入图片描述
1.先恢复完全备份,再进行基于停止位置恢复
指定‘停止位置’,即不恢复‘bbb’的用户数据

#恢复完全备份
mysql -u root -p qqq < /mysql.bak/qqq_cjb-2020-08-27.sql
mysql -u root -p -e 'select *from qqq.cjb';
#指定停止位置恢复数据
mysqlbinlog --no-defaults --stop-position='335' /mysql.bak/mysql-bin.000002 | mysql -u root -p
mysql -u root -p -e 'select *from qqq.cjb';

在这里插入图片描述再次模拟故障,指定起始位置:即只恢复‘bbb’的数据,跳过‘aaa’的数据

mysql -u root -p -e 'drop table qqq.cjb';
mysql -u root -p -e 'select *from qqq.cjb';

2.先恢复完全备份,再进行基于起始位置恢复

#恢复完全备份
mysql -u root -p qqq < /mysql.bak/qqq_cjb-2020-08-27.sql
mysql -u root -p -e 'select *from qqq.cjb';
#指定起始位置恢复数据
mysqlbinlog --no-defaults --start-position='335' /mysql.bak/mysql-bin.000002 | mysql -u root -p
mysql -u root -p -e 'select *from qqq.cjb';

在这里插入图片描述

基于时间的恢复

再次模拟故障

mysql -u root -p -e 'drop table qqq.cjb';
mysql -u root -p -e 'select *from qqq.cjb'

查看二进制文件来根据时间恢复
在这里插入图片描述
1.先恢复完全备份,再指定结束时间进行恢复
在这里插入图片描述
再次模拟故障

mysql -u root -p -e 'drop table qqq.cjb';
mysql -u root -p -e 'select *from qqq.cjb'

2.先恢复完全备份,再指定起始时间进行恢复
在这里插入图片描述
实验完成

猜你喜欢

转载自blog.csdn.net/weixin_46902396/article/details/108241217