释放状态为 U-B 或 F 的日志文件

如果日志文件已备份但仍在使用中(状态为 U-B),那么说明日志文件中的某些事务仍在进行,或日志文件包含快速恢复所需的最旧更新。 由于过去已使用过状态为 F 的日志文件,因此该文件将与状态为 U-B 的日志文件一样遵循相同的规则。

要释放正在使用的已备份日志文件,请执行以下操作:

  1. 如果您不希望等待至事务完成,可将数据库服务器切换到静默方式。
    请参阅立即从联机更改到静默方式。任何活动的事务将回滚。
  2. 使用 onmode -c 命令以强制产生一个检查点。执行此操作的原因是状态为 U-B 的日志文件可能包含最旧的更新。
已备份但不在使用中(状态为 U-B)的日志文件无需释放。在以下示例中,日志 34 无需释放,但日志 35 和 36 需要释放。日志 35 包含上一个检查点,而日志 36 已备份但仍在使用中。
34 U-B--   Log is used, backed up, and not in use
35 U-B-L   Log is used, backed up, contains last checkpoint
36 U-B--   Log is used, backed up, and not in use
37 U-C--   This is the current log file, not backed up
提示: 仅当逻辑日志没有通过活动的事务跨越并且不包含最旧的更新,您才能释放带有 U-B(而非 L)状态的逻辑日志。