redo log 日志 ->持久性
重做日志,记录的是事务提交时数据页的物理修改,是用来实现事务的持久性。 主要有重做日志缓冲(redo log buffer)以及重做日志文件(redo log file)组成,前者在内存,后者在磁盘。
当事务提交后会把所有修改信息都存到该日志文件中,用于在刷新脏页到磁盘,发生错误时,进行数据恢复使用。
在事务中将增删改的数据记录到redo log buffer,事务提交时会将redo log buffer 刷新到磁盘文件中。若脏页刷新失败,则可以使用redo log 恢复重做。
redo log file采用追加的方式将随机的数据操做记录,故可以将随机IO变更为顺序IO操作,也就是WAL(write-Ahead-Logging,先写日志)机制,所以能提高性能。
undo log 日志 ->原子性
回滚日志,用于记录数据段被修改前的信息。
作用:提供回滚和MVCC(多版本并发控制)
undo log 是逻辑日志,它记录的是相反的,比如当delete一条记录时,undo log会记录一条insert 记录。
undo log 采用段方式进行管理和记录,存放在rollback segment回滚段中(1024个)。