DB2数据库学习之日志前滚后滚

一、DB2日志相关

DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。

查看数据库日志方式:

db2 get db cfg for dbname |grep -i log

 Log retain for recovery status                          = NO

  User exit for logging status                            = YES

  Log retain for recovery enabled             (LOGRETAIN) = OFF

  User exit for logging enabled                (USEREXIT) = OFF

如果为上述方式则为循环日志

归档日志模式:db2 update db cfg for using logretain on

注:改为on后,查看数据库配置参数logretain的值时,实际显示的是recovery。改变此参数后,再次连接数据库会显示数据库处于备份暂挂(BACKUP PENDING)状态。这时,需要做一次对数据库的脱机备份(db2 backup db ),才能使数据库状态变为正常。

循环日志模式:db2 update db cfg for using logretain off

一.日志概述

 

任何数据库管理系统都必须拥有确保数据一致性和可恢复性的机制。关系数据库系统为确保那些非常重要的特性所使用的众多机制之一是事务性日志记录。在本文中,我们将定义和讨论事务性日志记录的类型,及如何分配日志文件、如何存储它们。

 

数据库存储了供应用程序访问和处理的数据。那些应用程序会插入、读取、更新或删除数据。每一个这样的活动都是在一个事务中执行的,该事务被 定义成“应用程序过程中一个可恢复的操作序列”。除非已经提交了事务(也称作“工作单元”),否则它不会影响数据库。 

 

将数据库操作组合到事务中只是确保数据一致性解决方案的一半。另一半是称作预写式日志记录(write-ahead logging)的数据库管理器实现。不管事务是否被提交,只要它们发生,就会记录这些事务。在将任何数据从缓冲池写到数据库结构之前,事务会从日志缓冲区(log buffer)写到 日志文件(事务性日志记录)。用于记录事务的文件叫做 事务日志 。

 

 

二.日志分类

 

DB2 UDB 有两种可用的日志记录类型 — 循环(circular)日志记录和 归档(archive)日志记录。其中归档日志又分为联机归档日志和脱机归档日志。 

2.1循环日志记录

 

循环日志记录是数据库使用的缺省日志记录策略。在此策略中,一旦日志目录中最后一个主日志文件被写满了,就会将新的事务写到第一个日志文件中,从而覆盖现有的日志数据。这些新事务会继续依次覆盖每个旧日志文件。这种日志记录方法确保了所有已提交事务的数据一致性,这样就可以执行应急恢复。

 

循环日志记录通常在数据仓库环境中使用,在该环境中,恢复数据库需要的只是恢复数据库映象的问题。该策略不应该用在线事务处理(on-line transaction processing,OLTP)环境,因为它不可能进行前滚恢复。

2.2归档日志记录

 

与循环日志记录相比,当最后一个日志文件写满时,归档日志记录过程会创建一个新的日志文件,这样将来的事务就不会覆盖现有的日志文件。当初始化数据库时,系统会在活动日志目录中分配一定数量、指定大小的主日志文件。这个数量由数据库配置参数控制。当主日志文件都写满时,就会“根据需要”创建辅助日志文件,直到创建了最大数量的辅助日志文件为止。一旦达到了这个数量,如果需要附加的日志空间,就会发出一个错误,指出没有更多的可用日志文件,所有数据库活动停止。 

 

利用归档日志记录,就可能采取联机(在线)数据库备份,在执行这一操作期间,会继续记录数据库活动。如果数据库崩溃或发生故障,就会使用全备份映象,然后执行使用归档日志的前滚操作,通过前滚到日志结尾,将数据库恢复到时间点状态或最近的一致状态,从而恢复数据库。

有两种归档日志:

联机归档日志: 活动日志中所有改动对正常处理已不需要,即该日志中所记录的事务都已提交并写入数据库文件时,该活动日志转换为联机归档日志。称之为联机,是由于它们与活动日志存放在同一个目录下。 

脱机归档日志: 将联机归档日志从活动日志目录下Copy到另外的地方存档,就称为脱机归档日志。这些日志可能在数据库前滚恢复的时候仍然需要。

参考链接:http://blog.csdn.net/fuwencaho/article/details/24190013

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章