centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效

Mysql增量备份与恢复

一般备份与恢复

基于位置的恢复

基于时间的恢复

实验材料:

一台Centos7已安装Mysql数据库,并开启3306端口

不会安装的可以看我之前写的博客

https://blog.csdn.net/weixin_46902396/article/details/108171060

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

一般备份与恢复

1).先录入样本

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第1张图片

2).进行完全备份

mkdir /mysql.bak

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

ll /mysql.bak/

centos 7 修复mysql_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.*

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第3张图片6).再次录入样本

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第4张图片

7).进行增量备份

mysqladmin -u root -p flush-logs

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

cp /usr/local/mysql/mysql-bin.000002 /mysql.bak/

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第5张图片

8).模拟故障,删除cjb表

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

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

centos 7 修复mysql_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';

centos 7 修复mysql_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 "/"

centos 7 修复mysql_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';

centos 7 修复mysql_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';

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第10张图片

基于时间的恢复

再次模拟故障

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

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

查看二进制文件来根据时间恢复

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第11张图片

1.先恢复完全备份,再指定结束时间进行恢复

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第12张图片

再次模拟故障

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

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

2.先恢复完全备份,再指定起始时间进行恢复

centos 7 修复mysql_Centos7Mysql增量备份与恢复——亲测有效_第13张图片

实验完成

你可能感兴趣的:(centos,7,修复mysql)