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

MySQL双写机制

双写机制

问题的出现

在发生数据库宕机时,可能Innodb正在写入某个页到表中,但是这个页只写了一部分,这种情况被称为部分写失效,虽然innodb会先写重做日志,在修改页,但是重做日志中记录的是对页的物理操作,但是如果这个页本身已经发生了损坏,对页进行重做是没有意义的

双写的出现

为了解决这个问题,提出了双写机制

双写原理

双写(doublewrite)由两部分组成,一部分是内存中的doublewrite buffer,大小为2M,另一部分是屋里磁盘上共享表空间中连续的128个页,大小也是2M。再对缓冲池中的脏页进行刷新时,并不直接写磁盘,而是会通过memcpy函数将脏页复制到内存中的doublewrite buffer,之后通过doublewrite buffer再分两次,每次1M顺序地写入共享表空间的物理磁盘上,然后马上调用fync函数,同步磁盘,避免缓冲写带来的问题

-- 查看doublewrite的运行情况
show global status like 'innodb_db%' \G
*************************** 1. row ***************************
Variable_name: Innodb_dblwr_pages_written  双写页数
        Value98848391
*************************** 2. row ***************************
Variable_name: Innodb_dblwr_writes  写入次数
        Value9607931

https://zhhll.icu/2021/数据库/关系型数据库/MySQL/进阶/31.双写机制/

本文由 mdnice 多平台发布

http://www.lryc.cn/news/299290.html

相关文章:

  • uniapp的配置和使用
  • 【ES】--Elasticsearch的分词器深度研究
  • 【Langchain Agent研究】SalesGPT项目介绍(三)
  • Java安全 URLDNS链分析
  • 【网站项目】026校园美食交流系统
  • 使用raw.gitmirror.com替换raw.githubusercontent.com以解决brew upgrade python@3.12慢的问题
  • 深度学习的进展
  • [高性能] - 缓存架构
  • django实现外键
  • 飞天使-k8s知识点14-kubernetes散装知识点3-Service与Ingress服务发现控制器
  • 任务调度
  • 深刻反思现代化进程:20世纪与21世纪的比较分析及东西方思想家的贡献
  • 【FTP讲解】
  • java面试题整理
  • 探索NLP中的N-grams:理解,应用与优化
  • JAVA-数组乱序
  • Stable Diffusion 模型下载:majicMIX reverie 麦橘梦幻
  • Java开发四则运算-使用递归和解释器模式
  • [NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析
  • 5.深入理解箭头函数 - JS
  • 高效的工作学习方法
  • 【MySQL】-17 MySQL综合-3(MySQL创建数据库+MySQL查看数据库+MySQL修改数据库+MySQL删除数据库+MySQL选择数据库)
  • 【教学类-46-08】20240212立体鱼1.0
  • 【JVM篇】什么是jvm
  • Vulnhub靶场 DC-9
  • day2-理解 linux 云计算
  • Android 13.0 开启禁用系统接收短信功能
  • compile error ESP32cam.h no such file or directory
  • 使用 Chainlit, Langchain 及 Elasticsearch 轻松实现对 PDF 文件的查询
  • Gitee的使用教程(简单详细)