Instance Architecture   «Prev  Next»

Lesson 3 Instance Overview
Objective Identify the memory structures and background processes that make up an Oracle instance and how they relate to the database on disk.

Oracle Instance Overview

The Oracle instance is the runtime layer—shared memory plus background processes—that opens and manages a database (its files on disk). The diagram below labels the major components you will observe on any modern deployment.
System Global Area (buffer cache, redo log buffer, library cache) and key background processes that operate on the database.
Instance components. SGA (buffer cache, library and dictionary caches, redo log buffer), <—em>PGA (per-process memory), and background processes:
  • DBWn - writes dirty buffers to data files.
  • LGWR - flushes redo from memory to online redo logs.
  • CKPT - signals checkpoints and updates control/data file headers.
  • SMON - instance recovery and space maintenance.
  • PMON - cleans up failed sessions and frees resources.
  • ARCn - archives full redo logs (when ARCHIVELOG mode).
  • Others as enabled (e.g., RECO for distributed txns, queue monitors, dispatchers for shared server).

Database Instance Configurations

Oracle supports two deployment patterns:
  • Single-instance - one instance serves one database (1:1).
  • Oracle RAC - multiple instances on different nodes serve the same database (N:1) for scalability and HA.
Single Instance Database
Figure 4-3.1: Single Instance Database

In Oracle RAC, a one-to-many relationship exists between the database and database instances. The following figure shows a typical RAC configuration.
Oracle RAC Database
Figure 4-3.2: Oracle RAC Database

An instance is always associated with exactly one database at a time: you can mount/open one database with a given instance, not two.

Why Multiple Writers or Archivers?

Process names often end with a digit (e.g., DBW0, DBW1). On busy systems-especially with many CPUs-you may configure multiple workers (DBWn, ARCn) to scale I/O and keep up with redo and checkpoint activity.

Listing Processes on a UNIX System

Use ps to view Oracle processes. A quick pattern is to list database writers (present on every instance), or to grep by SID to see all processes for a specific instance.
ps -ef

Example: locate all DBW0 processes (reveals running instances):
$ ps -ef | grep dbw0
oracle 2564   1  2 07:00:01 ?     0:05 ora_dbw0_test
oracle 2588   1  2 07:00:05 ?     0:05 ora_dbw0_DEVL
oracle 1387   1  0  Mar 25  ?     0:17 ora_dbw0_orcl
oracle 2576   1  1 07:00:03 ?     0:06 ora_dbw0_SEED
oracle 3351 3336 1 17:19:02 ttyp2 0:00 grep dbw0

Process naming convention: ora_process_SID (for example, ora_lgwr_DEVL). To list all processes for one instance:
$ ps -ef | grep DEVL
oracle 2592  1 0 07:00:05 ? 0:00 ora_smon_DEVL
oracle 2590  1 0 07:00:05 ? 0:03 ora_lgwr_DEVL
oracle 2588  1 0 07:00:05 ? 0:05 ora_dbw0_DEVL
oracle 2586  1 0 07:00:05 ? 0:03 ora_pmon_DEVL
oracle 2594  1 0 07:00:05 ? 0:00 ora_reco_DEVL
oracle 2597  1 0 07:00:05 ? 0:03 ora_arc0_DEVL

Viewing Oracle Processes on Windows

On Windows, Oracle implements these as threads under a single Oracle service. Check Services to confirm which instances are running (service names follow OracleService<SID>). The Oracle Administration Assistant exposes per-service thread lists.
Control Panel
Windows Services list including Network DDE, Network DDE DSDM, NTLM SSP
Services view (scroll to find Oracle services such as OracleServiceORCL).

Example thread list from the assistant:
Process information window listing Oracle threads
Name   | Type        | User | Thread ID | CPU      | %
-------+-------------+------+-----------+----------+----
PMON   | Background  | SYS  | 169       | 0:00:00  | 0%
DBW0   | Background  | SYS  | 170       | 0:00:00  | 0%
LGWR   | Background  | SYS  | 171       | 0:00:00  | 0%
CKPT   | Background  | SYS  | 172       | 0:00:00  | 0%
SMON   | Background  | SYS  | 174       | 0:00:01  | 0%
RECO   | Background  | SYS  | 161       | 0:00:00  | 0%

What the Instance Stores in Memory

When an instance starts, Oracle allocates memory and launches background processes. The memory areas store:
  1. Program code and internal control structures.
  2. Session state for each connection (active or idle).
  3. Execution state for SQL (e.g., fetch position, work areas).
  4. Shared metadata and locking information for coordination.
  5. Cached copies of disk data blocks and redo records for performance.

Oracle Process Names - Quick Quiz

Before going on, click the Quiz link below to take this quiz and your knowledge of the process abbreviations.
Oracle Process Instance - Quiz

SEMrush Software 3 SEMrush Banner 3