如果需要增大日志的数据量则需要进行计算和这样设置,这时日志容量已变为8192
Log file size (4KB) (LOGFILSIZ) = 8192
Number of primary log files (LOGPRIMARY) = 10
Number of secondary log files (LOGSECOND) = 4
现在的日志数据量为
计算公式如下:
数据库事务日志的数据量大小 = ( LOGPRIMARY + LOGSECOND )* LOGFILSIZ * 4KB
即:
( 10 + 4)* 8192 * 4KB = 458752 K = 458 M (大约数)
下面断开此数据库的所有连接
修改主日志文件个数: db2 update db cfg for <dbname> using LOGPRIMARY 15
修改辅助日志文件个数:db2 update db cfg for <dbname> using LOGSECOND 10
这时的大小=(15+10)*8192*4KB=819200K=819M (大约数)
然后停库再启库,问题得到解决。
补充知识:
1、主日志文件的数目 LOGPRIMARY
此数据库配置参数用来指定要预分配的主日志文件个数。主日志文件建立分配给恢复日志文件的固定存储器数量。在循环日志管理模式下,数据库事务将按顺序重复使用主日志,也就是当一个主日志已满时,顺序使用下一个主日志,如果主日志已满,则按需一次分配一个辅助日志,辅助日志在使用完后,将被释放。如果你发现数据库会经常分配辅助日志文件,则可能需要通过增大日志文件大小或增大主日志文件的数目来提高系统性能。
2、辅助日志文件的数目 LOGSECOND
此数据库配置参数用来指定按需分配的辅助日志文件个数。尽量不要把此参数的值设置成“ -1 ” ,“ -1 ”代表你在请求一个无限的活动日志空间,数据库也不会报数据库事务日志已满错误,如果空间不足则会报日志磁盘已满错误。
3、日志文件大小 LOGFILSIZ
此数据库配置参数用来指定日志文件的大小。
4、数据库事务日志已满错误
数据库事务日志已满错误是指当前事务无法写入到活动日志中(此时主日志文件和辅助日志文件已经全部用完或者没有足够当前事务写入的空间),需要注意的是,这个错误和日志磁盘空间已满是两个概念。数据库事务日志已满不是由于磁盘空间满引起的,而是由于没有落实的事务总体过大,超过了数据库事务日志所能容纳的最大大小所造成的。
当出现这样的错误时,不要尝试使用 DB2STOP FORCE 命令来强制停掉数据库,建议大家使用 FORCE APPLICATION 命令停掉引起这个错误的应用程序或者停掉所有的应用程序。也不建议大家使用 KILL 命令来杀掉任何 DB2 相关的进程。如果 使用DB2STOP FORCE命令hang住了,最后再尝试杀掉进程,重新DB2START或重启服务器。
本文出自:http://xjsunjie.blog.51cto.com/999372/1219692