Oracle Silent Mode, Partie 10 : Installer un Cluster RAC 11.2

Ce 10e article revient sur l’installation d’un cluster RAC 11.2 en mode silencieux. Si vous recherchez mes articles précédents, je vous invite à retrouver les articles relatifs aux versions 10.2 et 11.1 sur le blog de The Pythian Group :

Les choses ont bien changé depuis les versions 11.1 et 10.2. Parmi les points qui viennent immédiatement à l’esprit, il y a bien sur « la fusion du clusterware, ASM et les listeners en Grid Infrastructure » mais il y aussi « La place du mode silencieux dans la documentation », « La mise à jour out-of-place des versions et des patchsets de tous les logiciels », « l’apparition du mode automatique de opatch » ou « le désinstalleur ». Ce genre d’article sera très certainement de moins en moins utile à l’avenir… Cela étant, mon expérience récente, montre qu’il y a aussi quelques petites régressions dans le domaine du provisioning des environnements et, comme après tout, j’écris ces notes d’abord pour moi, je me permets de noter encore tout ça même si ça peut paraître futile.

Notes:
Dans les trucs qu’on peut regretter :

  • runInstaller -silent -help comme netca -silent ... nécessite de positionner la variable DISPLAY, même si celle-ci n’est pas utilisée
  • dbca -silent -help ne fonctionne pas; il faut taper dbca -help ou dbca -h
  • Les progressions des installations en mode silencieux ne progressent plus. C’est une vrai régression me semble-t-il, même si les progressions n’étaient certes pas parfaites

Allons-y…

Préambule : 11.2, le « must » de la configuration dynamique

La plus grande innovation de l’infrastructure Grid en terme de provisioning est surement la configuration réseau et le GridPnP. Dans l’idéal, vous utiliserez des VLAN dédiés pour tous les sous-réseaux, y compris le réseau public. Des serveurs DHCP fournissent alors les IPs publiques, les IPs virtuelles, les IPs privées, les passerelles, le domaine, les DNS et même les serveurs NTP. Vous dédiez un sous-domaine pour votre cluster et vous configurez le Grid Name Server (GNS) pour gérer les résolutions de nom depuis l’extérieur du cluster; vous modifiez ensuite votre DNS pour « forwarder » les résolutions des noms du cluster au GNS. Toute la configuration est gérée dynamiquement par l’infrastructure Grid Plug and Play (GridPNP ou gPNP). Le GNS résout les requêtes DNS en interrogeant GridPNP à travers le service Multicast Domain Name Server (mDNS). Le principe vous parait sans doute dur à avaler lorsque c’est moi qui l’explique alors lisez la section Oracle Clusterware Network Configuration Concepts dans « Oracle® Clusterware Administration and Deployment Guide ».

Une fois l’infrastructure réseau en place, si vous vous appuyez sur GridPNP, le provisioning et le déprovisioning deviennent d’une simplicité redoutable ! Par exemple, pour installer votre cluster, il suffit de (1) Une adresse IP fixe qui servira d’IP virtuelle pour le GNS et (2) 3 IPs pour l’alias de SCAN correspondante que vous enregistrerez dans le DNS principal. C’est tout. Dans le même registre, la suppression d’un noeud, petit calvaire jusqu’ici, s’effectue en 3 commandes.

Malheureusement, l’équation : « Nouveau vlan public implique nouveau sous-réseau public implique nouvelles règles de routage », s’avère compliqué, sinon en théorie, au moins en pratique. Je reviendrai, je l’espère bientôt, avec de belles histoires d’utilisation en production de l’utilisation de serveurs DHCP et du GridPNP. En attendant, ce qui suit, s’appuie sur l’utilisation de réseaux publiques et privés fixes avec des adresses IP statiques… Vous l’aurez compris, si vous en avez l’opportunité, faites différemment !

Vérifier les pré-requis

La meilleure facon de commencer votre installation est probablement de valider 1x, 2x et même 3x que tous les pré-requis sont en place. Pour cela, vous disposez d’une palette d’outils complète avec :

  • La note My Oracle Support [ID 169706.1] Oracle Database on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2)
  • Le module HCVE du Remote Diagnostic Agent que vous lancerez avec ./rda.pl -T hcve
  • Oracle Cluster Verify Utility qui est également disponible avec la distribution de l’infrastructure Grid
  • Les guides d’installation d’Oracle 11.2 pour votre plateforme

N’installez rien avant d’être sûr que tout est correctement respecté et configuré.

Note:
Vous trouverez comment installer et configurer ASMLib sous Linux dans un de mes vieux articles

Installer l’infrastructure Grid « de zéro »

Créer un utilisateur pour l’infrastructure Grid

Oracle recommande sur Unix et Linux de créer un utilisateur et des groupes séparés pour les logiciels de base de données et l’infrastructure Grid. Voici un exemple de scripts pour creer cet utilisateur.

# groupadd -g 1001 oinstall
# groupadd -g 1002 asmdba
# groupadd -g 1003 asmadmin
# groupadd -g 1004 asmoper

# useradd -u 1001 -g oinstall
-G asmdba,asmadmin,asmoper
-s /bin/bash -m grid

# passwd grid

# id grid

Créer ensuite une équivalence SSH entre tous les utilisateurs grid de vos serveurs en créant des jeux de clés avec ssh-keygen et en enregistrant les clés publiques dans les fichiers authorized_keys. Pour tester cette équivalence, utiliser un script comme celui ci-dessous :

export ALLNODES="rac-server1 rac-server2 rac-server3 rac-server4"
for i in $ALLNODES; do
for j in $ALLNODES; do
ssh $i ssh $j date
done
done

Créer un Inventaire Oracle

Avant de procéder à une installation en mode silencieux, vous devez avoir un inventaire Oracle, même vide. Si c’est votre première installation d’un produit Oracle sur le serveur, créer un répertoire d’inventaire et ajoutez le répertoire dans le fichier de configuration oraInst.loc situé dans /etc sur Linux et AIX et dans /var/opt/oracle sur Solaris et HP-UX. Voici un exemple de script pour Linux à lancer sous root :

if [ -f "/
etc/oraInst.loc" ]; then
echo "File Exists"
else
echo "inventory_loc=/u01/app/oraInventory" >/etc/oraInst.loc;
echo "inst_group=oinstall" >>/etc/oraInst.loc;
mkdir -p /u01/app/oraInventory;
chown oracle:oinstall /u01/app/oraInventory;
chmod 664 /etc/oraInst.loc;
fi

Télécharger et installer l’infrastructure Grid

Connectez-vous sur l’utilisateur grid d’un des noeuds de votre cluster et télécharger le dernier patch de l’infrastructure Grid ou, si celui-ci n’existe pas encore, la version de base sur OTN. Décompressez le logiciel; l’installation ressemblera ensuite a la commande ci-dessous :

export DISTRIB=`pwd`

./runInstaller -silent -ignoreSysPrereqs -ignorePrereq
-responseFile $DISTRIB/response/crs_install.rsp
SELECTED_LANGUAGES=en
oracle.install.option=CRS_CONFIG
ORACLE_BASE=/u01/app/grid/base
ORACLE_HOME=/u01/app/grid/product/11.2.0.2/cluster
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.gpnp.scanName=red.easyteam.fr
oracle.install.crs.config.gpnp.scanPort=1521
oracle.install.crs.config.clusterName=red-rac
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.clusterNodes=rac-server1:rac-server1-vip,rac-server2:rac-server2-vip
oracle.install.crs.config.privateInterconnects=eth1:10.0.0.1:2,eth1:192.168.240.0:1
oracle.install.crs.config.storageOption=ASM_STORAGE
oracle.install.crs.config.useIPMI=false
oracle.install.asm.SYSASMPassword=manager1
oracle.install.asm.diskGroup.name=DATA1
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.disks=DATA1DISK
oracle.install.asm.monitorPassword=manager1

Note :
Si vous utilisez un logiciel de multipathing sans ASMLib, il est probable que vous deviez positionner une chaine de recherche dans ASM avec la variable oracle.install.asm.diskGroup.diskDiscoveryString

Exécutez ensuite successivement le script root.sh sur chacun des noeuds du cluster.

Appliquez le PSU sur l’infrastructure Grid

Pour installer le dernier PSU, il est probable que vous ayez d’abord à installer la dernière version d’Oracle Patch (opatch) disponible sous le placeholder 6880880. Téléchargez ensuite le PSU et poussez le sur chacun des serveurs dans un répertoire spécifique /u01/app/oracle/patches/gi par exemple. L’installation du PSU s’effectue alors depuis l’utilisateur root comme ceci :

unzip p*.zip
opatch auto

C’est Opatch qui se charge d’arrêter le cluster, trouver le ORACLE_HOME, appliquer le patch et rédemarrer le cluster. Effectuez l’opération successivement sur chacun des noeuds du cluster.

Configurer les LISTENERs

Vous pouvez configurer les listeners locaux au moyen de la commande suivante :

export DISPLAY=:0
export ORACLE_HOME=/u01/app/grid/product/11.2.0.2/cluster
export PATH=$ORACLE_HOME/bin:$PATH
netca -silent
-responsefile $ORACLE_HOME/network/install/netca_typ.rsp
-instype typical -nodeinfo rac-server1,rac-server2

Créer un fichier de mot de passe pour ASM

Si vous voulez pouvoir créer une base 10.2 sur votre infrastructure, il faut pouvoir se connecter à ASM à distance. Pour cela, créez un fichier de mot de passe pour ASM si ce n’est pas déjà le cas :

export ORACLE_HOME=/u01/app/grid/product/11.2.0.2/cluster
export PATH=$ORACLE_HOME/bin:$PATH
cd $ORACLE_HOME/dbs
orapwd file=orapw+ASM entries=5 ignorecase=y
ln -s orapw+ASM orapw+ASM1

Installer le logiciel Oracle

Créer un utilisateur pour vos logiciels Oracle

Oracle recommande sur Unix et Linux de créer un utilisateur et des groupes séparés pour les logiciels de base de données ; voici un exemple de scripts pour créer un utilisateur Oracle :

# groupadd -g 1005 dba
# groupadd -g 1006 oper

# useradd -u 1002 -g oinstall
-G dba,oper,asmdba
-s /bin/bash -m oracle

# passwd oracle

# id oracle

Créer ensuite une équivalence SSH entre tous les utilisateurs Oracle de vos serveurs.

Télécharger et installer le logiciel de base de données

Connectez-vous sur l’utilisateur Oracle d’un des noeuds de votre cluster et télécharger le dernier patch du logiciel Oracle ou, si celui-ci n’existe pas encore, la version de base sur OTN. Décompressez le logiciel; l’installation ressemblera ensuite à la commande ci-dessous :

export DISTRIB=`pwd`

export DISTRIB=`pwd`
./runInstaller -silent -ignoreSysPrereqs -ignorePrereq
-responseFile $DISTRIB/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/appl/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=rac-server1,rac-server2
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

Exécutez ensuite successivement le script root.sh sur chacun des noeuds du cluster sur lequel vous avez installé votre logiciel de base de données.

Appliquez le PSU sur votre logiciel de base de données

Installer la dernière version d’Oracle Patch (opatch) disponible sous le placeholder 6880880. Téléchargez ensuite le PSU et poussez-le sur un de vos serveurs. L’installation du PSU s’effectue alors depuis l’utilisateur oracle Arrêtez le logiciel, positionnez l’environnement et notamment ORACLE_HOME puis appliquez le patch comme ceci :

cd 9*
opatch apply

Créer une base de données RAC

Ajouter un groupe de disques ASM

Si vous avez créé un disque DISK2 avec ASMLIB, vous pouvez créer un nouveau groupe de disques à l'aide de la commande suivante passée avec l'utilisateur Grid de votre infrastructure Grid :

export ORACLE_HOME=/u01/app/grid/product/11.2.0.2/cluster
export PATH=$ORACLE_HOME/bin:$PATH
asmca -silent -createDiskGroup
-diskGroupName DATA2
-disk DISK2 -redundancy EXTERNAL

Créer une base de données avec DBCA

Vous pouvez ensuite créer une base de données à l’aide de la commande DBCA sous l’utilisateur Oracle ci-dessous :

dbca -silent -nodelist rac-server1,rac-server2 
-createDatabase -templateName General_Purpose.dbc
-gdbName BLACK -SysPassword manager1
-SystemPassword manager1 -emConfiguration NONE
-storageType ASM -asmSysPassword manager1 -diskGroupName DATA2
-characterSet AL32UTF8 -totalMemory 1024

Si vous créez votre base de données a partir d’un template comme ci-dessus, il faudra également exécuter le script associé au PSU comme ci-dessous :

cd $ORACLE_HOME/rdbms/admin
export ORACLE_SID=BLACK1
sqlplus / as sysdba
@catbundle apply psu
exit;

Conclusion

Le nombre de possibilités liées au provisioning et au d
éprovisioning est significativement plus important avec Oracle 11.2. C’est d’autant plus vrai que vous voudrez utiliser Oracle VM et ses templates avec RAC ou les capacités de clone de l’infrastructure Grid. Mais j’y reviendrai encore ; cette série est loin d’être terminée…

1 réflexion sur “Oracle Silent Mode, Partie 10 : Installer un Cluster RAC 11.2”

Les commentaires sont fermés.