Overview of the Oracle Database Instance
An Oracle Database server consists of an Oracle Database and one or more Oracle Database instances. Every time a database is started, a shared memory area called the system global area (SGA) is allocated and Oracle Database background processes are started. The combination of the background processes and the SGA is called an Oracle Database instance.
When users connect to an Oracle Database server, they are connected to an Oracle
Database instance. The database instance services those users by allocating other
memory areas in addition to the SGA, and starting other processes in addition to the
Oracle Database background processes. The following sections describe the various
Oracle Database memory areas and processes:
■ Oracle Database Background Processes
■ Instance Memory Structures
Oracle Database Background Processes
An Oracle database uses memory structures and processes to manage and access the
database. All memory structures exist in the main memory of the computers that
constitute the database system. A process is a mechanism in an operating system that
can run a series of steps. Some operating systems use the terms job or task. Oracle
Database server uses three types of processes: Oracle processes—which include server
processes and background processes—and user processes. On almost all systems, the
Oracle processes and the user processes are on separate computers.
■ Oracle Database creates a set of background processes for each instance. The
background processes consolidate functions that would otherwise be handled by
multiple Oracle Database programs running for each user process. They
asynchronously perform. I/O and monitor other Oracle Database processes to
provide increased parallelism for better performance and reliability.
■ User processes—sometimes called client processes—are created and maintained to
run the software code of an application program (such as an OCI or OCCI
program) or an Oracle tool (such as Oracle Enterprise Manager). Most
environments have separate machines (laptops, desktops, and so forth) for the
client processes. User processes also manage communication with the server
process through the program interface, which is described in a later section.
■ Oracle Database creates server processes to handle requests from connected user
processes. A server process communicates with the user process and interacts with
Oracle Database to carry out requests from the associated user process. For
example, if a user queries some data not already in the database buffers of the
SGA, then the associated server process reads the proper data blocks from the
datafiles into the SGA.
Oracle Database can be configured to vary the number of user processes for each
server process. In a dedicated server configuration, a server process handles
requests for a single user process. A shared server configuration lets many user
processes share a small number of server processes, minimizing the number of
server processes and maximizing the use of available system resources.
Instance Memory Structures
Oracle Database creates and uses memory structures for various purposes. For
example, memory stores program code being run, data shared among users, and
private data areas for each connected user. Two basic memory structures are associated
with an Oracle Database:
■ The System Global Area (SGA) is a group of shared memory structures, known as
SGA components, that contain data and control information for one Oracle
Database instance. The SGA is shared by all server and background processes.
Examples of data stored in the SGA include cached data blocks and shared SQL
areas.
■ The Program Global Areas (PGA) are memory regions that contain data and
control information for a server or background process. A PGA is nonshared
memory created by Oracle Database when a server or background process is
started. Access to the PGA is exclusive to the process. Each server process and
background process has its own PGA.