鉴于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命令更改参数。
启用了归档日志的数据库成为可恢复数据库。
循环日志的数据库称为不可恢复数据库。
下次将写一篇关于数据库备份恢复的文章。