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  双写页数
        Value: 98848391
*************************** 2. row ***************************
Variable_name: Innodb_dblwr_writes  写入次数
        Value: 9607931

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

本文由mdnice多平台发布

相关推荐
柒只猫~011417 小时前
直播场控工具怎么选?先过形态、计费、触发这三层
程序人生
秋天的怀念_David2 天前
算法一千零一夜 · 第十七夜 长街点灯
java·程序人生·算法
可爱系程序猿2 天前
佳能 MF645Cx Windows 11 驱动下载安装:UFR II 队列可打印但扫描入口缺失的排查
程序人生·电脑·1024程序员节
郝学胜-神的一滴2 天前
游戏设计:原型与开发 11:用概率与电子表格搞定骰子系统
程序人生·游戏·游戏策划·1024程序员节·游戏设计
burg_xun3 天前
【生命科学 Agent】推理平台(二)
人工智能·程序人生·系统架构
可爱系程序猿3 天前
nvcuvid.dll 加载失败定位:CUDA 视频解码、驱动接口与进程位数逐项核查
运维·服务器·程序人生·电脑·音视频
syagain_zsx4 天前
BRpc 二次封装:Channel 管理、服务管理与回调工厂
c++·学习·程序人生·rpc·谷歌
可爱系程序猿5 天前
OpenCV 项目启动时报 opencv_world480.dll:先核对构建与架构
人工智能·opencv·程序人生·架构·电脑
Pin_Qing5 天前
缓存能活多久,现在是个要算的参数
java·大数据·开发语言·人工智能·程序人生
Codiggerworld5 天前
从“装一套协议”到“扔进终端”:MCP 与 CLI 的 Agent 工具层之争
人工智能·程序人生·ai编程