Windows环境MySql差异备份

前言

备份上一次的完全备份后发生变化的所有文件。

差异备份是指在一次全备份后到进行差异备份的这段时间内

对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全量备份和最后一次差异备份进行恢复。

一、开启日志

开启mysql服务器的二进制的日志功能(修改mysql安装目录下的my.ini文件)

server_id = 1  --服务器的标志符
log-bin=mysql-bin  --开启二进制日志功能

重启mysql服务。

二、全量备份

查看数据库内容,然后全量备份

mysql -uroot -p --protocol=tcp --host=localhost --port=3307

show databases;

user test;

show tables;

select * from student;

三、完全备份

读数据库进行完全备份

mysqldump -uroot -p --host=localhost --port=3307 --single-transaction --default-character-set=utf8 --hex-blob --flush-logs --master-data=2 --set-gtid-purged=off test> test.sql

四、添加内容并修改

在表里添加新内容,并修改内容

五、模拟误删除

模拟误删数据库,误删后要立即刷新二进制文件

drop database test;

在mysql安装目录下的data目录查看bin文件:

 刷新创建新的二进制文件:

mysqladmin -uroot -p --protocol=tcp --host=localhost --port=3307 flush-logs

六、恢复完全备份

恢复完全备份(恢复时先把test手动新建一下,确保数据库里有这个数据库)

create database test charset utf8;

恢复备份:

mysql -uroot -p --host=localhost --port=3307 --default-character-set=utf8 test < test.sql

 查看表student表时,发现只恢复了没有修改数据前的内容:

七、恢复回滚

恢复到没有误删之前的数据库

查看正在使用文件:

show master status;

show binlog events in 'mysql-bin.000053';

恢复到误删之前的数据库:

把mysql-bin.000053放到mysql安装目录下的bin目录下。

.\mysqlbinlog.exe --skip-gtids=true --stop-position=519 --database=test mysql-bin.000053 | mysql -uroot -p --protocol=tcp --host=localhost --port=3307

在到数据库里面去查看数据是否恢复到第一次完全备份前:

 

posted @ 2022-02-14 11:22  凉年技术  阅读(307)  评论(0编辑  收藏  举报