mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻

首先介绍相对简单一点的数据库全备份——mysqldump:

mysqldump可以备份整个数据库,也可以是其中的数张表,一下演示备份整个数据库:

1、首先查看一下已经存在的数据库:

show databases

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第1张图片

2、创建一个新的数据库用于演示数据库全备份:

create database testdump

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第2张图片

3、切换到新创建的数据库

use testdump


4、创建表:

CREATE TABLEmytime(
 
id  INT AUTO_INCREMENT PRIMARY KEY,
 
now DATETIME
)

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第3张图片

5、往表中插入数据:(一下语句执行四次)

insert intomytime(now)values(now());

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第4张图片

6、查看表中数据:select * from mytime;

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第5张图片

可以看到目前表中有四条记录

7、退出mysql,到mysql的安装目录下:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第6张图片

8、备份数据库,生成一个全备份sql:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第7张图片

可以看到备份的时间是05:21

9、查看当前目录下的文件:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第8张图片

可以看到已经存在一个名为testdump0521.sql的文件。

10、现在模拟误操作,删除了整个testdump数据库

drop database testdump

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第9张图片

11、可以看到数据库已经被删除了,现在新建一个数据库:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第10张图片

12、切换到数据库:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第11张图片

可以看到,当前数据库中没有表。现在恢复数据库数据:

13、执行刚才全备份导出的sql文件

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第12张图片

14、查看数据库中数据,可以看到数据库表已经自动创建好了,数据也恢复了

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第13张图片

现在模拟使用mysqlbinlog日志恢复数据,如果不知道binlog如何启动以及基本操作,请查看我的这篇博客:点击打开链接

1、首先是观察表中内容:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第14张图片

2、插入两条新的内容:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第15张图片

3、现在模拟数据库数据丢失,删除了整个数据库:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第16张图片

删除数据库的操作为05:34,

4、现在通过数据库全备份以及日志备份恢复数据:

首先创建数据库:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第17张图片

5、执行刚才全备份导出的sql语句:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第18张图片 mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第19张图片

可以看到数据已经恢复到05:21时刻,现在将05:21到05:34的数据恢复:

6、首先查看当前主要日志文件:

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第20张图片

7、进入到mysql的安装目录,将05:21到05:33之间执行的sql导出来8、mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第21张图片

8、在mysql命令行中执行该sql语句

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第22张图片

9、查看数据

mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻_第23张图片

可以看到数据又回来了。

总结:

真实情况下应该是数据库全备份+日志备份一起用才能达到将数据库恢复到指定时刻的效果。比如我在19:00:00对数据库进行全备份,在19:30:00数据库数据丢失,我们可以在临时数据库使用备份数据恢复数据,然后根据日志将19:00:00到19:30:00的数据恢复,这样就可以达到将数据恢复到19:30:00的效果。


你可能感兴趣的:(mysqldump全备份+mysqlbinlog日志备份实现将数据恢复到指定时刻)