SAP system connects with the oracle database using different types of SAP, Network and Oracle processes. This connectivity can be well understand by going through the following paragraphs.
SAP software works normally with the data is stored in a database. The database will be managed by a software called RDBMS (Relational Database Management System). There are many RDBMSs are available in the market today. SAP software will install only on some of the RDBMSs, such as Oracle, MS SQL, MAXDB, DB2…etc. I am explaining here how the SAP system connects with the Oracle RDBMS. Before how it connects to the database, we will discuss about Oracle architecture briefly.
Oracle software is one of the major relational database management systems available presently in the software market. RDBMS is a database management system which manages the relational data. Oracle RDBMS can handle large amount of data in a multi-user environment and the data can be accessed by many users concurrently. Main reason of naming this database management system as RDBMS, because this software maintains relations between data. RDBMS control access to the data using its own authorization concept. We can recover the data to a known consistent point when there is a crash with the help of RDBMS. RDBMS provides high performance for data requests.
There some of the terms we have to know before proceeding to understand about the architecture of the Oracle RDBMS. The terms are Database, Instance, SGA, Processes and System identifier.
- Database: Database is a collection of data, considered as logical unit. Normally data stored in one or more data files in the file system of an operating system. Oracle RDBMS managed this data using tablespaces. All the data is stored in the form of table in the database. Each table is created in a particular tablespace. Tablespace consists of one or more data files.
- Instance: Instance is the combination of oracle background processes and memory buffers. Instance is required to access and manages the data in a database. In the Real Application Cluster two or more instances will be used to access and manages the data of a single database. Using RAC, performance of accessing and managing the data in a database will be improved significantly.
- System Global Area (SGA): SGA is the area in the physical memory which is allocated when the Oralce instance starts. Oracle processes will use this memory to access the data in the database. SGA will be de-allocated when the Oracle instance shutdown
- Processes: When the oracle instance starts, all the oracle processes will be started and will be stopped when the instance is shutdown.
- System Identifier: Every database will be identified in the network with the help of its SID. SID consists of only 3 characters, starting letter must be a character. SAP systems also communicate in a network with the help of its SID. Both SIDs can be distinguished as ORASID and SAPSID.
Oracle processes, Memory areas and Data files are listed below.
- Database writer (DBW0) process
- Checkpoint (CKPT) Process
- Log writer (LGWR) process
- Archiver (ARC0) process
- System monitor (SMON)
- Process monitor (PMON)
Memory areas: (SGA)
- Database buffer cache
- SQL shared pool
- Redo log buffer
Following image shows you the oracle database file structure in an ECC 6.0 EHP4 SAP system.
When an oracle instance starts, listener process will open and establishes the connection to the oracle instance where database clients can communicate with the database. Listener is part of networking processes that works with Oralce.
How the SAP system connects with the Oracle Database
When a work process of SAP system makes a connection request to the database, the listener process will create a didicated server process and establises an appropriate connection. This separate server process is called shado process. SAP system’s user make request to the database through work process, then the work process communicate with its corresponding shadow process. Work process connects to the database automatically when the database server is available and process the requests.
Oracle background processes perform various tasks required for the
database management system to function properly.
Database data is permanently stored in data files on disks. To accelerate
read and write access to data, it is cached in the database buffer cache
The Oracle database management system holds the executable SQL
statements in the shared SQL area (also called shared cursor cache), which
is part of the shared pool allocated in SGA. Another part of the shared pool
called row cache caches Oracle data dictionary information.