DB_NK_CACHE_SIZE Or DB_CACHE_SIZE Reset To Much Larger Value Than In Spfile Or Init.ora After Startup (Doc ID 1302466.1)

Last updated on APRIL 06, 2015

Applies to:

Oracle Database - Enterprise Edition - Version 11.1.0.7 to 11.2.0.1 [Release 11.1 to 11.2]
Information in this document applies to any platform.

Symptoms

The pfile or spfile has a much lower db_nk_cache_size or db_cache_size but, after startup, those parameters are automatically reset to a much larger value even if sga_target is not set for auto SGA tuning.

Example
All spfile and init.ora files in directory $ORACLE_HOME/dbs pointing to the same spfile in ASM.

Dumping out the spfile from ASM by :
create pfile='/initxxx.ora' from spfile;

The pfile entries showed:

*.db_16k_cache_size= 12884901888  <===  is (12G) less than 16G
*.db_block_size=8192
*.db_cache_size= 17179869184
.....
sga_target not set....
...
*.sga_max_size= 68719476736
*.shared_pool_reserved_size=209715200
*.shared_pool_size= 4831838208


However, the actual values differ:

SQL> show parameter cache_size

NAME                 TYPE    VALUE
------------------------------------ ----------- ------------------------------
client_result_cache_size       big integer 0
db_16k_cache_size          big integer 16G  <===  always shows up as 16G
db_2k_cache_size           big integer 0
db_32k_cache_size          big integer 0
db_4k_cache_size           big integer 0
db_8k_cache_size           big integer 0
db_cache_size            big integer 16G
db_keep_cache_size          big integer 16G
db_recycle_cache_size        big integer 0


The RDA shows :
ksmg_granule_size  268435456  (= 256M)
and the machine has many CPUs.


Trying to alter the db_nk_cache_size or db_cache_size to a smaller value, shows the following in the alert log:

Tue Feb 15 14:12:01 2011
The value of parameter db_keep_cache_size is below the required minimum  <===
The new value is granule size multiplied by the number of processor groups  <===
ALTER SYSTEM SET db_keep_cache_size='12G' SCOPE=MEMORY SID='xxx';
Tue Feb 15 14:16:28 2011
The value of parameter db_16k_cache_size is below the required minimum  <===
The new value is granule size multiplied by the number of processor groups  <===
ALTER SYSTEM SET db_16k_cache_size='12G' SCOPE=MEMORY SID='xxx';

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms