J'ai récemment dû travailler avec mon administrateur système sur une mise à niveau mineure du système d'exploitation sur un cluster RAC à deux nœuds. J'utilise Oracle Grid Infrastructure 11.2.0.2 avec Oracle RDBMS 11.2.0.2 et nous étions en train de passer d'Oracle Enterprise Linux 5.2 à 5.8.
Comme le savent la plupart des DBA Oracle, il est judicieux de recompiler le logiciel Oracle après une mise à niveau du système d'exploitation. Pour le logiciel Oracle RDMBS, c'est aussi simple que "$ORACLE_HOME/bin/relink all". Mais qu'en est-il du logiciel Grid Infrastructure ?
Si vous lisez la note Metalink 220970.1 RAC :Foire aux questions, il indique que pour 11.2 et supérieur, vous devez rétablir le lien après une mise à niveau du système d'exploitation (les versions inférieures n'ont pas besoin du lien). Cependant, je pense que les étapes sont un peu trompeuses comme je l'ai découvert hier soir. Les étapes décrites dans cette note sont les suivantes :
As root:
cd $GRID_HOME/crs/install
perl rootcrs.pl -unlock
As GRID_HOME owner ("oracle" in my case):
export ORACLE_HOME=$GRID_HOME
$ORACLE_HOME/bin/relink
As root:
cd $GRID_HOME/crs/install
perl rootcrs.pl -patch
Ce que les instructions ne vous disent pas, c'est que le dernier appel à rootcrs.pl démarrera Grid Infrastructure, ce qui signifie pour la plupart des gens un redémarrage automatique des instances exécutées sous le contrôle de GI. Mais attendez une minute ! Je n'ai pas eu l'occasion de recompiler le logiciel Oracle RDBMS ! Voici donc mes étapes modifiées pour tout recompiler :
As root:
cd $GRID_HOME/crs/install
perl rootcrs.pl -unlock
As GRID_HOME owner ("oracle" in my case):
export ORACLE_HOME=$GRID_HOME
$ORACLE_HOME/bin/relink
export ORACLE_HOME={rdbms home}
$ORACLE_HOME/bin/relink all
As root:
cd $GRID_HOME/crs/install
perl rootcrs.pl -patch
De cette manière, nous recompilons le logiciel Grid Infrastructure, puis le logiciel RDBMS. Ensuite, le dernier appel à rootcrs.pl démarrera GI et démarrera les instances.