急!怎样处理 SQL0964C 数据库的事务日志已满。高分相送

老年程序员 2004-04-23 10:09:23
C:\>db2 delete from tmp_oldcrit
DB21034E 该命令被当作 SQL 语句来处理,因为它不是有效的“命令行处理器”命令。
在 SQL 处理期间,它返回:
SQL0964C 数据库的事务日志已满。 SQLSTATE=57011


这个问题怎么办?能让数据库不写事务日志吗?
...全文
1191 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cosmosfang 2004-07-09
  • 打赏
  • 举报
回复
SQL0964C数据库的事务日志已满。

解释:

已使用事务日志中的所有空间。

若使用具有辅助日志文件的循环日志,则尝试分配和使用这些日志。当文件
系统没有更多空间时,不能使用辅助日志。

若使用归档日志,则文件系统不提供空间来包含新日志文件。

不能处理该语句。

用户响应:

在接收到此消息 (SQLCODE) 时,执行 COMMIT 或
ROLLBACK,或重试该操作。

若并行应用程序正在更新数据库,则重试该操作。当另一个应用程序完成事
务时,可能释放日志空间。

发出更频繁的落实操作。若事务还未落实,则当落实事务时,可能会释放日
志空间。设计应用程序时,应考虑何时落实已更新的事务,以防止日志已满
的情况。

若发生死锁,则更频繁地检查它们。这可以通过减小数据库配置参数
DLCHKTIME 来实现。这将检测到死锁,并且很快解决(通过
ROLLBACK),这将释放日志空间。

若经常发生这种情况,则增大数据库配置参数以允许更大的日志文件。更大
的日志文件需要更多空间,但是减少了应用程序重试该操作的需要。

若正在安装样本数据库,则删除它,并再次安装样本数据库。
老年程序员 2004-06-09
  • 打赏
  • 举报
回复
谢谢 kaibinsj(天翔)
老年程序员 2004-06-08
  • 打赏
  • 举报
回复
update 语句也会出这样的问题,能让他也不写日志吗?
kaibinsj 2004-06-08
  • 打赏
  • 举报
回复
好像应该用的是归档日志,才会出现这个问题吧!
使用循环日志,3个日志文件会循环写的。
解决方法就是改为使用循环日志,但是怎么改,我给找不到了。
另一种方法就是在参数里把日志文件个数调大了,默认是3个,调大比如10个就可以了。
jlwei888 2004-05-08
  • 打赏
  • 举报
回复
你用的是循环日志吧

原因,表中数据量过大,delete 时,会写入日志,但日志容量过小。

方法: 增大日志容量、数据量
或 减少一次的删除数剧量,分多次删除。
或 先drop table ..
再create table.. 这样不写日志

whoami1618 2004-04-30
  • 打赏
  • 举报
回复
执行一下commit或rollback试试

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧