Wednesday 14 April 2010

SAP BASIS: Oracle Database and Oracle Instantclient Dual Setup for SAP - Why?

Often when looking at ORACLE installations for SAP I have in the past wondered at the difference between the ORACLE database installation and the ORACLE instantclient. What does the ORACLE instantclient add that the database software doesn't include? The answer is, essentially, nothing. This is confusing at first as an SAP installation requires the instantclient in addition to the database installation. This blog explains why...

This may seem, technically, a very simple question, yet due to demarcation of roles between teams you might very well continue in a SAP Basis role for a long time without really knowing the answer. This was my situation until recently - so this blog is to help me to remember and to help you to learn.

So let's start from the start... what scenario led to this question?

Well while working on some migrations I noticed that I'd never questioned why there was an instant client setup being used by SAP. The reason that this is strange, as I have mentioned above, is that the base ORACLE db software installation includes this functionality already, so why install the instant client as well?

Having spoken to several experts I found the answer - the SAP kernel is compatible with more and less advanced versions of ORACLE, however it needs to use the appropriate ORACLE client software (that it was developed for) to access the database.

An example? During one migration we moved a system running on ORACLE 10.2.0.4 to a new server. We only setup a 10204 instantclient on the target as it seemed to make logical sense that this system would no longer need the ORACLE 9i client (which existed on the source) - WRONG! In this case the SAP kernel was a 640 version that required the ORACLE 9i client to communicate with the database!

So the full ORACLE database software installation is required to run the ORACLE database layer, however the ORACLE instantclient is also required to be installed and managed separately, to enable the SAP kernel to work and communicate with the database.

Technical notes==
See SAP kernel file "dboraslib" which utilises the ORACLE instantclient.
On UNIX you can us the "ldd" command (LIST DYNAMIC DEPENDENCIES) to check what libraries this file expects/requires.

SAP notes===
See SAP note 819829 for UNIX, or 998004 for Windows