DB2报sqlcode964错误,但是为什么一直没有回滚

DB2报sqlcode964错误,但是为什么一直没有回滚,第1张

原因:该数据库日志文件已满

解决办法:加大日志文件大小,增加日志文件个数,增加辅助日志文件个数

查看配置参数命令:get db cfg for <dbname>;

修改配置参数命令:

修改日志文件大小:update db cfg for <dbname> using LOGFILSIZ 4096

修改主日志文件个数:update db cfg for <dbname> using LOGPRIMARY 20

修改辅助日志文件个数:update db cfg for <dbname> using LOGSECOND 10

你每个命令带一个事务,其实跟没有事务是一样的,不成功是没有回滚的。

START TRANSACTION;

INSERT INTO `guwitest``cdn` (`id`, `operatorId`, `type`, `distributionTarget`, `distributionName`, `distributionDomain`, `status`) VALUES ('1', '1', 'cloudfront', 'metadata', '1', '1', '0');

create table guwitestaa(id int(10) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id));

ROLLBACK;

如果强行停止数据库实例,再启动实例的时候为了保持数据的一致性系统会自动触发崩溃恢复机制,此时数据库无法连接。

db2 list utilities show detail可以看到数据库处于crash recovery状态。

使用 NOT EXISTS 的子查询

NOT EXISTS 与 EXISTS 的工作方式类似,只是如果子查询不返回行,那么使用 NOT EXISTS 的 WHERE 子句会得到令人满意的结果。

例如,要查找不出版商业书籍的出版商的名称:

USE pubs

SELECT pub_name

FROM publishers

WHERE NOT EXISTS

(SELECT

FROM titles

WHERE pub_id = publisherspub_id

AND type = 'business')

下面是结果集:

pub_name

----------------------------------------

Binnet & Hardley

Five Lakes Publishing

Ramona Publishers

GGG&G

Scootney Books

Lucerne Publishing

(6 row(s) affected)

下面的查询查找已经不销售的书的名称。

USE pubs

SELECT title

FROM titles

WHERE NOT EXISTS

(SELECT title_id

FROM sales

WHERE title_id = titlestitle_id)

下面是结果集:

title

----------------------------------

The Psychology of Computer Cooking

Net Etiquette

(2 row(s) affected)

以上就是关于DB2报sqlcode964错误,但是为什么一直没有回滚全部的内容,包括:DB2报sqlcode964错误,但是为什么一直没有回滚、关于数据库的回滚、db2数据库正在回滚中能停掉数据库吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9504290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存