Вы находитесь на странице: 1из 5

ORACLE ARCHITECTURE

The Oracle server is an object relational database management system


that provides an open, comprehensive, integrated approach to
information management.

Basically the architecture can be said to comprise of 3 parts:

1) INSTANCE
2) DATABASE
3) PROCESS

An Oracle INSTANCE is the combination if the background process


and memory structures. The instance must be started to access the
data in the database.

A DATABASE consists of data files, control files and redolog files


along with the storage.

There are several PROCESSES, memory structures and files in an


oracle server. However not all of them processing a SQL statement.
Some are used to improve the performance of the database, ensure
that the database can be recovered in the event of a software or
hardware error, or perform other tasks necessary to maintain the
database.

STRUCTURE OF ORACLE INSTANCE:

The Oracle instance consists of the SGA memory


structure and the background process used to manage a database.
An instance is identified by using methods specific to each operating
system. The instance can open and use only one database at a time.

(A) SYSTEM GLOBAL AREA(SGA):

SGA is a memory area used to store database


information that is shared by database process. It contains data and
control information for the oracle server. It is allocated in the virtual
memory of the computer where the oracle server resides.

The SGA consists of several memory structures:

(1) Shared Pool: It is used to store the most recently executed


SQL statements and the most recently used data from the
data dictionary. These SQL statements may be submitted by
a user process or , in the case of stored procedures read
from the data dictionary.

(2) Database buffer cache: It is used to store the most recently


used data. The data is read from , and written to the data
files.

(3) Redo Log buffer: It is used to track changes made to the


database by the server and background process

(4) Java Pool: It is used to store any Java code.

(5) Large Pool: It is used to store memory structures not


directly related to SQL statement processing.

The last two memory structures are optional memory


structures in the SGA.

(B) BACKGROUND PROCESS:

It is an instance that performs the common functions


that are needed to service request from concurrent users without
compromising the integrity and performance of the system. They
consolidate functions that would otherwise be handled by multiple
oracle programs running for each user.The background process
performs I/O and monitor other oracle processes to provide
increased parallelism for better performance and reliability.

An Oracle instance includes these five background process :


1) DATABASE WRITER (DBW0): It is responsible for writing
changed data from the database buffer cache to the data files.
2) LOG WRITER (LGWR): It writes changes registered in the
Redo log buffer to the redolog files.
3) SYSTEM MONITOR (SMON): It checks for the consistency of
the database and if necessary, initiates recovery of the database
when the database is opened.
4) PROCESS MONITOR (PMON): It cleans up resources if one of
the oracle processes fails.
5) CHECKPOINT PROCESS (CKPT): It is responsible for
updating database status information in the control files and
data files whenever changes in the buffer cache are permanently
recorded in the database.

DATABASE FILE STRUCTURE:

An Oracle database is a collection of data that is


treated as a unit. The general purpose of a database is to store and
retrieve related information. The database has a logical structure
and physical structure. The physical structure of the database is the
set of operating system files in the database.

An oracle database consists of three file types:

1) DATA FILES: They contain actual data in the database. The


data is stored in user-defined tables, but data files also contain
data dictionary, before images of modified data, indexes, and
other type of structures. A database has at least one data file.
2) CONTROL FILES: They contain information necessary to
maintain and verify database integrity. For example a control
file is used to identify the data files and redolog files. A
database needs at least one control file.
3) REDO LOG FILES: They contain a record of changes made to
the database to enable recovery of the data in case of failure. A
database requires at least two such files.
Other than these the oracle server also uses other files that
are not part of the database such as PARAMETER FILE, which
defines the characteristics of an oracle instance. For example it
contains parameters that size some of the memory structure in the
SGA; PASSWORD FILE, authenticates which users are
permitted to start up and shut down an oracle instance;
ARCHIVED REDO LOG FILES , are offline copies of redolog
files that may be necessary to recover from media failures.

PROCESSES:

Basically, they are two types of processes:

1) USER PROCESS: It is an application program that


organizes SQL statements .

2) SERVER PROCESS: It executes the SQL statements sent


from the user process. The data and control information
for a server process is stored in a memory region known as
the PROGRAM GLOBAL AREA (PGA).

PGA is a non shared memory created by oracle when a


server process is started. Access to it is exclusive to that server
process and is read and written only by the oracle server code
acting on behalf of it. The PGA memory allocated by each
server process attached to an oracle instance is referred to as
the aggregated PGA memory allocated by the instance.

In a dedicated server configuration, the PGA of the


server includes these components:

1) SORT AREA: It is used for any sorts that may be


required to process SQL statements.
2) SESSION INFORMATION: It includes user
privileges and performance statistics for the session.
3) CURSOR STATE: It indicates the stage in the
processing of the SQL statements that are currently
used by the session.
4) STACK SPACE: It contains other session variables.

The PGA is allocated when the process is created and


deallocated when the process is terminated.