Installer Oracle Clusterware 10g en mode silencieux sous Linux

Allons droit à l’objectif, voici comment installer Oracle Clusterware 10g en mode silencieux (i.e. sans DISPLAY) sous Linux en supposant que :

  • $DISTRIB est le chemin de la distribution du logiciel Oracle (Vous commencerez par installer 10.2.0.1 puis vous installerez le dernier Patch Set ensuite)
  • Tous les pre-requis sont vérifiés (i.e. Vous avez passes : runcluvfy.sh stage -pre crsinst -n node1,node2 -verbose)
cd $DISTRIB
./runInstaller -silent
-responseFile $DISTRIB/response/crs.rsp
ORACLE_HOME="/u01/crs"
ORACLE_HOME_NAME="OraCRS102"
s_clustername="mycluster"
sl_tableList={"node1:node1-priv:node1-vip:N:Y","node2:node2-priv:node2-vip:N:Y"}
ret_PrivIntrList={"eth0:10.0.0.0:1","eth1:192.168.0.0:2","eth2:192.168.0.128:3"}
n_storageTypeOCR=1
s_ocrpartitionlocation="/dev/sdb1"
s_ocrMirrorLocation="/dev/sdc1"
n_storageTypeVDSK=1
s_votingdisklocation="/dev/sdb2"
s_OcrVdskMirror1RetVal="/dev/sdc2"
s_VdskMirror2RetVal="/dev/sdd2"

Quelques remarques à propos de cette commande :

  • Ici, vous supposez implicitement que le compte d’installation est oracle, le groupe oinstall et le groupe dba est dba. verifiez le contenue du fichier de réponse pour des options plus évoluées…
  • Il ne faut pas modifier le fichier de réponse dans ce cas puisque vous passez l’ensemble des paramètres dans la ligne de commande
  • Les paramètres ORACLE_HOME, ORACLE_HOME_NAME et s_clustername ne méritent pas de commentaires particuliers
  • s_tableList contient la liste des serveurs sous la forme « nom-public:nom-interconnect:non-vip:N:Y ». Il faut que la commande nslookup permettent de résoudre ce nom et récupère l’IP correspondante (Bien sur, il faut aussi que les adressent soient correctement installee et les VIP libres puisque le clusterware les installera.
  • ret_PrivIntrList contient la liste des interfaces et sous-réseaux correspondant (BITAND(IP, NETMASK)) des serveurs ainsi que quoi en faire :
    • 1 : indique que c’est le sous-réseau public
    • 2 indique que c’est le sous-réseau d’interconnect
    • 3 indique que c’est un sous-réseau non utilise par le cluster
  • n_StorageTypeOCR=1 indique qu’il y a 2 OCR et s_ocrpartitionlocation et s_ocrmirrorlocation indiquent leur emplacement (NFS, Volume logique, Raw devices , OCFS…)
  • n_StorageTypeVDSK=1 indique qu’il y a 3 voting disk et s_votingdisklocation, s_OcrVdskMirror1RetVal et s_VdskMirror2RetVal indiquent leur emplacement (NFS, Volume logique, Raw devices , OCFS…). Remarquez que le nom du 2e emplacement semble un peu bizarre mais qu’il fonctionne bien (Je n’ai pas essaye avec s_VdskMirror1RetVal ?)

Cette commande installe le clusterware en quelque minutes. Vous pouvez lancer orainstRoot.sh si vous devez créer l’inventory mais NE LANCEZ PAS root.sh tout de suite; Commencez par changez la variable $DISTRIB avec le chemin du Patch Set et installez la dernière version :

cd $DISTRIB
./runInstaller -silent
-responseFile $DISTRIB/response/patchset.rsp
ORACLE_HOME="/u01/crs"
ORACLE_HOME_NAME="OraCRS102"

Maintenant vous pouvez lancer les scripts root.sh sur tous les serveurs. Si vous utilisez une classe d’adresse réservée pour le réseau public, comme 10.x.x.x, « vipca » va échouer (11g corrige cette erreur ;-( ). Je n’ai réussi à le relancer en mode silent dans ce cas! (Peut-être que vous trouverez ?). Ce n’est pas grave ! Vous pouvez configurer la VIP manuellement avec srvctl…

Si c’est votre cas, vérifiez que les adresses publiques et privées sont enregistrées dans le clusterware avec la commande oifcfg getif et le cas échéant, créez les avec oifcfg setif. Une fois les réseaux correctement enregistrés, vous pouvez créer VIP, GSD et ONS avec srvctl comme ci-dessous :

$ORA_CRS_HOME/bin/srvctl add nodeapps -n node1 
-o /u01/crs
-A node1-vip/255.255.255.0/eth0

$ORA_CRS_HOME/bin/srvctl add nodeapps -n node2
-o /u01/crs
-A node2-vip/255.255.255.0/eth0

L’option -A suivie de l’alias de la VIP, du netmask et de l’interface réseau séparés par un « / » permettent d’enregistrer la VIP dans l’OCR. Il est a noter que vous devez vous attendre à l’erreur suivant puisque vous ne créerez le listener qu’une fois le logiciel rdbms installé :

CRS-0210: Could not find resource ora.node1.LISTENER_NODE1.lsnr

Vous pouvez maintenant vérifiez le status des VIP, GSD et ONS ; Une façon simple est d’utiliser encore srvctl comme ci-dessous :

$ORA_CRS_HOME/bin/srvctl status nodeapps -n node1
$ORA_CRS_HOME/bin/srvctl status nodeapps -n node2

Voila, c’est fini ! Vous avez installé le clusterware en 15 minutes, il vous en faudra 10 de plus pour installer le logiciel de base de données. Bien sur, sauf si vos serveurs sont des brouettes… Allez, le prochain post sera consacré aux 10 prochaines minutes.