Oracle Server - An Oracle Server Includes An Oracle Instance and An Oracle Database.
Oracle Server - An Oracle Server Includes An Oracle Instance and An Oracle Database.
These notes introduce the Oracle server architecture. The architecture includes physical components,
memory components, processes, and logical structures.
Oracle server: An Oracle server includes an Oracle Instance and an Oracle database.
The database server must manage large amounts of data in a multi-user environment.
The server must manage concurrent access to the same data.
The server must deliver high performance. This generally means fast response times.
User and server processes: The processes shown in the figure are called user and server processes.
These processes are used to manage the execution of SQL statements.
A Shared Server Process can share memory and variable processing for multiple user processes.
A Dedicated Server Process manages memory and variables for a single user process.
The act of connecting creates a communication pathway between a user process and
an Oracle Server. As is shown in the figure above, the User Process communicates
with the Oracle Server through a Server Process. The User Process executes on the
client computer. The Server Process executes on the server computer, and actually
executes SQL statements submitted by the system user.
The figure shows a one-to-one correspondence between the User and Server
Processes. This is called a Dedicated Server connection. An alternative
configuration is to use a Shared Server where more than one User Process shares a
Server Process.
A user can typically have more than one concurrent session, e.g., the user may
connect using SQLPlus and also connect using Internet Developer Suite tools at the
same time. The limit of concurrent session connections is controlled by the DBA.
The SHOW SGA SQL command will show you the SGA memory allocations.
SQL> connect system/ system as sysdba
Connected.
Early versions of Oracle used a Static SGA. This meant that if modifications to
memory management were required, the database had to be shutdown, modifications
were made to the init.ora parameter file, and then the database had to be restarted.
Oracle 11g uses a Dynamic SGA. Memory configurations for the system global area
can be made without shutting down the database instance. The DBA can resize the
Database Buffer Cache and Shared Pool dynamically.
Granules are assigned to the Database Buffer Cache, Shared Pool, Java Pool, and
other memory structures, and these memory components can dynamically grow and
shrink. Using contiguous memory improves system performance. The actual number
of granules assigned to one of these memory components can be determined by
querying the database view named V$BUFFER_POOL.
Granules are allocated when the Oracle server starts a database instance in order to
provide memory addressing space to meet the SGA_MAX_SIZE parameter. The
minimum is 3 granules: one each for the fixed SGA, Database Buffer Cache, and
Shared Pool. In practice, you'll find the SGA is allocated much more memory than
this. The SELECT statement shown below shows details of the granules allocated to
BUFFER_POOL.
The Program Global Area is also termed the Process Global Area (PGA) and is a
part of memory allocated that is outside of the Oracle Instance.
A session that loads a PL/SQL package into memory has the package state stored to
the UGA. The package state is the set of values stored in all the package variables at
a specific time. The state changes as program code the variables. By default, package
variables are unique to and persist for the life of the session.
The OLAP page pool is also stored in the UGA. This pool manages OLAP data
pages, which are equivalent to data blocks. The page pool is allocated at the start of
an OLAP session and released at the end of the session. An OLAP session opens
automatically whenever a user queries a dimensional object such as a cube.