db2事务日志满解决方法(咋个办呢 zgbn)

当DB2事务日志满时,会导致SQL0964C错误。解决方法包括增大LOGPRIMARY和LOGSECOND参数,调整LOGFILSIZ,重启数据库。在日志空间未用尽但被长时间未提交事务占用时,可以使用FORCE APPLICATION命令强制结束应用以释放日志空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

db2事务日志满解决方法

2011-10-20 09:55:00 发表于网易博客

故障描述

在删除一个表里8万多条数据的时候报了如下错误:

SQL0964C The transaction log for the database is full,用db2 ? sql0964c查帮助,确定是事务日志满。

解决方法

增大每个事务日志文件大小,增加主日志文件数量和第二事务日志数量

db2 update db cfg for using LOGPRIMARY 50

db2 update db cfg for using LOGSECOND 20

db2 update db cfg for using LOGFILSIZ 10240

重启数据库,再删除。成功。

IBM的解答

DB2 使用的活动日志的最大空间是由下面公式:
(logprimary + logsecond) * logfilsiz * 4096
计算出的大小来决定的(logprimary,logsecond,logfilsiz是数据库配置参数)。若该空间已全部被分配,而应用仍试图请求更多活动日志空间时,就会发生日志满的情况,此时,用户的更新、删除或插入操作都会使 DB2DIAG.LOG 中写入以下信息:
SQL0964C 数据库的事务日志已满。
DB2 活动日志满通常是由于存在大量未提交事务的数据,使得活动日志的空间不能及时释放,使新的事务无法申请到可用日志空间,而最终报出 SQL0964C 的错误所致。为使应用程序成功运行,而不是被回滚,通常会考虑根据情况选择增大以上公式中的某些数据库参数,以增大活动日志空间来解决这一问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值