DB2 The transaction log for the database is full. SQLSTATE=57011

正在用的数据库出现这个错误,现在按照已知的调整方面对数据库参数做了修改后可以正常使用,现在记录下这些修改。


COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/LINUXX8664] SQL0964C The transaction log for the database is full.

这个错误还是第一次遇到,于是记录了解决方法:

解决步骤:

先将事务显式终止:使用commit或rollback命令
db2 rollback
DB20000I SQL 命令成功完成。
查找当前的日志信息:
db2 get db cfg for ceshi
………………
日志文件大小(4KB)
(LOGFILSIZ) = 1024 ***************************需要修改
主日志文件的数目
(LOGPRIMARY) = 13 ***************************需要修改
辅助日志文件的数目
(LOGSECOND) = 4 ***************************(是否要修改根据具体情况而定)
………………
修改相关的参数:
db2 update db cfg for ceshi using LOGFILSIZ 2048
DB20000I UPDATE DATABASE CONFIGURATION 命令成功完成。

SQL1363W 为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,必须在所
有应用程序都与此数据库断开连接之后,更改才会生效。
db2 update db cfg for ceshi using LOGPRIMARY 20
DB20000I UPDATE DATABASE CONFIGURATION 命令成功完成。

SQL1363W 为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,必须在所
有应用程序都与此数据库断开连接之后,更改才会生效。

db2stop force
2007-09-14 14:38:41 0 0 SQL1064N DB2STOP 处理成功。
SQL1064N DB2STOP 处理成功。

db2start
2007-09-14 14:38:45 0 0 SQL1063N DB2START 处理成功。
SQL1063N DB2START 处理成功。

db2 "delete from aa where aa_num='2'"

DB21034E 该命令被当作 SQL
语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
SQL0964C 数据库的事务日志已满。 SQLSTATE=57011

db2 update db cfg for ceshi using LOGSECOND 5
DB20000I UPDATE DATABASE CONFIGURATION 命令成功完成。
db2 get db cfg for ceshi
………………
日志文件大小(4KB) (LOGFILSIZ) = 2048
主日志文件的数目 (LOGPRIMARY) = 20
辅助日志文件的数目 (LOGSECOND) = 4

你可能感兴趣的:(transaction)