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

做DB2的插入操作报错

 

db2 => insert into atmjobsts  values ('20090805','2')
DB21034E  The command was processed as an SQL statement because it was not a
valid Command Line Processor command.  During SQL processing it returned:
SQL0964C  The transaction log for the database is full.  SQLSTATE=57011

 

原因:

 

缓冲池扩展失败,由于可用的虚拟内存的大小不足

 

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

 

解决:

 

1. 查看

 

 

db2 => get db cfg

       Database Configuration for Database

 

 ...

 

 

 

 Log file size (4KB)                         (LOGFILSIZ) = 10240
 Number of primary log files                (LOGPRIMARY) = 13
 Number of secondary log files               (LOGSECOND) = 4

 Changed path to log files                  (NEWLOGPATH) =
 Path to log files                                       = /db2data/db2shjh/db2inst1/NODE0000/SQL00001/SQLOGDIR/
 Overflow log path                     (OVERFLOWLOGPATH) =
 Mirror log path                         (MIRRORLOGPATH) =
 First active log file                                   =
 Block log on disk full                (BLK_LOG_DSK_FUL) = NO
 Percent max primary log space by transaction  (MAX_LOG) = 0
 Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0

 

 

 

 ...

 

 

 

2. 修改

 

后来把这个参数的大小相应调整了一下,调整后如下:

Log file size (4KB) (LOGFILSIZ) = 61440
 




调整方法为

update db cfg using LOGFILSIZ 61440




3. 调整后重启数据库

 

执行 db2stop 来停止DB2服务,如果停止不掉可以考虑执行 db2stop force 强制停止。
执行 db2start 启动DB2服务。

 

4. 查看

 


 Log file size (4KB)                         (LOGFILSIZ) = 61440
 Number of primary log files                (LOGPRIMARY) = 13
 Number of secondary log files               (LOGSECOND) = 4
 Changed path to log files                  (NEWLOGPATH) =
 Path to log files                                       = /db2data/db2shjh/db2inst1/NODE0000/SQL00001/SQLOGDIR/
 Overflow log path                     (OVERFLOWLOGPATH) =
 Mirror log path                         (MIRRORLOGPATH) =
 First active log file                                   =
 Block log on disk full                (BLK_LOG_DSK_FUL) = NO
 Percent max primary log space by transaction  (MAX_LOG) = 0
 Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0

 

 

5. 再执行 插入操作 OK  解决

 

db2 => insert into atmjobsts values('20090805','3')
DB20000I  The SQL command completed successfully.

 

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

 

 

 

over.   haha!

 

 

 

 

 

你可能感兴趣的:(sql,c,command,db2,database,Path)