Basically, these are two main components of ORACLE Database Architecture.
Oracle Architecture is an Object – Relational Database Management System, provides an open comprehensive & integrated approach to info. Management.
- Client/Server ( Distributed Environment )
- Large Database and Space Management
- Many Concurrent database users
- High Availability
- Control Availability
- Portability / Compatibility / Convertibility
- Manage Security & Openess Industry Standard
Oracle Instance ( Combination of background process + memory buffers )
It consists of the Oracle processes & shared m/m to access info. in the database. The instance is made up of the user processes, Oracle Background Process & the shared m/m used by these processes.
SGA ( System Global Area )
Everytime the database is started the System Global Area (SGA) is allocated & Oracle background process is started.
SGA is an area of m/m used for database info. shared by database users. The SGA is allocated when the oracle instance starts and de-allocated when the oracle instance shuts down. Each oracle instance that starts has its own SGA.
The info. in SGA consists of following elements, each of which has a fixed size & created a instance at instance startup.
Oracle Instance ( Combination of background process + memory buffers )
It consists of the oracle processes & shared m/m to access info. in the database. The instance is made up of the user processes, oracle background process & the shared m/m used by the processes.
Database Buffer Cache
This m/m structure is the cache especially for the data coming from the database. This buffer caches the blocks of data retrieved from the database.
ie. If the desired piece of data is found here, it is retrieved from this very area otherwise it is read from the database.
Redo Log Buffer
This stores redo entries or a log of changes made to the database. The redo log buffer are written to the redo log as quickly and efficiently as possible. Remember, that redo log is used for instance recovery in the event of the system failure.
The Shared Pool
This area of SGA that stored shared m/m structure such as shared SQL areas in the library cache and internal info. in the data dictionary. It is impossible because an insufficient amount of m/m allocated to the shared pool can cause performance degradation.
It consists of
Library Cache + Data Dict. Cache
Used to store shared SQL. If multiple app. issues the SQL statement, the shared SQL area can be accessed by each to reduce the amount of m/m needed & to reduce the processing time used for parsing & execution planning.
Data Dictionary Cache
Contains set of tables & view that Oracle uses as reference to the database. Data Dict. Contains
- User Info. ( Privileges )
- Integrity Constraints defined for table in database
- Names & datatypes of all columns in database tables
- Info. of space allocated & used for schema object
Are the user connections to the RDBMS system. The user process manipulate the user I/P & communicates with the Oracle Server process through Oracle prog. interface. It is also used to display the info. requested by the user and if necessary can process this info. into more useful form.
Dedicated Server Processes : ( Shadow Processes )
These are processes perform by the Oracle for the users.
Communicate with the user & interacts with the Oracle to carry out users request.
ie If user process request a piece of data not already in the SGA, the shadow process is responsible for reading the block of data from data files into the SGA.
There can be one-to-one co-relation b/w user processes & shadow processes.
One shadow process can connect to multiple user processes. ( doing so it reduce utilization of system resources )
Optional area in SGA. It is used to relives the burden place on the shared pool. It is also used for I/O processes. The large pool size can be set by LARGE_POOL_SIZE parameter in init.ora initialization parameter file.
As its name, java pool is used for services parsing the java commands. Its size can be set by JAVA_POOL_SIZE parameter in init.ora initialization parameter file.
Another oracle processes used to perform various tasks in RDBMS sys. These tasks may vary from communicating with other Oracle instances & performing sys. maintenance and cleanup to writing dirty blocks to disks.
DBWR ( Database Writer )
The DBWR process writes database blocks from the database buffer cache in SGA to the actual datafiles on disk. An Oracle instance can have upto 10DBWR processes at a time.
LGWR ( Log Writer )
This background process is responsible for writing the redo info. from redo log buffer in SGA to all copies of current redo log file on disk. As long as the transaction is processed, its redo info. is stored in the redo log buffer in SGA. Once transaction is successfully completed ( commit ), its redo info. is permanently stored on the disk by LGWR process.
CKPT ( Checkpoint )
The Checkpoint responsible for signaling the DBWR process to perform a checkpoint and to update all the data files and control files for the database, to indicate the most recent checkpoint.
A checkpoint is an event in which all modified database buffers are written to DBWR. ( It is optional, if CKPT is not present, LGWR assumes these responsibilities .
ARCH ( Archiver )
Responsible for copying the online redo log files to archiver storage when they become full. ARCH is active only when the RDBMS is operated in ARCHIVE LOG mode. When a system is not operated in archive log mode, it might not possible to recover system after failure.
LKCn ( Parallel Server Lock )
Up to 10 LCK processes are used for inter instance locking when the Oracle parallel server option is used.
When the multithreaded server option is used; atleast one dispatcher process is used for every communication protocol in use. Responsible for routing request from the user processes to a available shared server processes and back.
PMON ( Process Monitor )
Background process monitors the user processes accessing the database. If a user process terminates abnormally then PNOM cleans up the resources.
ie memory that were being used by the user-process and releases the locks held by the failed process. It is also responsible for starting any dispatcher process that might have failed.
SMON ( System Monitor )
Responsible for monitoring & maintaining the proper functioning of Oracle instance. It carries out many tasks, if required
ie cache recovery cleaning up adjacent pieces of free space in the data files by merging then into one piece & getting rid of space that is no longer needed.
RECO ( Recovery )
Used to clean transactions that were pending in distributed database. Responsible for commit or rollback the local portion of the dispute transaction.
Database Physical Structure
Structure that are not directly manipulated by Users.
Corresponds with a tablespace. One data file can be used by one tablespace. ( 1 tablespace has more than 1 data file )
Contains all database data
The data of logical database structure such as tables & indexes is physically stored in data files.
One or more datafiles from a logical unit of database storage called tablespace.
These files are used to read, as needed during normal database operation and stored in the m/m cache of Oracle.
Control Process Files
Every oracle database has control file.
Contains the entries that specify the physical structure of the database.
- Database name
- Name & Location of database files & redo log file
- Time Stamp of Database creation
Like redo, Oracle also allows control file to be multiplexed.
Every time Oracle instance started; its control file is used to identify the database & redo log file that must be opened for database operation proceed.
Redo Log File
Every oracle database have set of two or more redo log files. The primary function of redo log file is to record all changes made to the data. Failure time changes can be obtained from redo files and work is never lost. ( critical in protecting Database against failures )
Oracle allows a multiplexed redo log so that two or more copies of the redo log file can be maintained on different disks.