解決DB2 SQLCODE=-964日志文件滿的問題
在程序中需要使用下面的代碼 www.2cto.com
insert into a select * from b where ......
每次插入到a表的記錄有600多萬條,每次執行該語句DB2都會返回SQLCODE值為-964的錯誤碼,用db2 sql0964命令查看錯誤原因,DB2的解釋為SQL0964C The transaction log for the database is full. 然後按照DB2的說明把日志文件的大小和日志文件的數量都擴充了,命令如下:
Sql代碼
db2 update db cfg for MY_DATABASE using LOGFILSIZ 7900
db2 update db cfg for MY_DATABASE using LOGPRIMARY 30
db2 update db cfg for MY_DATABASE using LOGSECOND 20
補充一下用的是循環日志 www.2cto.com
總的日志文件擴大到了1.5G左右,然後執行下面的命令(釋放程序、關閉、重啟數據):
Sql代碼
db2 "force application all"
db2stop
db2start
db2 connect to MY_DATABASE user db2inst1 uing db2inst1
最後從新調用包含insert into ... select ...語句的存儲過程,此次程序執行完畢,但效率太慢。
采用循環日志可以考慮調整一下數據庫的commitcount參數