码迷,mamicode.com
首页 > 数据库 > 详细

DB2日志满解决办法

时间:2017-08-01 19:15:56      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:需要   sqlstate   data   date   use   grep   数据   方便   方法   

在执行一个大SQL事务时,DB2有时候会报出错误:

The transaction log for the database is full.. SQLCODE=-964, SQLSTATE=57011, DRIVER=4.12.79

这个错误产生的原因是:

     在执行一个大型的SQL事务时,在提交前,数据库会将执行的内容记入日志中,方便万一执行不成功后的回滚。但是日志大小会有限制,一旦达到了日志文件的最大上限,但是事务仍然没有执行完,则会报出上述错误。

错误的解决方法:

     (1)首先连接到DB2数据库:
     db2 connect to <DB name> user <username> using <passwd>
     
     (2)读取日志相关的配置文件
     db2 get db cfg for <DB name> | grep LOG
 
     (3)涉及日志大小的变量有以下内容
     LOGFILSIZ:单个日志文件的大小
     LOGPRIMARY:主日志文件个数
     LOGSECOND:辅助日志文件个数
     则总日志大小为:(LOGPRIMARY + LOGSECOND)* LOGFILSIZ * 4KB
 
     (4)修改以上三个变量的内容
     修改前需要注意几个事项:
     a)连接的用户必须要有DBA权限;
     b)设置参数值的时候,要考虑到自身硬盘的大小
     具体操作指令为:
     db2 update db cfg for <DB name> using <parametre> <value>
     例如:db2 update db cfg for SEAT using LOGFILSIZ 10240

DB2日志满解决办法

标签:需要   sqlstate   data   date   use   grep   数据   方便   方法   

原文地址:http://www.cnblogs.com/fushou/p/7269753.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!