Compatibility rules apply when you upgrade Oracle Database client or server software.
Compatibility rules are based on the type of software upgrade you are performing, and the type of client/server configuration.
This section uses the terms introduced in “Software Upgrades and Client and Server Configurations.” .
Rules for Upgrading Oracle Database Server Software
Different rules apply when you upgrade Oracle Database server software depending on your database environment.
If You Do Not Change the Client Environment, Then You Are Not Required to Relink
Review these scenarios to determine if you must relink your applications after upgrading.
If your client and server are on different computers, or are in different Oracle home directories on the same computer, and you upgrade the Oracle Database server software without changing the client software, then you are not required to precompile, compile, or relink your applications.
In this set of scenarios, client software using Oracle Databases are in separate locations from the server software, and the client software continues to function without direct effects from the upgrade.
However, if your applications are using the same Oracle home as the Oracle Database server, then your server upgrade also upgrades your client software, and you must follow the rules for upgrading Oracle Database client software.
You can upgrade the Oracle Database server software, but not install the new precompiler or OCI client software, when you are using the same Oracle home for both binaries. In this case, the client software is not upgraded. However, Oracle does not recommend this configuration.
Applications Can Run Against Newer or Older Oracle Database Server Releases
If you run a precompiler or OCI application against a database server, then Oracle recommends that the release of the database server software is equal to or later than the client software release.
This recommendation configuration is not strictly required.
For example: If your client software is Oracle 12c release 2 (126.96.36.199), then if you run precompiler applications on the client against, the server, Oracle recommends that your server software is Oracle 12c release 2 (12.2) or later.
Upgrading the Oracle Database Client Software
Keeping the server and client software at the same release number ensures the maximum stability for your applications.
Use this information to plan your Oracle Database Client installations. Depending on how your applications are linked, different rules apply when you upgrade the Oracle Database client software.
Oracle recommends that you upgrade your client software to match the current server software. For example, when you upgrade Oracle Database to the new Oracle Database release, Oracle recommends that you also upgrade your Oracle Database client software to the new release. The latest Oracle Database client software can provide added features and performance enhancements that are only available with that later release.
About Image-Based Oracle Database Client Installation
Starting with Oracle Database 19c, installation and configuration of Oracle Database Client software is simplified with image-based installation.
To install Oracle Database Client, create the new Oracle home, extract the image file into the newly-created Oracle home, and run the setup wizard to register the Oracle Database product.
You must extract the image software (
client_home.zip) into the directory where you want your Oracle Database Client home to be located, and then run the Setup Wizard to start the Oracle Database Client installation and configuration. Oracle recommends that the Oracle home directory path you create is in compliance with the Oracle Optimal Flexible Architecture recommendations.
Using image-based installation, you can install Oracle Database Client 32-bit and 64-bit configurations of the Administrator installation type.
As with Oracle Database and Oracle Grid Infrastructure image file installations, Oracle Database Client image installations simplify Oracle Database Client installations and ensure best practice deployments. Oracle Database Client installation binaries continue to be available in the traditional format as non-image zip files.
About Linking Applications with Newer Libraries
You can link the code generated by precompiler applications and OCI with a release of the client library that equals or is later than the server release.
You can link OCI applications with a release of the OCI runtime library that equals or is later than the release of the OCI library with which the application was developed.
Statically Linked Applications Must Always Be Relinked
Statically-linked code can be incompatible with error messages in the upgraded ORACLE_HOME.
You must relink statically-linked OCI applications for both major and minor releases. The statically-linked Oracle client-side library code may be incompatible with the error messages in the upgraded ORACLE_HOME. For example, if an error message is updated with additional parameters, then it becomes incompatible with the statically-linked code.
About Relinking Dynamically Linked Applications
Dynamically linked OCI applications from Oracle Database 10g Release 1 (10.1) and later releases are upward-compatible with the current release.
The Oracle client-side dynamic library is upward-compatible with the previous version of the library. Oracle Universal Installer creates a symbolic link for the previous version of the library that resolves to the current version. Therefore, an application that is dynamically linked with the previous version of the Oracle client-side dynamic library does not require relinking to operate with the current version of the Oracle client-side library.
If the application is linked with a run-time library search path (such as
-rpath on Linux), then the application may still run with the version of the Oracle client-side library with which it is linked. You must relink the application to run with the current version of the Oracle client-side library.
If the application is linked with the deferred option (for example, statically-linked application), then it must be relinked.
If the application is from a release earlier than Oracle Database 10g Release 1 (10.1), then it must be relinked.