InnoDB实例恢复

InnoDB实例恢复

在InnoDB引擎中,存在redo log用来做数据的恢复操作. 但是了解了redo log的原理之后发现,redo log中日志并不只是在事务提交的时候才会写入磁盘,而是在事务的进行中就可能已经写入磁盘了,并且一个redo log中的一个log块可能包含多个事务redo log. 当时当一个事务做了一系列事情之后,还未提交,但是数据库宕机了,并且redo log中某些操作已经写回了磁盘,这个时候把数据库恢复到之前的状态,将会有存在某些未提交的数据.
主要是redo log中不仅保存数据修改的日志,还会保存undo log日志信息.在数据库启动的时候,会首先使用redo log中的数据将数据库恢复到宕机之前的状态,之后在通过undo log来回滚数据库宕机的时候为提交的数据.这样就保证了数据库事务隔离性和一致性.