DB2 LUW Buffer pool memory allocation at startup(DB2 LUW Internals) When you create a buffer pool or alter a buffer pool, the total memory that is required by all bufferpools must be available to the database manager so that all of the buffer pools can be allocated when the database starts. If you create or alter buffer pools while the database manager is online, additional memory should be available in database global memory. If you specify the DEFERRED keyword when you create a new buffer pool or increase the size of an existing buffer pool, and the required memory is unavailable, the database manager executes the changes the next time the database is activated. If this memory is not available when the database starts, the database manager uses only the system buffer pools (one for each page size) with a minimal size of 16 pages, and a warning is returned. The database continues in this state until its configuration is changed and the database can be fully restarted. Although performance might be suboptimal, you can connect to the database, re-configure the buffer pool sizes, or perform other critical tasks. When these tasks are complete, restart the database. Do not operate the database for an extended time in this state. To avoid starting the database with system buffer pools only, use the DB2_OVERRIDE_BPF registry variable to optimize use of the available memory.
Thanks for sharing, Raghavendra
Thanks for sharing, Raghavendra
Thanks for sharing, Raghavendra
DB2 for LUW Subject-Matter Expert
4moA note! If you create a specific bufferpool, tablespace and table, then fill the table in the same transaction, there could be issues in replaying that transaction during: - DB recovery; - DB rollforward after backup/restore; - HADR replay; since BUFFERPOOL is not treated as created during those operations. One of four small hidden system tablespaces is used instead (depending on a page size). Those bufferpool sizes *can also be overridden*, if they are referenced directly by ID in DB2_OVERRIDE_BPF. This will help to pass that transaction in logs. * Don’t forget to restart instance after setting DB2_OVERRIDE_BPF. Those system bufferpools and their current sizes are shown in an output of: db2pd -db <DBNAME> -bufferpools Nevertheless, good practice will be to commit BP creation or BP size modification before other operations involving that bufferpool.