db2日志有归档日志和循环日志。
一般对于需要实现联机备份的系统,采用归档日志;脱机备份的系统,采用循环日志。
关于数据库日志空间满:因为所有的日志均处于活动状态导致。
而commit执行后,会释放所占据的资源,其中包括日志。这样,被当前事务使用的日志在commit命令执行后,即变为非活动状态了。
-------------
关于归档日志的处理
假设 logprimary参数的值是13, logsecond参数的值是2。
表示主日志文件有13个,次日志文件最多可以分配2个(次日志文件是根据需要时,临时分配的)。
当提交一个很长的事务(需要用到15个以上的日志文件)时,首先将事务日志写到主日志文件,写满13个文件后,仍需记录事务。
这时,根据logsecond参数,分配第一个次日志文件,然后继续写事务日志。
写满第一个次日志文件后,仍需记录事务。分配第二个次日志文件,然后继续写事务日志。
这时,发现次日志文件也写满了。于是只能报错了,并将事务回滚。
当提交一个事务(需要用到3个日志文件)时,将事务日志写到主日志文件上。
在commit提交后,数据库管理器发现有三个主日志文件满了,于是再新建了三个空闲的主日志,保证可用的主日志文件是13个。
具体参考:
http://www.ibm.com/developerworks/cn/data/library/techarticles/0301kline/0301kline.html#logs#logs
http://www.db2china.net/club/viewthread.php?tid=11419
一般对于需要实现联机备份的系统,采用归档日志;脱机备份的系统,采用循环日志。
关于数据库日志空间满:因为所有的日志均处于活动状态导致。
而commit执行后,会释放所占据的资源,其中包括日志。这样,被当前事务使用的日志在commit命令执行后,即变为非活动状态了。
-------------
关于归档日志的处理
假设 logprimary参数的值是13, logsecond参数的值是2。
表示主日志文件有13个,次日志文件最多可以分配2个(次日志文件是根据需要时,临时分配的)。
当提交一个很长的事务(需要用到15个以上的日志文件)时,首先将事务日志写到主日志文件,写满13个文件后,仍需记录事务。
这时,根据logsecond参数,分配第一个次日志文件,然后继续写事务日志。
写满第一个次日志文件后,仍需记录事务。分配第二个次日志文件,然后继续写事务日志。
这时,发现次日志文件也写满了。于是只能报错了,并将事务回滚。
当提交一个事务(需要用到3个日志文件)时,将事务日志写到主日志文件上。
在commit提交后,数据库管理器发现有三个主日志文件满了,于是再新建了三个空闲的主日志,保证可用的主日志文件是13个。
具体参考:
http://www.ibm.com/developerworks/cn/data/library/techarticles/0301kline/0301kline.html#logs#logs
http://www.db2china.net/club/viewthread.php?tid=11419