| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> mysql中redolog和binlog的总结 -> 正文阅读 |
|
[大数据]mysql中redolog和binlog的总结 |
一.redolog1.redo log的概念 redolog是物理日志,默认大小是4G,记录在某个数据页上做了什么修改。有了 redo log,InnoDB 就可以保证即使数据库发生异常重启,之前提交的记录都不会丢失,这个能力称为 crash-safe。因为redo log 的写入机制是事务中有更新操作时就会将更新操作记录在 redo log buffer 中,在事务提交时,根据相关参数的设定,按照不同逻辑持久化到磁盘文件 2.redo log写入文件的过程简介 redo日志从生成到写入文件要要经历①redo log buffer ②page cache ③redo.file 最后把page cache写入file的时机可以自己设置,默认是已经有一个后台进程每1s进行一次完整的刷盘操作。当 redolog buffer 占用的空间即将达到 innodb_log_buffer_size的一半的时候,后台线程会主动刷盘 3.redo log 可设置的三个刷盘策略 innodb_flush_log_at_trx_commit的参数值作用(后台进程的刷盘和这个参数的刷盘是分别进行的,不冲突): ①0是事务提交后不刷盘,事务提交后日志只写入redo log buffer ②1是事务提交后马上执行完整刷盘(默认) ③2是事务提交后马上把redo log buffer的内容写到page cache
异常情况: ①当参数值为0时,mysql或者服务器挂了,redo log buffer中的数据全部丢失 ②当数值为2时,mysql挂了:因为日志数据在page_cache,所以数据不丢失.如果服务器挂了,数据丢失 注意:别忘了后台进程也在执行每1秒执行一次刷盘的操作 4.日志文件组 因为redo log的有点像循环队列的执行过程,其中write pos是记录当前位置,check point记录要擦除的位置,他们之间的空间是可写入数据的空间。环中write pos 写满了,check point就开始擦除了。 注意:每次myslq加载日志文件组恢复数据的时候,会清空加载过的redolog记录 二.binlogbinlog是逻辑日志,属于mysql server层,用于灾难后的数据恢复和mysql的主从复制 1.三种模式 ①statement :记录原始sql语句 ②row:记录数据值 ③mixed:statement和row两种混合使用 注意:statement模式由于是记录sql语句,所以比如当sql语句中用now()函数时会导致恢复的日期数据不一致,此时用row可以解决这个问题但是用row模式需要更大的空间来存储,恢复和同步更消耗IO性能。此时用mixed可以解决这个问题,mixed模式下会自动判断sql语句是否会引起数据不一致,如果会就用row模式,反之就用statement模式 2.刷盘时机 参数sync_binlog控制fsync的时机: 三.redolog和binlog的区别
本文参考自javaguid:MySQL三大日志(binlog、redo log和undo log)详解 | JavaGuide |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 13:32:09- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |