mysql增量备份具体步骤_MySQL 增量备份与还原

说明:

所谓增量备份,就是备份自上一次备份之后增加或改变的文件或内容。然而MySQL没有提供直接的增量备份方法,但是却可以通过MySQL的二进制日志间接实现增量备份。下面有关操作方法进行测试。

.

.

实验环境:装有MySQL 5.7 数据库的CentOS7虚拟机一台

.

.

实验步骤如下:

.

.

1 .进入配置文件添加二进制日志

vim /etc/my.cnf

[mysqld]

在其中插入二进制日志

log_bin=mysql-bin #二进制日志

04eba04fa00a1d1c1a20bf2cea07260f.png

.

.

2 . 然后重启数据库,到日志文件目录下查看一下

83e398bb7598ec105b5ae191a45688ca.png

.

.

3 . 新建数据库,并在其中新建数据表,写入数据

bad307bdc1da0c24253182ac40c05ab9.png

.

.

4 .重新生成一个日志文件,这样刚才的操作步骤都会保存在第一个二进制文件中

mysqladmin -u root -p flush-logs#重新生成二进制文件

d1ff7818987b0cc63afe9af132da7aee.png

.

.

5 . 将刚才新建的数据库删除,然后使用恢复命令恢复数据库

mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p #日志文件恢复

844cf4e873dd305295cbc9a2841bb094.png

5af3ee2829d3030decbcb2e65ba51684.png

.

.

6 . 可以查看到数据库已经被恢复好

030ebddbbc72588c9e55597a17956f5d.png

.

.

7 .接下来,测试误操作之后的恢复(两种方法,一是利用时间点,二是利用位置点)先进行时间点的操作

在表中插入数据

下一步,删除表中一条数据(误操作)

然后再插入一条数据

这样,误操作的一条命令已经被覆盖

c01a8b262a7b5c5f4379139e8ed5c676.png

.

.

8 . 重新生成一个二进制日志

mysqladmin -u root -p flush-logs#创建新日志

0d31e03c398be59bb43caa3eb9310c8f.png

.

.

9 . mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002#64位解码查看日志文件,防乱码

在其中需要找到两个时间点

(1) 删除数据的时间点

(2) 删除之后下一步正确操作时间点

f4165b31a8f975e56226d6fc14842682.png

3d1892c9c0b4c3bab123d18ac6b822ac.png

.

.

10 . 找到两个时间点之后,用这两个时间点进行恢复

mysqlbinlog --no-defaults --stop-datetime='2018-09-03 16:38:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢复到错误时间点

mysqlbinlog --no-defaults --start-datetime='2018-09-03 16:39:08' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#从下一个正确时间点恢复

fb3f902bfc46ee9bd3f1e558d068db17.png

.

.

11 . 这样被误删除的数据就恢复好了

db890eb3ceba1a4d2e27a9610bf7838b.png

.

.

12 . 下面根据位置点,再进行恢复

同样把数据恢复到误删除

78a067a3b28f327f27eb28b5f72959c8.png

.

.

13 . mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002 #64位解码查看日志文件,防乱码

找到错误点执行的命令后,复制上一次可正确执行的位置(at后面就是位置号)

然后找到下一次可执行的命令,同样复制上一次可正确执行的位置

4c7ba415fda4c5102c02776fa17d34bb.png

9cae663653da5e4da3034f850ee7f6be.png

.

.

14 . 利用位置点进行恢复

mysqlbinlog --no-defaults --stop-datetime='1950' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#恢复到错误时间点

mysqlbinlog --no-defaults --start-datetime='2223' /usr/local/mysql/data/mysql-bin.000002 | mysql -u root -p#从下一个正确时间点恢复

最后查看结果,测试完成

e8248f9d4f6d4b9dc99f73f90f142c3a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值