DB2日志类型

鉴于CSDN无故删除博文,本博客不再更新,暂时迁至http://www.db365.net


一直想写一篇关于数据库日志和数据库恢复的文章,由于心情原因一直没写。今天先把数据库日志部分写出来。

 

数据库中有两类日志:

    循环日志

    归档日志

 

1.循环日志

循环日志是db2默认的。这种类型的日志以循环的模式重用日志。

在这种模式下,只要某个日志文件中包含的所有事物提交。就是说,如果日志仍然是活动日志,那么他就不可以被重用。循环日志包括两部分:

    主日志文件

    辅日志文件

主日志预先分配,辅日志只有在需要的时候才分配。

主日志文件和辅日志文件的数目有LOGPRIMARY和LOGSECOND来决定。

 

2.归档日志

归档日志要求用户经常保存日志。所有日志文件将保留下来。所以日志目录(或归档目录)将包含越来越多的日志文件。

活动日志:如果某个日志满足以下条件中的任一个,就属于活动日志:

    包含尚未提交或回滚的事物

    包含已经提交但是更改尚未写到磁盘上的事物

在线归档日志:包含已提交且已写到磁盘上的日志。这些日志与活动日志放在相同的目录。

离线归档日志:已经从活动日志目录转移到另一个目录上的归档日志。

要设置日志为归档模式,需要设置LOGARCHMETH1参数为以下任意情况:

    LOGRETAIN   日志文件将被保留在活动日志目录中。

    USEREXIT   日志的归档和检索是由用户提供的用户出口程序自动执行,这个出口程序必须由db2uext2调用。用于将在线归档日志移动到与活动日志目录不同的一个目录中。当在ROLLFORWARD操作期间需要离线归档日志时,这个程序还可以用于将离线归档日志取出到活动日志目录中。

    DISK:directory_name   使用与USEREXIT相同的算法。db2不调用用户出口程序,而是自动将日志从活动日志归档到指定目录。

    TSM:[management class name]   使用与USEREXIT相同的算法。日志被归档到本地TSM服务器上。

    VENDOR:library_name   使用与USEREXIT相同的算法。日志使用指定供应商的库来归档。

归档日志不是默认的日志工作方式,但它是允许用户执行前滚(roll forward)回复的唯一方法。

 

3.无限日志

采用循环日志或者归档日志,日志目录均可能被填满。如果启用无限日志,db2就会在一个日志被填满时立即归档该日志。他不会等到日志中所有事物都被提交且写入磁盘。这样可以保证活动日志目录永远不会被填满。但是这样可能延迟紧急事故恢复时间,所以不建议采用。如果要启用:

    将LOGSECOND数据库参数设为-1

    启用归档日志模式

 

日志相关参数

LOGPRIMARY

LOGSECOND

LOGFILSIZ:用于指定一个日志文件的大小(4kb页的个数)

LOGBUFSZ

NEWLOGPATH

SOFTMAX:软检查点,是个百分数,例如60%表示日志文件写满60%时,数据库执行checkpoint操作,把内存中的已提交的数据(脏页)写到磁盘

MINCOMMIT

LOGARCHMETH1:第一个日志归档方法

LOGARCHMETH2

MIRRORORLOGPATH

TRACKMOD:启用增量备份

通过命令update db cfg命令更改参数。

 

启用了归档日志的数据库成为可恢复数据库。

循环日志的数据库称为不可恢复数据库。

 

下次将写一篇关于数据库备份恢复的文章。

你可能感兴趣的:(DB2日志类型)