mysql学习:日志
日志
- 三大日志
- undo log,用于回滚数据
- redo log,用于保证持久性
- binlog,数据备份和主从复制,在server层实现
- redo log和bin log在恢复数据库上的区别
- binlog是追加写,写满一个文件,就新创建一个文件,可以恢复所有情况下的数据
- redo log是循环写,日志大小固定,保存的是innodb做的修改操作,用来恢复中途断电丢失的数据
- redo log是引擎层的实现,会记录哪些数据是否刷盘,同时恢复的粒度更细,可以精确要恢复的数据页
- binlog的三种格式
- statement默认:记录每一条sql语句
- row:只记录最后数据被修改成了什么样子
- mixed:混合模式,自动使用row或者statement
- 两阶段提交
- 准备阶段:redo log设置为prepare阶段,然后redo log刷盘
- 提交阶段:bin log刷盘,之后redo log设置为commit,如果没有刷盘成功,redo log不是commit,mysql会自动重启提交事务
mysql学习:日志
http://example.com/2024/04/13/mysql学习:日志/