Failed Implementation of New Buffer Pool on DB2 UDB v8
We had this experience when we tried to create a new bufferpool on DB2 v8 running on an AIX v5.3 server, wherein we noticed that the bufferpool creation is taking time, and we had to cancel it. The reason for this is that an incorrect parameter was submitted, specifically the size of the buffer pool. The size of the buffer pool being created was 256GB and we only had 24GB of RAM.
After canceling the creation, we can no longer use the server, and that we had to to do a db2_kill. We had to reboot the server, restart DB2 via Db2start. The other databases will start after a successful crash recovery, but the last one, where we created the BP, would then trigger the memory and paging space usage high again.
this is when we discovered that since crash recovery makes use of archive logs to recover, it tries to redo the create bufferpool, thus we cannot start the database. Fortunately, we found a site on IBM specifically dealing with this case.
We had to stop DB2, and issue a
db2iupdt -w 32 <instance name>
This converts the instance to 32-bit mode, which is immune to this case of irregular size of buffer pool. You can now startup db2 normally. To move forward the archive log recovery, we had to run a backup, for the database to recognize a new set of archive logs and not to read the old logs with the create BP statement. After the backup, we reverted back to 64-bit mode by issuing
db2iupdt -w 64 <instance name>
We were then able to recover the Database with no damage data.