1 快速恢复
数据库以正常方式从 online 模式切换到 offline 模式,都会自动执行一次 checkpoint,将内存的脏数据写回到磁盘,使磁盘和内存数据一致。然而,在一些异常情况下,内存数据没有及时写入到磁盘,磁盘和内存数据不一致。
在数据库重新启动时,都需要经过 Fast Recovery 的过程。如果数据库异常关闭,则 FastRecovery 需要使用物理日志(Physical log)和逻辑日志(Logical log)恢复到一致性状态。在介绍快速恢复过程之前,我们首先了解 GBase 8s 的物理日志和逻辑日志的相关知识。
数据库服务器每次启动时,都需要进行快速恢复(Fast recovery),使数据库服务器恢复到一致性状态。在最后一次 checkpoint 后,数据库运行了一些新的事务,这些事务中有些被逻辑提交(执行了 commit 语句),有些事务尚未结束。为了使数据库回到停机状态,需要将最后一次 checkpoint 后的这些已经结束的事务重做一遍,将那些尚未结束的事务回滚。我们将这个过程称为快速恢复。
快速恢复分成 2 个阶段:物理快速恢复和逻辑快速恢复。