当前位置: 首页 > news >正文

bin log 和 redo log有什么区别

问题

bin log 和 redo log有什么区别

我的回答

首先,这两种日志的作用不同。redo log是InnoDB引擎特有的,主要用于崩溃恢复,保证事务的持久性。而bin log是MySQL服务层的日志,主要用于主从复制和数据恢复。

从层次上看,redo log是物理日志,记录的是"在某个数据页上做了什么修改",比如对哪个数据页的哪个偏移量修改了什么内容;而bin log是逻辑日志,记录的是SQL语句的原始逻辑,比如"给ID=2的记录的c字段加1"。

在写入方式上,redo log是循环写入的,有固定大小,写满了就会覆盖最早的日志;bin log是追加写入的,写满一个文件会切换到下一个,不会覆盖。

在事务提交方面,redo log是事务执行过程中不断写入的,而bin log是在事务提交时一次性写入。这也导致了在崩溃恢复时,redo log可能包含未提交的事务记录,需要通过undo log回滚,而bin log只包含已提交的事务。

还有一个重要区别是,redo log是InnoDB特有的,其他存储引擎如MyISAM就没有;而bin log是MySQL服务层实现的,对所有存储引擎都有效。

在实际应用中,这两种日志配合工作:当数据库崩溃时,会先用redo log恢复InnoDB的数据,确保已提交事务的持久性;而在进行主从复制或数据恢复时,则会使用bin log重放SQL操作。

我之前在一个项目中遇到过数据库崩溃的情况,正是因为有redo log,才能快速恢复到崩溃前的状态,保证了数据的一致性。而在做数据库迁移时,bin log则帮我们实现了增量数据的同步。

http://www.xdnf.cn/news/1374625.html

相关文章:

  • Mybatis总结
  • 【如何解决Java中的ClassCastException类转换异常问题】
  • 基于Matlab结合肤色检测与卷积神经网络的人脸识别方法研究
  • 基于MATLAB/Simulink的单机带负荷仿真系统搭建
  • 分布式2PC理论
  • 使用 html2canvas + jspdf 实现页面元素下载为pdf文件
  • UE5 查找组件
  • 云原生安全架构设计与零信任实践
  • 预测模型及超参数:1.传统机器学习:SVR与KNN
  • 工业网络安全:保护制造系统和数据
  • HIVE的Window functions窗口函数【二】
  • 【Hadoop】Zookeeper、HBase、Sqoop
  • 全球位置智能软件CR10为73%,市场集中度高
  • Java中高效获取IP地域信息方案全解析:从入门到生产实践
  • jQuery版EasyUI的ComboBox(下拉列表框)问题
  • JS(面试)
  • Proxmox VE 中启用 CentOS 虚拟机的串口终端(xterm.js 控制台)
  • 深度剖析HTTP和HTTPS
  • .NetCore 接入 Nacos,实现配置中心和服务注册
  • 本地windows电脑部署html网页到互联网:html+node.js+ngrok/natapp
  • oracle 表空间扩容(增加新的数据文件)
  • 使用appium对安卓(使用夜神模拟器)运行自动化测试
  • STM32八大模式
  • 基于单片机空调温度控制测温ds18b20系统Proteus仿真(含全部资料)
  • 人机交互如何变革科普展示?哪些技术正成吸睛焦点?
  • 初春养生指南模板页
  • Rust 登堂 之 迭代器Iterator(三)
  • el-carousel在新增或者删除el-carousel-item时默认跳到第一页的原因和解决
  • betaflight configurator 如何正确烧写飞控
  • 基于muduo库的图床云共享存储项目(二)