mysql学习:日志

日志

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

mysql学习:日志
http://example.com/2024/04/13/mysql学习:日志/
作者
WoodQ
发布于
2024年4月13日
许可协议