使用长时间运行的事务的检查点
长时间运行的事务如何影响日志文件的复用。
图1 显示了长期运行的交易对日志文件重用性的影响。 在此示例中,长时间运行的事务已在显示的第一个检查点之后输入日志,显示为 LR 1。 直到第三个检查点之后,事务才会完成 (在 LR 2 点)。 将保留从 LR 1 开始的所有日志信息,以允许在该事务完成之前 (如果需要) 恢复该事务。
在长时间运行的事务完成后,在 LR 2 上,日志头将逻辑移至 Checkpoint 3 (最新记录的检查点)。 不再需要包含 Checkpoint 3 头 2 之前的日志记录的文件。 如果您正在使用循环日志记录,那么可以复用该空间。
如果在长时间运行的事务完成之前主日志文件完全已满,那么可以使用辅助日志文件来避免日志已满。
将完全由队列管理器控制的活动 (例如,检查点) 调度为尝试将活动保留在主日志中。
但是,当需要辅助日志空间来支持队列管理器控制之外的行为 (例如,某个事务的持续时间) 时,队列管理器会尝试使用任何已定义的辅助日志空间,以允许该活动完成。
如果在使用总日志空间的 80% 时该活动未完成,那么队列管理器将启动回收日志空间的操作,而不管这是否会影响应用程序。
当移动日志头并且您正在使用循环日志记录时,主日志文件可能符合复用条件,并且记录器在填充当前文件后,将复用可供其使用的第一个主文件。 如果您正在使用线性日志记录,那么日志头仍会移动到活动池下,并且第一个文件将变为不活动状态。 将格式化新的主文件并将其添加到池底部,以便为将来的日志记录活动做好准备。
