单机存储引擎到mysql的思考三

上一篇我们阐述mysql锁机制以及MCVV多版本并发控制消除
读写阻塞本篇我们看看redo log、undo log以及bin log

标题网址
单机存储引擎到mysql的思考一https://blog.csdn.net/xk4848123/article/details/105166855
单机存储引擎到mysql的思考二https://blog.csdn.net/xk4848123/article/details/105195921
单机存储引擎到mysql的思考三https://blog.csdn.net/xk4848123/article/details/105207797

redo log

redo中的re是重新,do是做,字面上来看是重做日志,没错事实上也就是重做日志。redo log在数据库重启恢复的时候被使用,因为其属于物理日志的特性,恢复速度远快于逻辑日志。

1.Write Ahead Log策略
Write-Ahead Log (WAL 预写式日志):对数据文件的修改(它们是表和索引的载体)必须是只能发生在这些修改已经记录了日志之后,也就是说,在描述这些变化的日志记录冲刷到永久存储器之后
这是事务ACID中D(Durability持久性)的要求。

2.CheckPoint技术和作用
a.缩短数据库的恢复时间
当数据库宕机时,数据库不需要重做所有日志,因为CheckPoint之前的页都已经刷新回磁盘。只需对CheckPoint后的重做日志进行恢复,从而缩短恢复时间
b.缓冲池不够用时,将脏页刷新到磁盘
当缓存池不够用时,LRU算法会溢出最近最少使用的页,若此页为脏页,会强制执行CheckPoint,将该脏页刷回磁盘
c.重做日志不可用时,刷新脏页
不可用是因为对重做日志的设计是循环使用的。重做日志可以被重用的部分,是指当数据库进行恢复操作时不需要的部分。若此时这部分重做日志还有用,将强制执行CheckPoint,将缓冲池的页至少刷新到当前重做日志的位置
d.CheckPoint做的事
将缓存池中的脏页刷回磁盘
3.LSN(Log Sequence Number)
LSN是用来标记版本的
LSN是8字节的数字
每个页有LSN,重做日志也有LSN,CheckPoint也有LSN
CheckPoint技术通过比对数据页和重做日志的LSN(版本)来进行恢复

undo log

1.Undo Log 保证事务的原子性,比如某一时刻数据库 DOWN 机了,一个事务正在处理。数据库重启的时候就要根据日志进行回滚,把未提交事务的更改恢复到事务开始前的状态。即,当数据 crash-recovery 时,所有已经 prepared 但是没有 commit 的 transactions 将会应用 undo log 做 roll back。
2.在 InnoDB 引擎中,用 Undo Log 来实现 MVCC
思考二中我们已经讲到了MVCC,这是还要做个补充
每张表的每一行还有一个隐式的列就是 undo log ptr(指向undo log的指针),这样RR隔离级别下就能找到相应版本的快照,保证可重复读。

binlog及主从复制

binlog是什么

binlog是mysql的逻辑日志,记录的是逻辑sql修改语句。

主从复制

介绍一下mysql主从是异步复制过程。master开启bin-log功能,日志文件用于记录数据库的读写增删需要开启3个线程,master IO线程,slave开启 IO线程 SQL线程,Slave 通过IO线程连接master,并且请求某个bin-log,position之后的内容。MASTER服务器收到slave IO线程发来的日志请求信息,io线程去将bin-log内容,position返回给slave IO线程。slave服务器收到bin-lo日志内容,将bin-log日志内容写入relay-log中继日志,创建一个master.info的文件,该文件记录了master ip 用户名 密码 master bin-log名称,bin-log position。slave端开启SQL线程,实时监控relay-log日志内容是否有更新,解析文件中的SQL语句,在slave数据库中去执行。那什么是半同步复制,又是哪个版本开始支持的呢。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值