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

参照 http://blog.csdn.net/russle/archive/2010/06/30/5704354.aspx

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


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 DBSID

日志文件大小(4KB)     
(LOGFILSIZ) = 1024         ***************************需要修改
主日志文件的数目                        
(LOGPRIMARY) = 13           ***************************需要修改
辅助日志文件的数目                       
(LOGSECOND) = 4            ***************************(是否要修改根据具体情况而定)
修改相关的参数:
db2 update db cfg for DBSID using LOGFILSIZ 2048

DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

SQL1363W  为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,必须在所
有应用程序都与此数据库断开连接之后,更改才会生效。
db2 update db cfg for DBSID 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 table"


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

db2 update db cfg for DBSID using LOGSECOND 5

DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。
db2 get db cfg for DBSID

日志文件大小(4KB)                         (LOGFILSIZ) = 2048
主日志文件的数目                           (LOGPRIMARY) = 20
辅助日志文件的数目                          (LOGSECOND) = 4

你可能感兴趣的:(java,sql,jdbc,db2,IBM)