当前位置:网站首页>Mysql的redolog和binlog
Mysql的redolog和binlog
2022-07-16 22:24:00 【橙栎】
1.redlog:
1.1 什么是redolog:
redlog是重做日志,是Innodb存储引擎独有的,他让MySQL在崩溃的时候具有了恢复数据的能力,即在数据库发生意外的时候,可以进行数据恢复;
redlog日志会备份的是事务执行过程中的修改数据,是事务过程中最新的数据位置。
1.2 redolog日志的工作原理
redolog是存储了数据被修改的值,当提交了一个事务的时候,InnoDB会先把要修复的数据写入到日志中,然后再去修改缓冲池里面的真正数据页。redolog本身也是由两个部分组成,分别是在内存中的日志缓存(redolog buffer)和在磁盘中的重做日志文件(redologfile);前者是存在内存中的,容易丢失,后者是存在硬盘中的,丢失概率较低。
对redolog的工作原理举例理解就是:
每次当我们上课在记笔记的时候,老师讲的太快,内容又有很多,若果我们直接记在笔记本里面,就会变成这一块跟不上,留出位置后在补上的话又发现留的位置是不够的;又有的时候老师语速太快,跟的着急然后就字体写飞了,后面看压根不知道自己刚刚写的是个啥,只能看出是个鬼画符(谁不想记笔记的本子美美的),不仅浪费了时间,还不利于后续的查看;相反,我们可以先将课上的笔记记录在自己日常练习的小本本上,代有时间的时候,在一字一字的往笔记本上写。这样就可以保证笔记本的赏心悦目。如果说练习的小本本没有了,那我们可以先将以前记录的笔记先写到笔记本上面,然后将以前写过的笔记划掉,重新在写(虽然划掉也没地方写了,但是意思是那么个意思,理解就好~~~)。
同样将上述老师让记得笔记当做存储的日志,练习的小本本当成内存中的日志缓存,笔记本相当于磁盘中的重做日志。而这种先写日志,在写磁盘的的过程叫做WAL技术。
1.4 redolog的配置参数
如何查看redolog的参数:
show variables like '%innodb_log%';查看的结果是:

2.binlog:
2.1什么是binlog
binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,默认情况下,binlog是二进制格式的,不能使用文本工具的命令进行查看,而是使用mysqlbinlog解析查看。
2.2binlog的功能
当数据写入到数据库的时候,会同时把更新的SQL语句写入到相应的binlog文件里面,同时在使用mysqldump进行备份的时候,只是对一段时间的数据进行了全局备份,但是如果备份后发现数据库服务器产生故障,这个时候就要用到binlog日志了。
3.binlog和redolog的区别:
1).redo log是在InnoDB存储引擎层产生,而binlog是mysql数据库的上层产生,而且binlog是二进制格式的日志,不仅仅针对InnoDB存储引擎。
2).两种日志记录的内容形式不同,MySQL的binlog是逻辑日志,而InnoDB存储引擎层面的重做日志是物理日志。
3).两种日志与记录写入磁盘的时间点不同,二进制日志只在事物提交完成后进行一次写入,而redo log的重做日志在事物的进行过程中不断地被写入。
4).binlog不是循环使用,在写满或者重启之后,会生成新的binlog文件,但是redo log是循环使用的。
4. 为什么两个日志都要用,只用其中一个不可以吗
首先,MySQL在最开始用的不是InnoDB模型,而是使用的自带的MySAM引擎,但是他没有一个刷新自身的功能,而是binlog的日志只用于归档,所以只依靠binlog的话是没有crash-safe的功能的,所以需要InnoDB的crash-safe来相辅相成吧。
边栏推荐
猜你喜欢

TCP 糊涂窗口综合症(silly window syndrome)与 rate-based 流控

最大子数组异或和

About the use of go modules environment construction and package management tools

WordPress主题分享:Avada主题v7.8.0免费下载 2022年最新版

关于Go Modules环境搭建和包管理工具的使用

Responsive form style transparent design

MySQL locking mechanism

此主机支持Intel VT-x ,但Intel VT-x处于禁用状态

shell第三天小练习 通过自搭建dns服务器访问自搭建nextcloud网盘服务

Study with passion
随机推荐
OpenPose:使用部分亲和场的实时多人 2D 姿势估计
20220707 线程学习 继承
MySQL---ONE 基础语法
Applet: the picker view selector scrolls quickly. When confirming, the "value displays an error."“
响应式表单样式透明设计
10. Find out the JVM operation status
Redis has three modes -- master-slave replication, sentinel mode, and cluster
Go+mysql+redis+vue3 simple chat room, bullet 5: synchronize messages to MySQL using message queues and scheduled tasks
2022 latest Chinese Camtasia studio computer recording screen tool
推荐一个讲即时通信的博客
MySQL storage model
Une seule ligne de texte dépasse l'ellipse partielle, plusieurs lignes de texte dépassent l'ellipse partielle, spécifiez plusieurs lignes
PHP uploads Excel files through form forms and imports Excel data into the database
【华为HCIE考试卷在哪买?】
System. getProperty
此主机支持Intel VT-x ,但Intel VT-x处于禁用状态
Explanation of the taste of snow vegetables -- searching for Literature
利用备份恢复数据库,但是没有控制文件文件如何解决
Pytest interface automated testing framework | confitest Py and @pytest Fixture() combination
A set of simple multipurpose form widget code