Oracle Database Architecture: Instances, Memory, Processes, and Structures
This article provides a comprehensive overview of Oracle Database architecture, detailing the server components, instance memory structures such as SGA, essential background processes, and the physical and logical storage layers, helping readers understand how Oracle organizes data and manages operations.
Oracle Database Server
In everyday discussions, "Oracle Database" refers to the Oracle Database Server, which consists of an Oracle Instance and the Oracle Database files. The instance provides the memory area and background processes that interact with the database, while the database itself is a collection of physical files such as data files, redo log files, control files, parameter files, and optional files like backup and alert logs.
Oracle Instance
An Oracle Instance is a set of memory structures and background processes. When the instance starts, it first allocates the System Global Area (SGA) in server memory, then launches the required resident operating‑system processes, forming the process structure. The instance is identified by ORACLE_SID in the OS and by the Instance Name parameter inside Oracle.
Memory Structures (SGA)
The SGA is the shared memory area that holds data and control information for the instance. Its major components are:
Shared Pool : contains the library cache, data dictionary cache, and SQL shared pool; size controlled by SHARED_POOL_SIZE.
Database Buffer Cache : holds copies of data blocks; size set by DB_CACHE_SIZE and managed by an LRU algorithm.
Redo Log Buffer : temporarily stores redo entries before they are written to redo log files; size set by LOG_BUFFER.
Large Pool (optional): used for large memory‑intensive operations such as backup and recovery; size set by LARGE_POOL_SIZE.
Java Pool : provides memory for Java execution; size set by JAVA_POOL_SIZE.
Multiple Buffer Pools : allow creation of separate pools to reduce contention for large data sets.
Background Processes
Key background processes include:
PMON : monitors and recovers failed user processes, releases resources, and rolls back uncommitted transactions.
SMON : performs instance recovery, cleans temporary segments, and merges free extents.
DBWn : writes dirty buffers from the Database Buffer Cache to data files; triggered by no free buffers, dirty‑buffer thresholds, checkpoints, tablespace offline, time‑outs, or DDL operations.
LGWR : writes redo log buffer contents to online redo log files; triggered by commit, every three seconds, when the redo buffer is one‑third full, or when DBWn writes data files.
CKPT : signals DBWn and LGWR to write dirty buffers and updates control files during checkpoints.
ARCH : archives redo log files when the database runs in ARCHIVELOG mode.
RECO : resolves distributed transaction failures in a distributed environment.
LCKn : lock processes used in parallel server configurations.
Dnnn (Dispatcher) : multiplexes user connections to a limited number of server processes.
Physical Structure of Oracle Database
The physical structure consists of mandatory files—data files, control files, redo log files, and parameter files—and optional files such as password files, archive logs, backup files, alert logs, and trace files.
Data Files : store all database data; each tablespace is made up of one or more data files.
Redo Log Files : record all changes for recovery; organized into online and archived groups.
Control Files : contain metadata about the database’s physical layout and are critical for startup and recovery.
Parameter Files : hold initialization parameters; can be text (pfile) or binary (spfile) and determine static vs. dynamic settings.
Logical Structure of Oracle Database
The logical structure is a hierarchy visible to users, comprising tablespaces, segments, extents, and data blocks.
Tablespaces : logical containers for database objects; common tablespaces include SYSTEM, SYSAUX, TEMP, UNDO, and USERS.
Segments : collections of extents allocated for specific objects (data, index, rollback, temporary).
Extents : contiguous groups of data blocks allocated to a segment.
Data Blocks : the smallest storage unit; size defined by DB_BLOCK_SIZE (default 8 KB) and may vary within the same instance.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITPUB
Official ITPUB account sharing technical insights, community news, and exciting events.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
