Page suivante Page précédente Table des matières
6. Lancement et Arrêt Automatique
6.1
dbstartetdbstopLe démarrage et l'arrêt automatique de la base de données Oracle peuvent être effectués (avec la version 7.3.3.0.0) avec les fichiers
dbstartetdbshut, tous deux fournis par Oracle. Ces fichiers dépendent sur l'existence du fichier/etc/oratabpour fonctionner (bien qu'en modifiant les fichiersdbshutetdbstartil puissent être déplacés).Le format du fichier
/etc/oratabest le suivant:
SID:ORACLE_HOME:AUTO
Un exemple:
orcl:/home/oracle/7.3.3.0.0:Y leaveup:/home/oracle/7.3.2.1.0:N
6.2
init.detrc.dPour démarrer et arrêter la base de données quand la machine se lance ou s'éteint, il faut modifier les routines de démarrage pour la machine Linux. Ceci est très facile, bien que je devrais souligner que cela peut changer suivant la distribution Linux (Slackware, Debian, RedHat, etc). Je vais montrer quelques exemples qui marchent avec RedHat Linux 5.0. Pour modifier ceux-ci pour votre propre distribution Linux, veuillez voir votre documentation Linux. (bien que ceci doit être valable pour n'importe quel UNIX de type Sys V)
Premièrement, nous devons créer le script qui exécutera
dbshutetdbstartdans le répertoire/etc/rc.d/init.d. Créez le fichier suivant comme/etc/rc.d/init.d/oracle:
#!/bin/sh # # /etc/rc.d/init.d/oracle # Description: Starts and stops the Oracle database and listeners # See how we were called. case "$1" in start) echo -n "Starting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstart >> /var/log/oracle echo "Done." echo -n "Starting Oracle Listeners: " su - oracle -c "lsnrctl start" >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; stop) echo -n "Shutting Down Oracle Listeners: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c "lsnrctl stop" >> /var/log/oracle echo "Done." rm -f /var/lock/subsys/oracle echo -n "Shutting Down Oracle Databases: " su - oracle -c dbshut >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle ;; restart) echo -n "Restarting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstop >> /var/log/oracle su - oracle -c dbstart >> /var/log/oracle echo "Done." echo -n "Restarting Oracle Listeners: " su - oracle -c "lsnrctl stop" >> /var/log/oracle su - oracle -c "lsnrctl start" >> /var/log/oracle echo "Done." echo "" echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Finished." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle touch /var/lock/subsys/oracle ;; *) echo "Usage: oracle {start|stop|restart}" exit 1 esac
Il vaut la peine de vérifier si le fichier arrête et démarre vraiment correctement les bases de données pour le système. Vérifiez le fichier de log,
/var/log/oracle, pour les messages d'erreur.Une fois que le script marche, nous devons créer les liens symboliques de
startetkilldans les répertoires appropriés de niveau d'exécution (runlevel)/etc/rc.d/rcX.d.Les commandes suivantes assureront que les bases de données vont démarrer dans les niveaux d'exécution 2,3 et 4:
$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle $ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle $ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
Pour arrêter les bases de données avant un réamorçage ou arrêt, nous avons besoin des liens suivants:
$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle # Halting $ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle # Rebooting
Page suivante Page précédente Table des matières