实验材料:
一台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.先恢复完全备份,再指定起始时间进行恢复
实验完成