数据库日志记录

        数据库日志记录是高可用的数据库解决方案设计的重要部分,因为从故障中恢复过来,以及同步主数据库和辅助数据库都需要用到数据库日志。 所有数据库都有相关的日志。这些日志保存了有关数据库更改的记录。如果需要将数据库复原至上一完整、脱机备份之前的一个点,那么需要日志才能将数据前滚至故障点。
 
        支持两种类型的 DB2® 数据库日志记录:循环归档。每种类型都提供了不同水平的恢复能力:
 
        选择归档日志记录的好处是前滚恢复可以使用归档日志和活动日志来将数据库复原至日志的结尾或特定时间点。归档日志文件可用来恢复备份完成之后所进行的更改。这不同于循环日志记录,使用循环日志记录时只能恢复至备份时间,并且在该时间之后进行的所有更改都会丢失。
 
 

循环日志记录

       当创建新数据库时,循环日志记录是缺省行为。(将 logarchmeth1 和 logarchmeth2 数据库配置参数设置为 OFF。)对于这种类型的日志记录,只允许完整的脱机数据库备份。进行完全备份时,数据库必须脱机(用户不可访问)。
      

        如它的名称所表示的那样,循环日志记录使用一个联机日志“环”,提供对事务故障和系统崩溃的恢复。仅使用和保留日志到确保当前事务的完整性这样一个程度。循环日志记录不允许将数据库在上次完全备份操作后执行的事务中前滚。上次备份操作后发生的所有更改都将丢失。因为这种类型的复原操作将数据恢复至进行完全备份的特定时间点,所以它称为版本恢复。
 

        崩溃恢复期间,使用活动日志来防止故障(系统电源或应用程序错误)使数据库处于不一致的状态。活动日志位于数据库日志路径目录中。
 

归档日志记录

      归档日志记录是针对前滚恢复使用的。已归档日志是已从活动日志路径复制到另一个位置的日志文件。 您可以通过使用 logarchmeth1 和/或 logarchmeth2 数据库配置参数,使您或数据库管理器能够管理日志归档过程。

      仅当将数据库配置为归档日志记录时,才支持进行联机备份。在联机备份操作期间,将记录对数据库的所有活动。复原联机备份映像时,必须至少将日志前滚至完成备份操作的时间点。为此,日志在复原数据库时必须已归档并可用。在联机备份完成后,数据库管理器将强制关闭当前活动日志,从而使日志归档。这样就可确保您的联机备份有一组完整的归档日志可用于恢复。

      logarchmeth1 和 logarchmeth2 数据库配置参数允许您更改已归档日志的存储位置。logarchmeth2 参数允许您将日志文件归档到另一个单独的位置。newlogpath 参数影响活动日志的存储位置。

      除非您已指定要管理活动日志(通过使用 LOGRETAIN 值),否则在归档活动日志路径中的日志文件并且崩溃恢复不再需要这些文件之后,数据库管理器会将其除去。如果启用了无限日志记录,并且需要使空间可用于更多活动日志文件,那么在归档日志文件之后,数据库服务器会重命名这些文件。

日志控制文件


       当数据库在出现故障后重新启动时,数据库管理器应用存储在日志文件中的事务信息来将数据库返回至一致状态。要确定需要将日志文件中的哪些记录应用于该数据库,数据库管理器使用日志控制文件中记录的信息。

数据库弹性冗余
    

      数据库管理器维护日志控制文件的两个副本,SQLOGCTL.LFH.1 和 SQLOGCTL.LFH.2,以便当一个副本损坏时,数据库管理器还可使用另一副本。

性能注意事项


    应用日志控制文件中包含的事务信息会增加出现故障后重新启动数据库的开销。可以使用 softmax - 恢复范围和软检查点时间间隔配置参数 来配置数据库管理器将事务写入磁盘的频率,以减少崩溃恢复期间需要处理的日志记录数。