Skip navigation

Recently I discovered the "relink" binary that sits in the bin folder of the grid infrastructure home (RAC) and the Oracle home (database).  I learned that the Oracle binaries in a GI for Linux image are not compiled.  When you install that image, the Oracle Universall Installer links those binaries with the OS's appropriate libraries to compile the binaries.  So when those OS librairies are updated/modified, it can lead to issues with the Oracle binaries.  Hence the Oracle relink tool, which relinks the Oracle binaries to the (possibly new) OS libraries.

See this pages in the Oracle documentation for reference:

https://docs.oracle.com/en/database/oracle/oracle-database/18/cwlin/relinking-oracle-grid-infrastructure-for-a-cluster-b…

 

This article on Oracle-help explains how to use relink (for different recent versions of Oracle):

http://oracle-help.com/oracle-rac/relink-oracle-12c-grid-infrastructure-and-rdbms-binaries/

Here is what I did to use relink on a 12.1.0.2 GRID_HOME:

 

root@rac01: /tmp # $ORACLE_HOME/crs/install/rootcrs.sh -unlock

Using configuration parameter file: /app/grid/12.1.0/crs/install/crsconfig_params

2019/04/19 10:54:41 CLSRSC-4012: Shutting down Oracle Trace File Analyzer (TFA) Collector.

2019/04/19 10:54:49 CLSRSC-4013: Successfully shut down Oracle Trace File Analyzer (TFA) Collector.

2019/04/19 10:54:50 CLSRSC-347: Successfully unlock /app/grid/12.1.0

rac01@gridis::~ #  export PATH=$GRID_HOME/bin:$PATH

rac01@gridis::~ # $GRID_HOME/bin/relink all

writing relink log to: /app/grid/12.1.0/install/relink.log

Then repeat those steps on the second node:

root@rac02: /tmp # cd $ORACLE_HOME/rdbms/install

root@rac02: /app/grid/12.1.0/rdbms/install # ./rootadd_rdbms.sh

root@rac02: /app/grid/12.1.0/rdbms/install # cd $ORACLE_HOME/crs/install

root@rac02: /app/grid/12.1.0/crs/install # ./rootcrs.sh -patch => do this on both nodes.  It will start the cluster.

 

Note the 4 steps:

  1. first all the cluster resources must be stopped on the 1st node where you're going to run relink
  2. then, as root, unlock the Oracle binaries, with rootcrs.sh -unlock
  3. then, as the GI owner, run relink all
  4. then, as root, lock the binaries , with /rootadd_rdbms.sh then rootcrs.sh -patch (in 12cR1, it's different in 12cR2, see above Oracle-help article).  This will start your cluster on the current node.

Then repeat those steps on all the other nodes of your RAC.