Database Architecture and Configuration
Database Architecture and Configuration
This domain checks whether you can describe how an Oracle Database 19c instance is assembled from memory and background processes, how it attaches to a database, and how configuration decisions (parameter scope, SGA/PGA sizing, container-level parameters) change runtime behaviour.
Core rules
- An instance is the SGA plus background processes; a database is the physical files (data files, control files, redo logs, and in 19c a server parameter file). They meet at the control file.
- Startup is staged: NOMOUNT reads only the parameter file and starts background processes; MOUNT reads the control file; OPEN opens data files and redo for normal use.
- SGA_MAX_SIZE is static and needs a restart; SGA_TARGET and PGA_AGGREGATE_TARGET are dynamic when automatic memory management is in use.
- With MEMORY_TARGET set, the SGA and PGA targets become derived values and cannot be raised beyond the memory target.
- SCOPE=MEMORY applies now, SCOPE=SPFILE applies at restart, SCOPE=BOTH does both; static parameters accept only SPFILE scope.
- In a CDB, ALTER SYSTEM ... CONTAINER=ALL sets a value for root and all PDBs; a value set inside a PDB overrides the inherited one.
Worked example
An instance shows SGA_MAX_SIZE=4G, SGA_TARGET=4G, MEMORY_TARGET=0. Running ALTER SYSTEM SET sga_target=6G SCOPE=BOTH fails with ORA-00823 (specified sga_target greater than sga_max_size). Reasoning: with AMM off, SGA_MAX_SIZE is a hard ceiling for the life of the instance, so SGA_TARGET cannot exceed it. Correct sequence: set sga_max_size=6G SCOPE=SPFILE, restart, then raise sga_target dynamically.
Traps that cost marks
- Using SCOPE=MEMORY on a parameter that only exists in the SPFILE.
- Assuming MOUNT opens the database, or that NOMOUNT needs the control file.
- Confusing MEMORY_TARGET with PGA_AGGREGATE_TARGET when reading a parameter dump.
- Believing a CONTAINER=ALL change also creates per-PDB overrides; it does not.