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

本文详细介绍MySQL数据库的全备份与增量恢复过程,包括使用mysqldump进行全备份及利用binlog日志恢复数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

show databases


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

create database testdump


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

use testdump


4、创建表:

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


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

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


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


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

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


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


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

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


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

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

drop database testdump


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


12、切换到数据库:


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

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


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


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

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


2、插入两条新的内容:


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


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

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

首先创建数据库:


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


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

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


7、进入到mysql的安装目录,将05:21到05:33之间执行的sql导出来8、

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

9、查看数据

可以看到数据又回来了。

总结:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值