Oracle Database Architecture
Oracle Database Architecture Complete Technical Guide | January 11, 2026 Oracle Database architecture is a sophisticated system comprising memory structures, background processes, and physical storage components that work together to provide high performance, reliability, and data integrity. This guide provides an in-depth exploration of Oracle’s architectural components and their interactions. Table of Contents 1. Architecture Overview 2. Oracle Instance vs Database 3. Memory Architecture 4. Background Processes 5. Physical Storage Structures 6. Logical Storage Structures 7. Data Flow and Processing 8. RAC Architecture 1. Architecture Overview Oracle Database employs a multi-layered architecture designed for enterprise-grade performance, scalability, and fault tolerance. The architecture separates the database instance (memory and processes) from the database itself (physical files), enabling flexible deployment options including single-instance, RAC, and Data Guard configurations. Figure 1: Oracle Database Architecture – High-Level Overview Key Architectural Principle The separation of instance and database enables Oracle’s high availability features. An instance can be started, stopped, or failed over independently while the database files remain persistent on storage. 2. Oracle Instance vs Database An Oracle instance consists of memory structures and background processes that manage database operations. The instance exists in server memory and is transient – it is created when the database starts and destroyed when it shuts down. Component Type Description System Global Area (SGA) Memory Shared memory region containing data and control information Program Global Area (PGA) Memory Private memory region for each server process Background Processes Process Mandatory and optional processes performing database operations Oracle Database The database consists of physical files stored on disk that contain the actual data, metadata, and transaction logs. These files persist across instance restarts and contain: Data Files: Store actual user and system data in tablespaces Control Files: Contain database metadata and structural information Redo Log Files: Record all changes made to the database Archive Log Files: Historical copies of redo logs for recovery Parameter Files: Instance configuration parameters (SPFILE/PFILE) — View instance status and database information SELECT instance_name, status, database_status FROM v$instance; SELECT name, open_mode, database_role FROM v$database; 3. Memory Architecture System Global Area (SGA) The SGA is a shared memory region that contains data and control information for the Oracle instance. All server processes and background processes share access to the SGA. Database Buffer Cache Caches data blocks read from data files. The buffer cache uses an LRU (Least Recently Used) algorithm to manage blocks, keeping frequently accessed data in memory to minimize physical I/O. — View instance status and database information SELECT instance_name, status, database_status FROM v$instance; SELECT name, open_mode, database_role FROM v$database; SELECT name, ROUND(bytes/1024/1024, 2) size_mb FROM v$sgainfo WHERE name LIKE ‘%Buffer%’; Shared Pool Contains the library cache (parsed SQL statements and execution plans), data dictionary cache, and other shared structures. Proper sizing prevents hard parsing overhead. SELECT pool, name, bytes/1024/1024 mb FROM v$sgastat WHERE pool = ‘shared pool’ ORDER BY bytes DESC FETCH FIRST 10 ROWS ONLY; Redo Log Buffer A circular buffer that caches redo entries before they are written to the online redo log files. LGWR flushes this buffer under specific conditions to ensure durability. Large Pool Optional memory area used for large memory allocations including RMAN backup/restore operations, shared server session memory, and parallel query operations. SGA Component Purpose Sizing Parameter Buffer Cache Data block caching DB_CACHE_SIZE Shared Pool SQL/PLSQL caching, dictionary SHARED_POOL_SIZE Redo Log Buffer Redo entry caching LOG_BUFFER Large Pool Large allocations (RMAN, parallel) LARGE_POOL_SIZE Java Pool Java stored procedures JAVA_POOL_SIZE Streams Pool Oracle Streams/GoldenGate STREAMS_POOL_SIZE — View SGA component sizes SELECT component, current_size/1024/1024 current_mb, min_size/1024/1024 min_mb, max_size/1024/1024 max_mb FROM v$sga_dynamic_components WHERE current_size > 0; Program Global Area (PGA) The PGA is a private memory region containing data and control information for each server process. Unlike the SGA, PGA memory is not shared between processes. Sort Area: Memory for sort operations (ORDER BY, GROUP BY, DISTINCT) Hash Area: Memory for hash joins and hash aggregations Session Memory: Session-specific variables and cursors Private SQL Area: Bind variable values and runtime state — View PGA memory usage SELECT name, value/1024/1024 mb FROM v$pgastat WHERE name IN (‘aggregate PGA target parameter’, ‘aggregate PGA auto target’, ‘total PGA allocated’, ‘total PGA used for auto workareas’); 4. Background Processes Oracle background processes perform maintenance tasks, I/O operations, and ensure database consistency. Some processes are mandatory while others start based on configuration. Mandatory Background Processes Process Name Function DBWn Database Writer Writes modified buffers from buffer cache to data files LGWR Log Writer Writes redo log buffer entries to online redo log files CKPT Checkpoint Updates control files and data file headers at checkpoints SMON System Monitor Instance recovery, coalescing free space, cleaning temp segments PMON Process Monitor Cleans up failed user processes, releases locks and resources RECO Recoverer Resolves distributed transaction failures Optional Background Processes Process Name When Started ARCn Archiver ARCHIVELOG mode enabled MMON Manageability Monitor AWR snapshots and alerts MMAN Memory Manager Automatic memory management enabled CJQ0 Job Queue Coordinator DBMS_SCHEDULER jobs exist SMCO Space Management Coordinator Automatic space management — View active background processes SELECT pname, description FROM v$process WHERE pname IS NOT NULL ORDER BY pname; LGWR Critical PathLGWR performance is critical for commit latency. Every COMMIT must wait for LGWR to write redo entries to disk. Use fast storage (NVMe, SSD) for redo logs and consider redo log file placement carefully. 5. Physical Storage Structures Data Files Data files contain the actual database data including tables, indexes, and other segments. Each data file belongs to exactly one tablespace and stores data in Oracle blocks. — View data files and their tablespaces SELECT tablespace_name, file_name, ROUND(bytes/1024/1024/1024, 2) size_gb, autoextensible, status FROM dba_data_files ORDER BY tablespace_name; Control Files Control files are critical metadata files containing database structure information, checkpoint data, and RMAN backup metadata. Oracle recommends multiplexing control files across different storage locations. — View control file locations SELECT name, status, block_size, file_size_blks FROM v$controlfile; Redo Log Files Online redo logs record all changes made to the database. Oracle uses a circular writing mechanism with multiple redo log groups for high availability.
