Sommaire

Les actions

  • Préparation des chemins (sur les 2 serveurs)
    • /soft/oracle sera le départ pour notre ORACLE_HOME (/soft/oracle/12.1.0/grid)
    • /base/oracle est tout simplement le BASE_ORACLE (point de départ pour les fichiers des bases)
    • Les dossiers doivent pouvoir être modifiés par le compte oracle (j'ai pris la solution de rendre oracle propriétaire des dossier)
  • Copie des fichiers zip pour l'installation d'Oracle Grid 12c
  • Création du mot de passe + de la clé ssh pour le compte oracle (sur les 2 VM)
  • Désactiver iptables sur les 2 VM de manière définitive (chkconfig)
  • Démarrer ntp et le mettre en démarrage automatique
  • Déclarer les alias dans le /etc/host

Installation du Grid Infrastructure

  • On exporte le DISPLAY pour avoir l'interface graphique sous le XServer Windows
  • Lancer le runInstaller
  • On prend l'option d'installer un Grid Infra pour un cluster
  • Cluster standard (par opposition au Flex Cluster)
  • Configuration du cluster
    • Commençons par le SCAN. C'est un nouveau principe arrivé chez Oracle avec le Grid 11g. En gros, le SCAN permet de faire du load-balancing lors de l'établissement des connexions entre les clients et les listeners. Pour le SCAN, il faut configurer dans votre serveur DNS 3 IP pour un seul nom. Lorsque le client va demander l'IP au serveur DNS, le serveur lui renvoie l'une des 3 IP via un round-robin (pseudo load-balancing). J'ai pris les IP 192.168.213.101, 192.168.213.102 et 192.168.213.103.
    • Tant qu'on est sur le DNS, on crée 2 entrées pour les 2 VIP de nos 2 VM (192.168.213.61 et 62)
    • Retour à l'écran d'installation ; j'ai supprimé les domaines (obr.vmware.com) car inutile.
    • On ajoute le second noeud (godzilla)
    • Configuration des connexions ssh : j'indique le mot de passe du compte oracle ; et je demande à ne pas regénérer les clés ssh (important si vous avez déjà partagé ces clés)
  • Après avoir cliqué sur "Next", aucune réaction à l'écran, je vais voir les logs pour m'assurer que l'installation se poursuit.
  • Renseigner les chemins
    • Comme déjà indiqué, notre BASE_ORACLE est : /base/oracle et le ORACLE_HOME est : /soft/oracle/12.1.0/grid
    • Je souhaite stocker la configuration du Grid sur les disques ASM. Cela a 2 effets : une instance ASM va être créée et les disques vont devenir un élément critique de l'infrastructure. Ce choix n'est pas anodin ; il faut étudier les différentes solutions.
  • Vu le choix précédent, l'instance ASM doit être créée et doit mettre a disposition un disk group pour stocker la configuration du Grid
    • Pensez bien à aller chercher les disques sous /dev/oracleasm/disks/ ou vous aurez des erreurs de droits !
    • Prenez des disques pour faire votre disk group avec une redondance (redondance prise en charge par ASM ou par votre solution de storage)
  • Indiquer l'emplacement pour l'oraInvenroty. Je respecte pas les "normes" Oracle et je choisi un emplacement dans l'ORACLE_BASE ce qui n'est pas recommandé. Je prends le risque :)

Check des prérequis

Malgré toute ma bonne volonté, il reste des points à corriger.

  • Il manquerai le package ASMlib
  • Problème avec la RAM
  • Le package cvuqdisk est absent. Ce point va être très facile à corriger : l'installeur possède un script d'installation (colonne Fixable)
  • Problème de validation des disques pour ASM
  • Le NTP n'est pas correct
  • et pour finir, le resolv.conf n'est pas acceptable pour Oracle

On a un peu de travail...

  • resolv.conf : je vais remplir le fichier /etc/resolv.conf sur les 2 VM et j'ajoute une option de timeout à 4 secondes. Il vous faut indiquer le serveur DNS que le Grid va utiliser pour résoudre les noms.
  • ntp : j'ai renseigner l'IP du serveur qui me servira de source de synchronisation. L'objectif du NTP est de synchroniser les horloges des différents serveurs ; cela se fait en utilisant une ou plusieurs sources qui diffusent l'heure actuelle. Ici, c'est mon serveur Windows qui sera serveur NTP. Le fichier à configurer est /etc/ntp.conf.

On relance une vérification avec l'option "Fix and check" pour corriger le problème avec cvuqdisk.

Nouveau soucis avec NTP : l'aide indique que la VM godzilla a son horloge décalée de plus de 1000s par rapport au serveur NTP configuré ! Voici 3 commandes très utiles pour travailler avec NTP :

  • ntpdate -u 192.168.213.10 (interroge l'IP pour avoir l'heure et calcule le décalage par rapport a l'heure système = offset)
  • ntpdate -s -u 192.168.213.10 (interroge l'IP pour avoir l'heure et met a jour l'heure du système)
  • ntpq -p (vous retourne les statistiques actuelles de NTP avec notamment l'offset courant)

Vous pouvez voir que sur godzilla, j'ai un offset de 1263 secondes. C'est parce que j'ai utilisé la fonction d'hibernation des VM ; l'heure n'est alors plus synchronisée. De plus, le protocole ntp fonctionne par mise à jour successives et de faible ampleur, l'horloge met un certain temps à se synchroniser.

Une fois que l'horloge est synchronisée je relance un "Fix and check" ; cette fois, l'assistant va plus loin puisqu'il me demande d'exécuter un script de Fix sur les 2 noeuds. Cette fois, l'assistant détecte 3 erreurs : l'installation d'ASMLib ; Physical memory ; Device check for ASM. Ces 3 erreurs peuvent être ignorées dans notre cas.

L'installation se termine par l'exécution de 2 scripts sur chacun des 2 noeuds (à exécuter en tant que root). Notez que vous ne pouvez pas lancer le script 12.1.0/grid/root.sh en parallèle, il faut même commencer par le nœud sur lequel vous avez lancer le runInstaller : ce script configure le grid pour reconnaitre les 2 nœuds dans le cluster.

Vidéo

Conclusion

Le Grid infrastructure est installé et fonctionne. Les 2 VM de notre cluster ont les processus Oracle pour la gestion du cluster démarrés et les 2 instances +ASM sont fonctionnelles. Nous pouvons attaquer sereinement la création d'une instance RAC.