Démarrage et arret automatique Oracle 11g sous Linux

Administration Oracle Ajouter un commentaire

Démarrage automatique sous linux / Unix

Oracle (et le listener s’il n’est pas protégé par un mot de passe) peuvent être démarrés automatiquement comme un service.  L’implantation des fichiers et les ‘run level’ utilisés au boot dépendent des distributions.
Voici un exemple qui fonctionne sous Ubuntu :

  1. se positionner dans le répertoire d’initialisation qui va bien, ici /etc/init.d
  2. créer un fichier  /etc/oraclectl comme suit avec les bonnes valeur de ORACLE_HOME
    et de compte propriétaire oracle

    # les 2 commentaires ‘chkconfig’ et ‘description’ suivants sont OBLIGATOIRES
    # on fournit liste_run_level priorite_start priorite_stop, ici 2,3,5 et 80 , 20
    # chkconfig: 235 80 20
    # description: ajout de service auto pour start/stop oracle#!/bin/bash
    ORACLE_OWNER=”oracle”
    ORACLE_HOME=”/oracle/db11a”
    case “$1″ in
    start)
    echo -n $”Starting Oracle DB:”
    su - $ORACLE_OWNER -c “$ORACLE_HOME/bin/dbstart $ORACLE_HOME”
    echo “OK”
    ;;
    stop)
    echo -n $”Stopping Oracle DB:”
    su - $ORACLE_OWNER -c “$ORACLE_HOME/bin/dbshut $ORACLE_HOME”
    echo “OK”
    ;;
    *)
    echo $”Usage: $0 {start|stop}”
    esac

  3. changer le groupe (dba en général) et les permissions du fichier

    $> sudo chgrp dba oraclectl
    $> sudo chmod 750 oraclectl

  4. tester le script a la main

$>  ./oraclectl  start

  1. ajouter le service oraclectl
    Le moyen le plus simple pour ce faire plutôt que de bidouiller les rc0.d , rc1.d, rc2.d …et autres liens symboliques est d’utiliser la commande chkconfig qui va bien (cf parametres mlis en commentaires en début du script précédent

$> sudo chkconfig –add oraclectl
# ou sans utiliser les commentaires du script (on precise explicitement les levels :
$> chkconfig –level 235 oraclectl on
$> #verifier :$> chkconfig -l oraclectl
oraclectl 0:off 1:off 2:on 3:on 4:off 5:on 6:off
$> # verifier si necessaire le runlevel courant
$> runlevel
N 2

Apres un reboot de la machine  le service oracle devrait démarrer automatiquement…

Faire un commentaire