mysql数据备份与恢复_mysql数据库备份与恢复

本文主要介绍数据库的备份与在突发情况下的数据恢复。话不多说,如果要看详细的数据库备份与恢复的场景和恢复思路啥的,请查看参考文档。在这里有必要介绍一下全量备份和增量备份。

全量备份和增量备份

全量备份:截止某一时间点,对之前所有的数据进行备份,这时候要求数据库不再更新

增量备份:项目进行了一段时间,每天都有大量的数据。此时如果每次备份都选择全量备份则耗时耗力,对之前已经备份过的数据来说浪费极大,因此,我们可以选择相对于之前没备份过的数据进行备份,此时数据量相对较小,不容易出错。

简单点来说,本次实验就是先进行全量备份,再设置增量备份。在数据丢失后,先恢复全量备份的数据,再恢复全量备份之后到数据丢失之前的数据。

实验步骤

一:mysql数据库开启binlog日志功能。

在/etc/my.cnf文件里的[mysqld]区块添加如下内容

log-bin=mysql-bin

#然后重启mysql服务

systemctl restart mysqld.service

二:对现有表或数据库进行备份

首先查看一下salary表,我们通过这张表来展示对数据的备份与恢复的现象

a0672bbda1642a6758ae9d857fe36568.png

创建一个目录用来存放备份的数据库

mkdir /home/mysql_backup

对tc数据库进行全量备份,这里你可以对你自己存在的数据库进行操作

注意:date与+之间有一个空格

mysqldump -uroot -p -B -F -R -x --master-data=2 tc|gzip > /home/mysql_backup/tc_$(date +%F).sql.gz

c6b4114da2c01228b114aa5ddc166268.png

参数说明:-B:指定数据库-F:刷新日志-R:备份存储过程等-x:锁表,不再更新数据库

–master-data:在备份语句里添加CHANGE MASTER语句以及binlog文件及位置点信

三:模拟全量备份之后的操作

备份好之后对salary数据表再次插入数据

343607a7875c2b3d28694d039e859d2f.png

四: 此时删除tc数据库,模拟数据库丢失情况

b058d332a91b2774e0cb5c9eb9fee129.png

五:发现数据库丢失,准备对丢失数据进行恢复

此时tc数据库文件已经丢失,需要对文件进行恢复

先恢复全量备份的数据,在通过binlog恢复从全量备份到数据丢失之前的操作

查看全量备份之后新增的binlog文件

fdfeb28b07b0aecccc9589182f7247ad.png

这是全备时刻的binlog文件位置,即mysql-bin.000003的155行,因此在该文件之前的binlog文件中的数据都已经包含在这个全备的sql文件中了

查看mysql的数据存放目录,可以看到放在了/var/lib/mysql/目录中

show global variables like "%datadir%";

b86a7fccc32f8f121fcc0c11514d6f99.png

移动binlog文件

721c18278843b6ba2f86ab962a31f629.png

导出为sql文件

mysqlbinlog -d tc mysql-bin.000003 >003bin.sql

965597c8120fde89063c7ce7b1dfc39d.png

剔除其中的drop语句,要把drop下面的语句全部删掉,否则会报错

9eebbd5a0bca6fefd7d47cd5b3dbd418.png

533b107ef8b5efeea8b81ff52474952e.png

六:恢复数据

先恢复全量备份的数据

0e39cc4e5d0fcb6298661249f4535a3e.png

此时可以看到,已经恢复到全量备份时的数据了

接下来通过003bin.sql文件恢复全量备份到数据丢失之前的数据

3382fe5372c7b23c24b449fe3a7ba6d9.png

七:查看数据表,发现已经恢复到删除数据库之前的数据了

0943a8a24ba06346dc851102d252dba5.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值