为了便于数据库系统的复原或逻辑恢复,数据库服务器生成一致性点,称为检查点。检查点是建立数据库系统的已知和一致状态时日志中的时间点。通常,检查点涉及到记录特定数量的信息,因此,如果发生故障,数据库服务器可在已建立的点上重新启动。
检查点的目的在于定期将逻辑日志中的重新启动点向前移动。如果检查点不存在而且发生故障,那么数据库服务器需要处理自系统重新启动以来逻辑日志中记录的所有事务。
检查点可在以下某个情境中出现:
通常,这些类型的事件会触发阻塞事务处理的检查点。因此,这些检查点称为阻塞检查点。
资源限制触发的检查点通常不会阻塞事务。因此,这些检查点称为非阻塞检查点。
但是,如果在检查点处理期间数据库服务器将要耗尽资源,那么在检查点处理的中段将出现事务阻塞,以保证耗尽资源之前检查点能够完成。如果事务被阻塞,那么服务器将更频繁的尝试触发检查点,以避免检查点处理期间的事务阻塞。有关更多信息,请参阅用于估计物理日志的大小的策略。
自动检查点引起数据库服务器触发更频繁的检查点,以避免事务阻塞。自动检查点尝试监视系统活动和资源使用情况(物理和逻辑日志使用情况以及缓冲池脏的程度)以能够及时地触发检查点,这样检查点的处理就可在物理日志或逻辑日志耗尽之前完成。
数据库服务器为逻辑日志空间的每个范围生成至少一个自动检查点。这保证了可开始快速恢复的检查点的存在。
使用 AUTO_CKPTS 配置参数可在数据库服务器启动时启用或禁用自动检查点。(可通过使用 onmode -wm 或 onmode -wf 来动态地启用或禁用自动检查点。)
手动检查点是您可以启动的基于事件的检查点。
数据库服务器提供了两种方法来确定发生意外中断时快速恢复所用时间。
RTO_SERVER_RESTART 配置参数可以是目标时间量,不能是保证的时间量。
可增加重新启动时间的多个因素也可影响快速恢复时间。这些因素包括回滚遇到意外中断时处于活动状态的长事务。
有关 RTO_SERVER_RESTART 和 AUTO_CKPTS 配置参数的更多信息,请参阅 GBase 8s 管理员参考 中有关配置参数的主题。