MySQL运维—事务redo日志的作用

一、redo日志

1、内存页
内存数据页的变化

LSN:日志序列号(数据变化的版本号)
data page:磁盘数据页(tl.ibd)
logfite:redolog文件(ibIogfite0~1)

data buffer:数据缓冲区
redo log buffer:redol缓冲区

数据库要求:启动时,必须保证datapage和logfile中LSN一致才能,正常打开数据,否则就需要自动恢复
可以在CSR(CrashSafeRecovery)过程中,实现前滚的功能

2、CSR自动故障恢复
1)把用户需要修改的内容写入内存中,生成LSN=1
2)内存同时生成redo_log buffer区域,记录修改的过程,生成LSN=2
3)提交,写入磁盘
4)如果内存丢失,同时加载原来的数据,把redo_logfile也加载到内存中,重做一遍redo_log,使数据和redo_log中的LSN一致,启动mysql

MySQL运维---事务-redo日志的作用1
3、undo日志
1)用户修改数据的时候,同时生成undo(快照)
2)如果用户继续提交,undo则自动失效,如果选择回滚,就使用undo日志把数据恢复,LSN生成新的

二、隔离级别
1、隔离级别及锁机制
READ UNCOMMITTED
允许事务查看其他事务所进行的未提交更改
READ COMMITTED(幻读)
允许事务查看其他事务所进行的已提交更改
REPEATABLE READ(可重复读,防止幻读)****“
确保每个事务的SELECT输出一致
InnoDB的默认级别
undo的快照来实现读一致性

SERIALIZABLE
将一个事务的结果与其他事务完全隔离

2、查看

 MySQL运维-事务-redo日志的作用2

3、修改

 MySQL运维-事务-redo日志的作用3

图片[4]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维—事务redo日志的作用众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹 图片[5]众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站MySQL运维—事务redo日志的作用众客华禹 – 网站运维分享-IT技术资源教程-运维成长之路-个人随笔-华禹个人博客网站众客华禹

4、锁

MySQL运维---事务

例子:

MySQL运维---事务

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片