Sunday 12 April 2015

Oracle Database Architecture





+++++++++++
Shared pool
++++++++++++
The size of shared pool is defined by the parameter called shared_pool_size .
Shared pool contains many components but important components are
library cache,data dictionary cache and control structure .

Library cache
+++++++++++++
Lib cache consists of shared sql and pl/sql area .
SQL and PL/SQL area stored most recently used sql and pl/sql statements .
We cannot declare the size of lib cache ,but it is complete based on shared pool size .
If the size of lib cache is small ,the statements are continously reload in the lib cache which
can effect the performance .
It is managed through LRU.

Data Dictionary cache
++++++++++++++++++++++
The data dictionary cache hold information about database objects like
table
index
column
privileges
view
trigger .. etc .

The data dictionary cache also known as row cache ,because it store the infromation in the form of rows instead of buffers.

If the size of DDC is small ,then database has to query database tables repeatedly which degarde the performance.

Control Structure
++++++++++++++++
Locking information will be stored in control structure.



+++++++++++++++++++++
Database buffer cache
+++++++++++++++++++++
The size of database buffer cache is defined by the parameter called db_cache_size.
Database buffer cache hold the data which is fetch or read from the database files .
The size of each buffer in the database buffer cache  is equal to the size of oracle block size .

Database buffer cache consist of two independent sub caches.

1)
DB_KEEP_CACHE_SIZE
++++++++++++++++++
It will retain the block in the memory which are likely to be used.

DB_RECYCLE_CACHE_SIZE
++++++++++++++++++
It will eliminate the blocks from memory which are having little chances of being used .


Buffer modes
+++++++++++
unused
++++++++
The buffer is ready to use or available to use ,as it was never used .

Cleaned
+++++++++
The data has been written to database and available for use .

dirty
++++
The data has been modified but not written to the disk .

+++++++++++++++
redo log buffer
+++++++++++++++
The size of redo log buffer is defined by parameter called log_buffer.
It sequentially record all the changes made to database.
log_buffer is a static parameter.

+++++++++++++++
JAVA POOL
+++++++++++++++
The size of java_pool is defined by the parameter called java_pool_size.
If you want to execute java commands inside the database then java pool will be used.
Whenever you run dbca,netca etc the memory is allocated from java pool .



+++++++++++++++
Large pool
++++++++++++++
The size of large_pool is defined by the parameter called large_pool_size.
Whenever a rman session is initiated the memory is allocated from large pool and once finished the memory is de allocated.
It does not follow LRU algorithm.

No comments:

Post a Comment