条件 1:逻辑日志填充至高水位标志

在两阶段落实中,将阻拦正在等待协调者指令的参与者数据库服务器完成其事务。因为事务保持打开,所以包含与该事务相关联的记录的逻辑日志文件无法释放。结果是逻辑日志由于并发用户的活动而继续填充。

如果当参与者正在等待时,逻辑日志填充至长事务高水位标志的值 (LTXHWM),那么数据库服务器将指导所有拥有长事务的数据库服务器线程开始回滚这些长事务。如果预落实的工作片段就是该违规的长事务,那么数据库服务器启动启发式回滚。也就是说,该数据库服务器在没有协调者的指令或协调者不知道的情况下正在回滚预落实的工作片段。

在两阶段落实中,包含与该工作片段相关联的记录的逻辑日志文件视为打开,直到写入 ENDTRANS 逻辑日志记录。该类型的事务与涉及单个数据库服务器的事务(其中回滚实际关闭事务)不同。

逻辑日志可能继续填充直至达到互斥高水位标志 (LTXEHWM)。如果发生这种情况,所有用户线程暂挂,但当前回滚或当前落实的那些线程除外。在两阶段落实应用场合中,打开的事务使您不能备份逻辑日志文件以及释放逻辑日志中的空间。在这些特殊情况下,逻辑日志可以完全填充。如果发生这种情况,那么参与者数据库服务器关闭,且您必须执行数据复原。