检查点

数据库服务器会定期将缓冲池内的事务和数据清空到磁盘。直到将事务和数据清空到磁盘之前,数据和事务都处于流出的状态。除了在事务完成后立即强制将每个事务清空到磁盘,数据库服务器还将事务写入到逻辑日志中。数据库服务器在事务发生时记录事务。 如果出现系统故障,那么服务器执行以下操作:

为了便于数据库系统的复原或逻辑恢复,数据库服务器生成一致性点,称为检查点。检查点是建立数据库系统的已知和一致状态时日志中的时间点。通常,检查点涉及到记录特定数量的信息,因此,如果发生故障,数据库服务器可在已建立的点上重新启动。

检查点的目的在于定期将逻辑日志中的重新启动点向前移动。如果检查点不存在而且发生故障,那么数据库服务器需要处理自系统重新启动以来逻辑日志中记录的所有事务。

检查点可在以下某个情境中出现:

自动检查点引起数据库服务器触发更频繁的检查点,以避免事务阻塞。自动检查点尝试监视系统活动和资源使用情况(物理和逻辑日志使用情况以及缓冲池脏的程度)以能够及时地触发检查点,这样检查点的处理就可在物理日志或逻辑日志耗尽之前完成。

数据库服务器为逻辑日志空间的每个范围生成至少一个自动检查点。这保证了可开始快速恢复的检查点的存在。

使用 AUTO_CKPTS 配置参数可在数据库服务器启动时启用或禁用自动检查点。(可通过使用 onmode -wm onmode -wf 来动态地启用或禁用自动检查点。)

手动检查点是您可以启动的基于事件的检查点。

数据库服务器提供了两种方法来确定发生意外中断时快速恢复所用时间。

RTO_SERVER_RESTART 配置参数可以是目标时间量,不能是保证的时间量。

可增加重新启动时间的多个因素也可影响快速恢复时间。这些因素包括回滚遇到意外中断时处于活动状态的长事务。

有关 RTO_SERVER_RESTART 和 AUTO_CKPTS 配置参数的更多信息,请参阅 GBase 8s 管理员参考 中有关配置参数的主题。