Service oracle

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script d'init système (SysV)
Composant Oracle Database
Voir aussi Database tunning

Script d'init SysV permettant de démarrer/arrêter automatiquement les instances Oracle (via `dbstart`/`dbshut`) avec le système, sur une distribution utilisant encore `chkconfig`/`/etc/init.d`.

Principe

`dbstart` et `dbshut` (fournis dans `$ORACLE_HOME/bin`) démarrent/arrêtent toutes les instances marquées `Y` dans le fichier `/etc/oratab` (troisième champ — voir Database tunning). Le script ci-dessous les intègre comme un service système classique.

Script /etc/init.d/oracle

Adapter `ORA_OWNER` (utilisateur propriétaire de l'installation) et `ORA_HOME` (répertoire `ORACLE_HOME`) aux valeurs réelles avant utilisation :

#!/bin/sh
# chkconfig: 345 99 10
# description: Service to start and stop Oracle Database and Listener
#
# processname: oracle
# config: /etc/oratab
# pidfile: /var/run/oracle.pid

# Source function library.
. /etc/init.d/functions

RETVAL=0
ORA_OWNER="oracle"
ORA_HOME="/u01/app/oracle/product/11.2.0/dbhome_1"

prog="oracle"

start() {
echo -n $"Starting $prog: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dbora
return $RETVAL
}

stop() {
echo -n $"Stopping $prog: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -r /var/lock/subsys/dbora
return $RETVAL
}

restart() {
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac

exit $?

Activation

# cp fichier /etc/init.d/oracle
# chmod 755 /etc/init.d/oracle
# chkconfig --add oracle
# chkconfig oracle on

(Étape d'activation non détaillée dans la source d'origine, ajoutée ici pour compléter la procédure. `chkconfig` suppose une distribution SysV/RHEL-like ; sur une distribution `systemd` récente, préférer une unit `.service` dédiée plutôt que ce script — à vérifier.)

Voir aussi

  • Database tunning — fichier `oratab` et paramètres d'instance
  • Source d'inspiration : oracledistilled.com (article original probablement obsolète, non revérifié)