My Oracle Support Banner

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 FEBRUARY 03, 2019

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

To view full details, sign in with your My Oracle Support account.

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


In this Document
Symptoms
Cause
Solution
References


This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review.
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.