redo log:重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性
该日志文件由俩部分组成日志缓冲(redo log buffer)以及重做日志文件(redo log file),前者是在内存中,后者在磁盘中,当事务提交之后会把所有修改的信息都存到该日志文件中,用于刷新脏页到磁盘,发生错误时,进行数据恢复和使用
undo log:回滚日志,用于记录数据被修改前的信息,作用包括俩个:提供回滚和MVCC控制(多版本并发控制)。
undo log和redo log记录物理日志不一样,它是逻辑日志,可以认为当delete一条记录时,undo log中会记录一条对应的insert日志,反之亦然,当update一条记录时,它记录一条对应相反的update日志。当执行rollback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚
undo log销毁:undo log在事务执行时产生,事务提交时,并不会立即删除undo log,因为这些日志可能还用于MVCC
undo log存储:undo log采用段的方式进行管理和记录,存放在前面介绍的rollback segment回滚段中,内部包含1024个undo log segment
undo log日志
回滚日志,在insert、update、delete的时候产生的便于数据回滚的日志
当insert的时候,产生的undo log日志只在回滚时需要。在事务提交后,可被立即删除。
而update、delete的时候,产生的undo log日志不仅在回滚时需要,在快照读时也需要,不会立即被删除
undo log版本链