关闭

DB2数据库事务日志已满案例解析

发表于:2013-7-01 10:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:xjsunjie    来源:51Testing软件测试网采编

  如果需要增大日志的数据量则需要进行计算和这样设置,这时日志容量已变为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

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号