vendredi 4 juin 2010

Configuration NTP pour le grid infrastructure 11.2.0.1

En migrant l'un de mes environnements (clusterware/ASM 11.1.0.6) vers le grid infrastructure 11.2.0.1 sur la plateforme SPARC Solaris 64-bit, j'ai rencontré le problème suivant:

Après avoir terminé la phase d'installation des binaires, en exécutant le script «rootupgrade.sh», le noeud sur lequel j'exécutais le sript a redémarré et j'ai obtenu le message d'erreur suivant:

CRS-2674: Start of 'ora.cssd' on 'racnode2' failed
CRS-2679: Attempting to clean 'ora.cssd' on 'racnode2'
CRS-2681: Clean of 'ora.cssd' on 'racnode2' succeeded
CRS-2673: Attempting to stop 'ora.diskmon' on 'racnode2'
CRS-2677: Stop of 'ora.diskmon' on 'racnode2' succeeded
CRS-4000: Command Start failed, or completed with errors.
CRS-2672: Attempting to start 'ora.cssd' on 'racnode2'
CRS-2672: Attempting to start 'ora.diskmon' on 'racnode2'
CRS-2674: Start of 'ora.diskmon' on 'racnode2' failed
CRS-2679: Attempting to clean 'ora.diskmon' on 'racnode2'
CRS-5016: Process "/u02/home/dba/oracle/product/grid11gr2/bin/diskmon" spawned by agent
"/u02/home/dba/oracle/product/grid11gr2/bin/orarootagent.bin" for action "clean" failed: details at "(:CLSN00010:)"
in /u02/home/dba/oracle/product/grid11gr2/log/ucl03a/agent/ohasd/orarootagent_root/orarootagent_root.log"
CRS-2681: Clean of 'ora.diskmon' on 'racnode2' succeeded
CRS-2674: Start of 'ora.cssd' on 'racnode2' failed
CRS-2679: Attempting to clean 'ora.cssd' on 'racnode2'
CRS-2681: Clean of 'ora.cssd' on 'racnode2' succeeded
CRS-4000: Command Start failed, or completed with errors.
Command return code of 1 (256) from command: /u02/home/dba/oracle/product/grid11gr2/bin/crsctl start resource
ora.ctssd -init -env USR_ORA_ENV=CTSS_REBOOT=TRUE
Start of resource "ora.ctssd -init -env USR_ORA_ENV=CTSS_REBOOT=TRUE" failed
Failed to start CTSS
Failed to start Oracle Clusterware stack


Ce message se trouve aussi dans le log:
$GRID_HOME/cfgtoollogs/crsconfig/rootcrs_ucl03a.log où ucl03a est le nom de mon serveur.

Plusieurs forums et Note Metalink parlent de problème de firewall au niveau des serveurs du cluster. Mais dans mon cas, il n'y a aucun firewall.

Je me suis finalement rendu compte que c'est le NTP (Network Time Protocol) qui n'était pas configuré comme recommandé par Oracle. Le NTP permet de synchroniser le temps au niveau des serveurs du cluster.

À ce niveau, Oracle nous laisse le choix:
- Si nous ne voulons plus utiliser le NTP ou s'il n'a jamais été configuré au niveau de notre cluster, le clusterware démarrera le CTSS (Cluster Time Synchronisation Service).
- Sinon si nous utilisons le NTP et que nous voulons continuer à l'utiliser, alors nous devons apporter une légère modification.

Cette modification doit être faite par un admin unix.

Il faut ajouter les lignes suivantes au fichier de configuration du NTP:
slewalways yes
disable pll


Exemple:
#
# The local (undisciplined Solaris) clock is identified as 127.127.1.0.
#
# Some type of primary clock is important; but, it does not have
# to be the local kernel clock.
#
server «mettre ici le nom du serveur avec lequel on synchronise notre serveur local»
slewalways yes
disable pll

Redémarrer xntpd avec la commande:
/usr/sbin/svcadm restart ntp.

Note: il faut savoir que lorsque vous utilisez Sun Cluster (ce n'est pas nécessaire pour mettre en place un RAC, mais dans mon cas, il est utilisé), le fichier de configuration n'est pas «/etc/inet/ntp.conf» mais plutot «/etc/inet/ntp.conf.cluster».

Après avoir reconfiguré ou désactivé le NTP, suivre la procédure décrite dans la Note 969254.1 (permet de faire un downgrade) pour revenir à l'état avant le debut de la migration:
- Suivre la section Failure during rootupgrade.sh
- Puis Failure before rootupgrade.sh (cela devrait supprimer le répertoire 11.2 et détacher la nouvelle installation de l'inventory)

- S'assurer que votre environnement est bien fonctionnel, puis reprendre la migration depuis le début et croisez les doigts...

2 commentaires:

  1. Merci Hervé ! Ça m'a permis de débloquer ma configuration dans ma VM.

    En passant, sous Oracle Enterprise Linux, il faut procéder ainsi en tant que "root" :

    -- Arrêter ntpd
    service ntpd stop

    -- Éditer le fichier de configuration de ntpd pour y ajouter l'option "-x"

    vi /etc/sysconfig/ntp.conf

    Exemple :

    OPTIONS=”-x -u ntp:ntp -p /var/run/ntpd.pid”

    -- Démarrer ntpd
    service ntpd start

    RépondreSupprimer
  2. Merci Éric pour l'info. Je ne l'avais pas encore essayé dans une VM.

    RépondreSupprimer