首页 > 代码库 > DB2日志满解决办法
DB2日志满解决办法
在执行一个大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日志满解决办法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。