Introduction
La version 7 de RedHat/CentOS a modifié le principe de démarrage des services au boot. Après le classique init system 5 en version 5, upstart en version 6, il faut maintenant utiliser systemd.
Ce billet présente la création simple d'un service systemd démarrant les bases Oracle en lisant le fichier /etc/oratab. Le script lance aussi le listener.
Script systemd
Se positionner dans le répertoire /usr/lib/systemd/system et créer un fichier nommé oracle.service avec les lignes suivantes :
[Unit] Description=oracle After=syslog.target After=network.target [Service] Type=forking Environment=ORACLE_HOME=/ora01/app/oracle/product/12.1.0.2/DB User=oracle Group=oinstall ExecStart=/ora01/app/oracle/product/12.1.0.2/DB/bin/dbstart ${ORACLE_HOME} ExecStop=/ora01/app/oracle/product/12.1.0.2/DB/bin/dbshut ${ORACLE_HOME} ReStart=yes [Install] WantedBy=multi-user.target
Ce script utilise les shell dbstart et dbshut fournis par Oracle. Il suffit d'apdater les chemins selon la plate-forme. L'activation est classique en systemd
systemctl enable oracle
Pour rappel les bases à démarrer doivent être inscrites dans le fichier /etc/oratab comme dans le modèle ci-dessous.
YODA: /ora01/app/oracle/product/12.1.0.2/DB:Y LUKE: /ora01/app/oracle/product/12.1.0.2/DB:Y ...