MySQL:增量备份和恢复(5)

介绍

增量备份的特点
MySQL数据库二进制日志对备份的意义

增量备份的优点是没有重复数据,备份量不大,时间短。缺点也很明显,需要上次完全备份及完全备份之后所有的增量备份才能恢复,反推恢复,操作较为繁琐。

Mysql没有提供增量备份的方法,但是可以通过二进制日志间接实现增量备份。

二进制日志对备份的意义如下:
1)二进制日志保存了所有更新或者可能更新数据库的日志文件

2)二进制日志在启动Mysql服务器后开始记录,并在文件达到max_binlog_size 所设置的大小或者接收到的flush logs命令后重新创建新的日志文件。

3)只需要定时执行flush logs 方法重新创建新的日志,生成二进制文件序列,并及时把这些日志保存到安全的地方就完成了一个时间段的增量备份。

增量恢复的场景:
1)人为的SQL语句破坏了数据库

2)在进行下一次全备份之前发生系统故障导致数据库的数据丢失

3)在主从架构中,主库数据发生了故障。
根据数据丢失的情况可以分为两类:
1)只丢失了完全备份之后更改的数据
2)完全备份之后丢失所有数据


开始实现增量备份 

创建环境 

我们先去MySQL主文件中开启二进制日志功能

vim my.cnf

加一句这个

log_bin=/usr/local/mysql/mysql-bin

然后重启mysql

systemctl restart mysqld

就发现多出两个文件夹上面那个000001结尾的就是二进制文件

 

 我们再去数据库里

aaa库下创建了一个tarro的表内容为姓名和年龄

 

在这我做一下完全备份

然后去aaa库里tarro原有基础上再插入内容

我们在原有的基础上又插入了6用户

这时我们直接刷新一下二进制日志

flush logs;

 

现在我们就可以去模拟数据库被摧毁了

 

我们在aaa库里什么都没了


恢复

这时我们先去使用一下完全备份

 mysql -uroot -p aaa< /backup/aaa-tarro.sql 

 

 现在我们的的tarro数据库又回来了

增量备份的完全恢复 

但是内容是我么当时完全备份的时候内容,这时我就需要使用二进制日志去恢复备份了

我刚刚刷新了一下权限所以我刚刚上一次所有的操作都在000001中了,如果我做完操作再以刷新,我的这次所有操作就会全保存在000002中了 ,同时就会生成一个000003依次类推

mysqlbinlog mysql-bin.000001

弹出的内容就是上一次的操作所记录下来的

现在我将上一次的全部恢复

mysql]# mysqlbinlog --no-defaults mysql-bin.000001 | mysql -uroot -p

现在就全部恢复上来了


 基于位置恢复

基于数据编号

 现在我们再把tarro库删除,再次进行恢复

这次我不打算 恢复到aaa只恢复到王五结束

我们去使用       mysqlbinlog mysql-bin.000001

 

可以看到aaa上面的at为851

我们使用 

mysqlbinlog --no-defaults --stop-position='851' mysql-bin.000001 | mysql -uroot -p

 意思是我到851编号停止,我的851编号正好是aaa,所一就是到aaa停下,不再恢复

 

我们再次恢复到上一次完全备份

 

这次我不想恢复张三,李四,王五了想跳过他们,我可以使用

mysqlbinlog --no-defaults --start-position='851' mysql-bin.000001 | mysql -uroot -p

 意思为我从851编号开始恢复,这次恢复出的只有851以后信息

直接跳过了张三,李四,王五


基于日期恢复

其实和编号的差不多 

 我们执行了这条命令

mysqlbinlog mysql-bin.000001

可以看到要恢复的位置上有一个日期

我么再次恢复到上次完全备份

我还要到aaa结束 

可以看到2023-10-07  2:41:00 时间

mysqlbinlog --no-defaults --stop-datetime='2023-10-07 2:41:00' mysql-bin.000001 | mysql -uroot -p

同样想在aaa开始可以直接使用 

mysqlbinlog --no-defaults --start-datetime='2023-10-07 2:41:00' mysql-bin.000001 | mysql -uroot -p

 

这样就恢复成功了 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/128883.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STC89C51基础及项目第13天:小车go、软件调速

1. 小车散件组装_推荐相同接线&#xff08;259.104&#xff09; 2. L9110s电机控制器接线&#xff08;260.105&#xff09; L9110s电机模块开发 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;但是不对&#xff0c;根据下节课实际调试 …

Nginx的安全控制

安全控制 关于web服务器的安全是比较大的一个话题&#xff0c;里面所涉及的内容很多&#xff0c;Nginx反向代理是安全隔离来提升web服务器的安全&#xff0c;通过代理分开了客户端到应用程序服务器端的连接&#xff0c;实现了安全措施。在反向代理之前设置防火墙&#xff0c;…

Android原生实现控件outline方案(API28及以上)

Android控件的Outline效果的实现方式有很多种&#xff0c;这里介绍一下另一种使用Canvas.drawPath()方法来绘制控件轮廓Path路径的实现方案&#xff08;API28及以上&#xff09;。 实现效果&#xff1a; 属性 添加Outline相关属性&#xff0c;主要包括颜色和Stroke宽度&…

RunnerGo亮相QECon大会上海站,来看看这款全栈测试平台

QECon&#xff08;Quality Efficiency Conference&#xff09;质量效能大会在上海正式开幕&#xff01;本次大会以"数生智慧&#xff1a;高质量发展新引擎"为主题&#xff0c;深入探讨如何借助数字化和智能化技术推动软件质量的发展&#xff0c;为高质量经济发展提供…

ctfshow web入门 php特性 web126-web130

1.web126 和前面一样的 payload&#xff1a; get: a1fl0gflag_give_me post: CTF_SHOW&CTF[SHOW.COM&funparse_str($a[1]) 或 get: ?$fl0gflag_give_me post:CTF_SHOW&CTF[SHOW.COM&funassert($a[0]) assert($a[0]) 是把fl0g赋值为flag_give_me $a[0]是当前…

运营商大数据,三网融合大数据,联通大数据,移动大数据

有许多公司和企业依靠电话营销和短信营销。对于他们来说&#xff0c;客户资源就是维生素和维生素&#xff0c;客户资源的及时性和准确性是这些公司和企业最关心的问题。长期使用低质量、大量无效的客户资源&#xff0c;是对时间的浪费&#xff0c;是对人力物力财力的浪费&#…

opengauss数据备份(docker中备份)

首先如果想直接在宿主机上进行使用gs_dump备份需要glibc的版本到2.34及以上&#xff0c;查看版本命令为 ldd --version 如图所示&#xff0c;本宿主机并不满足要求&#xff0c;所以转向在docker容器中进行备份&#xff0c; 然后进入opengauss容器中&#xff0c;命令为 docker…

华为数通方向HCIP-DataCom H12-831题库(单选题:221-240)

第221题 以下哪些项能被正则表达式^30.成功匹配? A、200 100 300 B、100 200 300 C、300 200 100 D、300 100 200 答案:CD 解析: 30.其中的“点”表示的是任何的一个数字,表示的是as-path的开头;所以以300开头的都是满足题目需求的。 第222题 以下哪些项的Community属性能…

使用kubectl连接远程Kubernetes(k8s)集群

使用kubectl连接远程Kubernetes集群 环境准备下载kubectl下载地址 安装kubectl并处理配置文件Windows的安装配置安装kubectl拉取配置文件安装kubectl拉取配置文件kubectl命令自动补全 Linux的安装配置安装kubectl拉取配置文件kubectl命令自动补全 环境准备 你需要准备一个Kube…

ElasticSearch 学习7 集成ik分词器

网上找了一大堆&#xff0c;很多都介绍的不详细&#xff0c;开始安装完一直报错找不到plugin-descriptor.properties&#xff0c;有些懵这个东西不应该带在里面吗&#xff0c;参考了一篇博客说新建一个这个&#xff0c;新建完可以启动&#xff0c;但是插入索引数据会报错找不到…

Linux虚拟机搭建RabbitMQ集群

普通集群模式&#xff0c;意思就是在多台机器上启动多个 RabbitMQ 实例&#xff0c;每台机器启动一个。创建的 queue&#xff0c;只会放在一个 RabbitMQ 实例上&#xff0c;但是每个实例都同步 queue 的元数据&#xff08;元数据可以认为是 queue 的一些配置信息&#xff0c;通…

华为OD机试 - 最优策略组合下的总的系统消耗资源数(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明4、思路 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷…