Various sources on the internet suggest relinking of Oracle binaries is necessary after each OS upgrade and / or patch.
I can understand relinking would be necessary when upgrading glibc. Some package likely do not to require relinking, some do, some I am not sure about:
- upgrading glibc -> I suppose relinking required
- upgrading vim -> I suppose no relinking required
- upgrading gzip -> I'm not sure
- upgrading kernel -> I'm not sure
Does anyone have a list, or can anyone point me to a list to what libraries Oracle actually links? I am not an Oracle DBA, so I am clueless about the Oracle linking procedure. I am not even sure I actually understand what Oracle is doing during the relinking: it's not really a common practice in binary software to do it's own linking after install, is it?
Anyway, to make a long story short: I have a couple of RHEL[345] boxes, that I need to apply some patches to. Most boxes run Oracle and I am wondering what patches would require relinking and what would not. A list as exhaustive as possible would be nice :)
I have rarely needed to relink Oracle database, maybe only after major O/S upgrade or going from 32-bit to 64-bit. However, if you have doubts, just run it. It takes a minute. Another source to consult with is metalink note 131321.1... the gist is:
" Relinking occurs automatically under these circumstances:
The following information has been added to the 'Certify' section of Metalink:
General Notes For Oracle Database - Enterprise Edition:
O/S Information: The vendors guarantee operating system binary compatibility; therefore, no reinstall or relink of the Oracle software is required when upgrading these operating systems unless specifically stated otherwise.
Relinking Oracle manually is suggested under the following circumstances (even though the OS vendor may not require it):
"
For a complete picture, in additionan to what was said above, Oracle Clusterware may also need relink if you're changing Linux kernel. For example if you use ACFS filesystem, Oracle has ACFS kernel drivers for a specific Linux kernel version. Not sure if minor kernel upgrades qualify for this though.
It's not actually a relink itself that fixes acfs Clusterware drivers, but crs/install/rootcrs.pl -lock (or roothas.pl -lock for a single-node clusterware) script that installs new ACFS drivers. You'll have to call rootcrs.pl -unlock before relinking clusterware binaries, and once relinking is done - then rootcrs.pl -lock .
From Oracle Metalink Note "Relinking Oracle Home FAQ ( Frequently Asked Questions)(Doc ID 1467060.1)" already mentioned in another answer, the current versin of the document:
If you use Oracle Linux then this is 100% compatible to Redhat Enterprise Linux aacording to Frequently Asked Questions Oracle Linux
Red Hat Enterprise Linux 7: Application Compatibility GUIDE.
So Oracle recommands to relink the binaries after a change (a patch, an upgrade,...) and Redhat only makes "commercially reasonable efforts to maintain binary compatibility for the core runtime environment across all minor releases".
For binary compatibility it is not only necessary that the OS does not change the Application binary interface (ABI) but also that the application only uses this interfaces and no other, maybe undocumented routines.
Relinking is easy and Oracle supplies a script that must be executed in the correct environment. So actually you could add linking to the start scrips of you database, if you have one, and do this linking every time when you start the database.
The Linux packages that are needed can be found in the Database Installation Guide for Linux in the section
But i am not sure how reliable this information of the manual is. >ou caan also run the "ldd" command for some binaries to find out which libraries it uses.
But I think it is easier to relink the Oracle software. This is not difficult. According to the Metalink note, set the variables
and run
I would suggest no for all your scenarios. I always understood that relinking was for when you upgraded or patched parts of your Oracle installation, not its supporting operating system.