DB2 has 4 hidden bufferpools in the database which are allocated automatically when a database is activated or started (i.e. first connection to the database). These are in addition to the default IBMDEFAULTBP and any other user defined bufferpools. These are provided so that an appropriate bufferpool is available in all circumstances and the unavailability of a bufferpool does not cause the system to go down.
There is one hidden buffer pool per page size (4K, 8K, 16K and 32K). These bufferpools are very small in size (16 pages each) and are not present in the system catalogs or the bufferpool system files - thus hidden to the user. However you can use db2pd to view the hidden bufferpools.
These cannot be altered directly and are used by db2 in the following dire circumstances:
1. When a bufferpool of a required page size cannot be activated because of insufficient system memory after a CREATE BUFFERPOOL statement is activated with the IMMEDIATE option.
In this case tablespaces using that bufferpool will be remapped to the hidden system bufferpool, but performance will be drastically reduced.
2. When regular bufferpools cannot be allocated during a database startup/connect.
In this case too, the tablespaces using that bufferpool will be remapped to the hidden system bufferpool but performance will be drastically reduced.
You can use db2pd to view the hidden bufferpools in your database:
$ db2pd -bufferpools -db SAMPLE
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:00:07
Bufferpools:
First Active Pool ID 1
Max Bufferpool ID 1
Max Bufferpool ID on Disk 1
Num Bufferpools 5
Address Id Name PageSz PA-NumPgs
0x0780000020F48DC0 1 IBMDEFAULTBP 4096 1000
0x078000002038F900 4096 IBMSYSTEMBP4K 4096 16
0x0780000020F48100 4097 IBMSYSTEMBP8K 8192 16
0x0780000020F48540 4098 IBMSYSTEMBP16K 16384 16
0x0780000020F48980 4099 IBMSYSTEMBP32K 32768 16





