Examine the current value for the following parameters in your database instance:
SGA_MAX_SIZE = 1024M
SGA_TARGET = 700M
DB_8K_CACHE_SIZE = 124M
LOG_BUFFER = 200M
You issue the following command to increase the value of DB_8K_CACHE_SIZE:
SQL> ALTER SYSTEM SET DB_8K_CACHE_SIZE=140M;
Which statement is true?
A.
It fails because the DB_8K_CACHE_SIZE parameter cannot be changed dynamically.
B.
It succeeds only if memory is available from the autotuned components if SGA.
C.
It fails because an increase in DB_8K_CACHE_SIZE cannot be accommodated within
SGA_TARGET.
D.
It fails because an increase in DB_8K_CACHE_SIZE cannot be accommodated within
SGA_MAX_SIZE.
Explanation:
* The SGA_TARGET parameter can be dynamically increased up to the value
specified for the SGA_MAX_SIZE parameter, and it can also be reduced.
* Example:
For example, suppose you have an environment with the following configuration:
SGA_MAX_SIZE = 1024M
SGA_TARGET = 512M
DB_8K_CACHE_SIZE = 128M
In this example, the value of SGA_TARGET can be resized up to 1024M and can also be reduced
until one or more of the automatically sized components reaches its minimum size. The exact
value depends on environmental factors such as the number of CPUs on the system. However,
the value of DB_8K_CACHE_SIZE remains fixed at all times at 128M
* DB_8K_CACHE_SIZE
Size of cache for 8K buffers
* For example, consider this configuration:
SGA_TARGET = 512M
DB_8K_CACHE_SIZE = 128M
In this example, increasing DB_8K_CACHE_SIZE by 16 M to 144M means that the 16M is taken
away from the automatically sized components. Likewise, reducing DB_8K_CACHE_SIZE by 16M
to 112M means that the 16M is given to the automatically sized components.
i think B
B. Here is my test:
SQL> show parameter sga
NAME TYPE VALUE
———————————— ———– ——————————
lock_sga boolean FALSE
pre_page_sga boolean TRUE
sga_max_size big integer 1G
sga_target big integer 700M
unified_audit_sga_queue_size integer 1048576
SQL> show parameter log_buffer
NAME TYPE VALUE
———————————— ———– ——————————
log_buffer big integer 200M
SQL> show parameter db_16k
NAME TYPE VALUE
———————————— ———– ——————————
db_16k_cache_size big integer 124M
SQL> alter system set db_16k_cache_size=140m;
System altered.
B
B
It should be A. Just tested it.
8K is the default block size and it can’t be changed dynamically.
I tried to alter 8k cache size then get the ORA-00380
However, other cache size with different block size can be changed.
A
SQL> ALTER SYSTEM SET DB_8K_CACHE_SIZE=140M;
ALTER SYSTEM SET DB_8K_CACHE_SIZE=140M
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00380: cannot specify db_8k_cache_size since 8K is the standard block size
Yes is true assuming that db_block_size is equal to 8K.
b
a sory..
I just tested. It works for 16k but not for 8k. Got the same error as AX posted.
A is correct.
I think B. In this example, increasing DB_8K_CACHE_SIZE by 16 M to 144M means that the 16M is taken
away from the automatically sized components.
https://docs.oracle.com/database/121/ADMIN/memory.htm#ADMIN11218
A. can’t be because, from here https://docs.oracle.com/database/121/ADMIN/memory.htm#ADMIN11218
You use them to specify the sizes of caches for the various block sizes used by the database. These initialization parameters are all dynamic.