When -B2 is not specified at database startup, then the Secondary Buffer Pool is not in use (defaults to 0 )
When starting up a database broker without the -B2 parameter, it is not necessary to un-assign objects assigned to the Alternate Buffer Pool.
- When the Secondary Buffer Pool is not in use, but database objects (tables, indexes, lobs) have been assigned to the Alternate Buffer Pool, they will still be loaded into the Primary Buffer Pool (-B) when needed and will be subject to eviction from the Primary Buffer Pool along with any other (unassigned) object blocks when LRU is activated.
When starting up a database broker with a -B2 that does not fit, it works just like the Primary Buffer Pool (-B) with LRU.
- When -B2 is specified at database startup but not large enough to contain assigned objects as they are loaded, the Alternate Buffer Pool has its own LRU2 chain which is activated that evicts buffers to make room for new buffers.
- There is nothing to prevent assigning objects to the Secondary Buffer Pool where -B2 is not large enough to hold the entire content.
- Having part of a table (for example) was not really the design intent of providing a Secondary Buffer Pool. It is never-the-less part of the database architecture to be used as seen fit.
- General recommendations as to best candidates for the secondary buffer pool can be found in Article: Basic guide on when to use the Alternate Buffer Pool -B2 and complementary Article How to size monitor and manage the Alternate Buffer Pool (-B2)
When using -B2, it's recommended to run online utilities with Block Level Access, as opposed to block requests for specific objects with Private Buffers (-Bp)
$ probkup online dbname <backupvolume> -Bp 64
$ proutil dbname -C dbanalys -Bp 64