MySQL 增量备份与还原


说明:
所谓增量备份,就是备份自上一次备份之后增加或改变的文件或内容。然而MySQL没有提供直接的增量备份方法,但是却可以通过MySQL的二进制日志间接实现增量备份。下面有关操作方法进行测试
.
.
实验环境:装有MySQL 5.7 数据库的CentOS7虚拟机一台
.
.
实验步骤如下:
.
.
1 .进入配置文件添加二进制日志
vim /etc/my.cnf
[mysqld]
在其中插入二进制日志
log_bin=mysql-bin #二进制日志

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

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

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

.
.
5 . 将刚才新建的数据库删除,然后使用恢复命令恢复数据库
mysqlbinlog –no-defaults mysql-bin.000001 | mysql -u root -p #日志文件恢复

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

.
.
7 .接下来,测试误操作之后的恢复(两种方法,一是利用时间点,二是利用位置点)先进行时间点的操作
在表中插入数据
下一步,删除表中一条数据(误操作)
然后再插入一条数据
这样,误操作的一条命令已经被覆盖

.
.
8 . 重新生成一个二进制日志
mysqladmin -u root -p flush-logs#创建新日志

.
.
9 . mysqlbinlog –no-defaults –base64-output=decode-rows -v mysql-bin.000002#64位解码查看日志文件,防乱码
在其中需要找到两个时间点
(1) 删除数据的时间点
(2) 删除之后下一步正确操作时间点

.
.
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#从下一个正确时间点恢复

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

.
.
12 . 下面根据位置点,再进行恢复
同样把数据恢复到误删除

.
.
13 . mysqlbinlog –no-defaults –base64-output=decode-rows -v mysql-bin.000002 #64位解码查看日志文件,防乱码
找到错误点执行的命令后,复制上一次可正确执行的位置(at后面就是位置号)
然后找到下一次可执行的命令,同样复制上一次可正确执行的位置

.
.
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#从下一个正确时间点恢复
最后查看结果,测试完成

相关推荐: MySQL 5.6 搭建半同步复制

确定是否可以动态安装插件安装软件:主从开启功能主库从库主库:从库io_thread正常情况下,复制延迟开发云主机域名对于半同步没影响。配置文件增加选项:主从注意:1.去掉半同步复制,半同步复制会造成一些语句不适用,影响主从进程。2.主库不要打开rpl_semi…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/04 18:42
下一篇 06/04 18:42

相关推荐