This module explains the moving parts that make a running Oracle database work. After completing it, you will be able to:
Explain the difference between a database and an instance.
Identify major background processes and what they do.
List an instance’s processes and memory components using quick checks.
Recognize modern memory settings and avoid legacy parameters.
Instance vs. Database
An instance is a set of memory structures and background processes (SGA + background tasks). A database is the set of physical files (datafiles, control files, redo logs, etc.). Clients talk to the instance; the instance reads/writes the database files.
CDB/PDB note (19c+): In multitenant, one instance opens a Container Database (CDB) that can host multiple Pluggable Databases (PDBs). Background processes still belong to the instance.
RAC: Multiple instances on different servers can open and access the same database concurrently.
Memory Architecture at a Glance
The instance allocates the System Global Area (SGA) and each server process uses its own Program Global Area (PGA).
-- Instance identity and status
SELECT instance_name, host_name, version, status
FROM v$instance;
-- Database identity
SELECT name, dbid, open_mode, database_role
FROM v$database;
Background processes (concise list)
-- Background process names (non-null, running)
SELECT pname
FROM v$bgprocess
WHERE paddr IS NOT NULL
ORDER BY pname;
SGA components (current sizes)
SELECT component,
ROUND(current_size/1024/1024) AS size_mb
FROM v$sga_dynamic_components
WHERE current_size > 0
ORDER BY component;
11gR2 vs. 19c (what actually changed for instances)
Same fundamentals: SGA + background processes; redo-first (WAL) commit model.
Additions in newer releases: multitenant (CDB/PDB), optional In-Memory Column Store, more specialized background tasks to support new features and manageability.
Modern memory management (skip legacy knobs)
Avoid deprecated parameters like db_block_buffers. Use automatic memory features instead.
AMM:MEMORY_TARGET/MEMORY_MAX_TARGET (single knob for SGA+PGA, where supported).
ASMM:SGA_TARGET/ SGA_MAX_SIZE with DB_CACHE_SIZE, etc., and PGA_AGGREGATE_TARGET for PGA.
Practice prompts
Try these in your lab:
-- Show key memory targets
SHOW PARAMETER memory_target
SHOW PARAMETER sga_target
SHOW PARAMETER pga_aggregate_target
-- See redo buffer size
SHOW PARAMETER log_buffer