Centos7Mysql增量备份与恢复

Mysql增量备份与恢复

  • 一般备份与恢复
    • 基于位置的恢复
      • 基于时间的恢复

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

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

一般备份与恢复

1).先录入样本
Centos7Mysql增量备份与恢复_第1张图片
2).进行完全备份

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

Centos7Mysql增量备份与恢复_第2张图片
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.*

Centos7Mysql增量备份与恢复_第3张图片6).再次录入样本
Centos7Mysql增量备份与恢复_第4张图片
7).进行增量备份

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

Centos7Mysql增量备份与恢复_第5张图片
8).模拟故障,删除cjb表

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

Centos7Mysql增量备份与恢复_第6张图片
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';

Centos7Mysql增量备份与恢复_第7张图片

基于位置的恢复

模拟故障,删除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 "/"

Centos7Mysql增量备份与恢复_第8张图片
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';

Centos7Mysql增量备份与恢复_第9张图片再次模拟故障,指定起始位置:即只恢复‘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';

Centos7Mysql增量备份与恢复_第10张图片

基于时间的恢复

再次模拟故障

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

查看二进制文件来根据时间恢复
Centos7Mysql增量备份与恢复_第11张图片
1.先恢复完全备份,再指定结束时间进行恢复
Centos7Mysql增量备份与恢复_第12张图片
再次模拟故障

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

2.先恢复完全备份,再指定起始时间进行恢复
Centos7Mysql增量备份与恢复_第13张图片

你可能感兴趣的:(Mysql,mysql,linux,centos)