mysql全备和binlog恢复

本文通过实例演示了如何在MySQL环境中进行全备,然后在遇到模拟故障删除数据库时,利用binlog进行恢复。首先,进行了数据库的全备,并在另一台服务器上创建新的数据库和表,接着模拟删库操作。接着,找到binlog的起始和结束位置,截取所需日志。最后,在临时库上结合全备文件和binlog恢复数据,确保数据一致性。
摘要由CSDN通过智能技术生成

需要准备两台Mysql服务器,不要是主从服务器

1.准备数据

提前配置好MYSQL

2.备份数据库

重启MySQL数据库

service mysql restart

进行了一个全备,如下:

[root@skj ~]# mysqldump -uroot -ptest --set-gtid-purged=OFF --master-data=2 --single-transaction -A > /opt/full_$(date +%F).sql

3.新建一个数据库及表

模拟新增数据

mysql> create table t1(id int,name varchar(20));

 

mysql> insert into t1(id,name) values(1,'php'),(2,'java'),(3,'python');

4.模拟故障删库

模拟故障删库t1

5.查找binlog的起点及终点

在故障的mysql服务器上查看备份的binlog起点

vi /opt/full_2021-05-21.sql

查看binlog终点

mysql> show master status;

mysql> show binlog events in 'master-binlog.000001';

由此可知,binlog的起点是154,终点是825

6.截取binlog起点及终点的日志

[root@skj opt]# mysqlbinlog --skip-gtids --start-position=154 --stop-position=825 /data/mysql/data/master-binlog.000001 > /opt/binlog.sql

7. 临时库上恢复数据库到最新时间点

临时库上恢复全备+binlog,将全备文件及截取的binlog文件恢复到临时库上(另外一台临时服务器上)

[root@skj data]# scp /opt/full_2021-05-21.sql root@192.168.60.13:/opt/

 

[root@skj data]# scp /opt/binlog.sql root@192.168.60.13:/opt

[root@www opt]# mysql -uroot -ptest
mysql> source /opt/full_2021-05-21.sql;

#现在恢复的没有t1数据库。

mysql> source /opt/binlog.sql;

#恢复新增的数据

mysql> show databases;

 

mysql> use t1;

Database changed

mysql> select * from t1;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值