I am facing database corruption issue in Db2 express C 9.5, Windows Vista.
The issues does not have fixed reproducible steps,
however, following are some scenario.
1. New database get corrupted just after it creation.
2. Newly created database is fine but other existing database gets
3. While using database for some time, one of the existing database gets corrupted.
The error that get logged in db2diag is similar for above conditions.
"A disk error occurred. Subsequent SQL statements cannot be processed. The SQL state is 58005". The sql code is sqlcode: -980. db2diag.log attached.
It suggest that there was some access problem with temporary space. Even if I try to restore them, they dont get restored properly and complaints abouts insufficient size of system temporary space.
The log is attached and following are some error from it.
2010-11-09-18.104.22.1680000+540 I27553H559 LEVEL: Error
PID : 5688 TID : 4924 PROC : db2syscs.exe
INSTANCE: DB2INST1 NODE : 000 DB : DEVDB1
APPHDL : 0-7 APPID: *LOCAL.DB2INST1.101109074943
AUTHID : SYSTEM
EDUID : 4924 EDUNAME: db2agent (DEVDB1)
FUNCTION: DB2 UDB, buffer pool services, sqlbSMSDoContainerOp, probe:871
MESSAGE : ZRC=0x870F0155=-2029059755=SQLO_DIR_NOT_EMPTY
"The I/O operation fails because the target directory is not empty."
One observation, SQLTAG.NAM file is not present
in C:\DB2\NODE0000\DEVDB1\T0000001\C0000000.TMP folder of corrupted Database, which is present in working Database. The default temporary table space is system automatic managed.