This is an excerpt from the bestselling book
Oracle Grid & Real Application Clusters. To get immediate
access to the code depot of working RAC scripts, buy it
directly from the publisher and save more than 30%.
Oracle Database Server
represents a collection of physical files, logical database objects
such as tables and indexes and the host level memory structures and
processes. The physical host level files are actually residing on
the storage arrays, directly attached, network attached, and storage
area networks (SAN). The combination of background processes and
memory buffers is called the database instance. Oracle Database
Instance, which resides on a host, is the actual database processing
area that allows access to the physical and logical structures.
RAC Database has multiple
database instances to access and manage a single database system.
With the shared disk architecture, the Database consists of a single
set of physical data files for data that can be accessed by multiple
database instances. As shown in the Figure 4.2, each of the
instances resides on a separate host and forms its own set of
background processes and memory buffers. Thus, RAC enables access to
a single database via multiple database instances.
When the database is not a RAC
system, it has one instance and one database. Sometimes the instance
and database are construed to be the same. In that case, it is
called a stand-alone database system.
As an example,
The parameter db_name will have
the value of NYDB50 and this represents the name of the database.
And the parameter instance_name will be one of the names listed
above. All these instances provide access to the same database named
Figure 4.2: Multi-Instance
RAC Database System ? At a Glance
The examination of the Oracle
Architecture will start by reviewing the memory pools and the back
ground processes in a single-instance database. Then the study will
extend to review the extra processes and structures that are formed
in case of a RAC configuration.
A typical RAC database instance
is very much like a stand alone database system. It has all frills
and bells of a typical database instance. But it has some extra
processes, memory structures, and logical structures. Since the RAC
database system has to maintain concurrency of data across multiple
instances, it creates additional structures to manage and coordinate
The Oracle Instance has various
components to support the database processing. The memory components
are broadly categorized as System Global Area (SGA) and Program
Global Area (PGA).
System Global Area (SGA)
The System Global Area (SGA)
consists of various memory components. A component represents a pool
of memory used to satisfy a particular class of memory allocation
requests. The most commonly configured memory components include the
database buffer cache, shared pool, java pool, large pool, streams
pool, data dictionary cache, and redo log buffer. PGA consists of
session specific information that contains data and control
The SGA and PGA memory
structures are shown in the Figure 4.3. The SGA resources are formed
at the time of database instance launch based on the instance
initialization parameters. However, many of the parameters can
dynamically be altered to suit the database processing needs.
Figure 4.3: SGA and PGA
Components of a typical instance
The size of the SGA is
determined by several initialization parameters. The following Table
4.1 shows the parameters that influence the SGA size. However, when
the initialization parameter sga_target is set to a value greater
than zero, the automatic SGA configuration kicks in. This will be
covered in more detail in a later part of this chapter.
size of the cache of standard blocks
of bytes allocated for the redo log buffer
size of the area allocated to shared SQL and PL/SQL statements.
Size of the
large pool; the default is 0.
The size of
the Java pool
Table 4.1: Initialization
Parameters that affect SGA size