Skip to main content

Services SYSTEMD base et listener

Vérifier dans /etc/oratab que la base est listée et est à "Y" car dbstart/dbshut s'appuient dessus.

Environnement (/etc/sysconfig/env.orcl):

ORACLE_BASE=/opt/oracle/
ORACLE_HOME=/opt/oracle/product/12.2.0/db_1
ORACLE_SID=ORCL
ORACLE_USER=oracle
ORACLE_GROUP=oinstall
ORACLE_LISTENER=LSN_ORCL

Service systemd de démarrage de la base (ex : /usr/lib/systemd/system/oracleORCL.service) :

[Unit]
Description=Oracle databases service
Before=shutdown.target multi-user.target 
After=opt-oracle.mount

[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/env.orcl
User=$ORACLE_USER
Group=$ORACLE_GROUP
ExecStart=$ORACLE_HOME/bin/dbstart $ORACLE_HOME &
ExecStop=$ORACLE_HOME/bin/dbshut $ORACLE_HOME

[Install]
WantedBy=multi-user.target

Service systemd de démarrage du listener (ex : /usr/lib/systemd/system/listener.service) :

[Unit]
Description=Oracle listener 
After=network.target 

[Service]
RemainAfterExit=yes
EnvironmentFile=/etc/sysconfig/env.orcl
ExecStart=$ORACLE_HOME/bin/lsnrctl start $ORACLE_LISTENER &
ExecStop=$ORACLE_HOME/bin/lsnrctl start $ORACLE_LISTENER

[Install]
WantedBy=multi-user.target