Oracle – Service DB pour OEL, RHEL 7 – DB Service for OEL, RHEL 7


English version follows

Tout le monde ne veut pas forcément installer Oracle Grid pour diverses raisons, l’une d’elles la plus fréquente étant l’architecture lourde d’Oracle Grid lorsqu’il s’agit de ne gérer qu’une base de données qui plus est, est stockée en système de fichiers classique.

Dans ce cas, lorsque l’on installe Oracle RDBMS sur un système Linux « Oracle Enterprise Linux » ou « Red Hat Enterprise Linux » de version 7.x, il faut néanmoins pouvoir assurer les démarrages et arrêts propres de la ou des instances présentes sur le serveur.

Depuis la version 7 de ces deux distributions commerciales de Linux, les démarrages et arrêts de services se font au travers de « systemd ».

Les fichiers de service sont désormais stockés dans l’arborescence « /lib/systemd/system ». Les fichiers doivent avoir l’extension « .service »

Lors de la création d’une nouvelle base de données Oracle sur un serveur Linux, « dbca » ou les scripts générés à l’aide de « dbca » créent une entrée dans le fichier « /etc/oratab ». L’entrée est de la forme :

Dans l’exemple ci-dessus, les instances de bases de données db02 et db05 ne sont pas gérées en démarrage/arrêt au travers des scripts « dbstart » et « dbshut ». Les trois autres instances sont démarrées et arrêtées lors de l’exécution des scripts « dbstart » et « dbshut ». Ces scripts ont aussi vocation à démarrer/arrêter les listeners déclarés sur le serveur pour l’ORACLE_HOME correspondant à ces scripts.

L’idée est donc de créer un service qui assurera les démarrages et arrêts automatiques des instances de bases de données du serveur pour lesquelles les entrées sont marquées « Y » dans le fichier « /etc/oratab ».

Les scripts « dbstart » et « dbshut » souffrent d’un bug concernant les arrêts et démarrages du/des listeners. Ils doivent être agrémentés de l’ORACLE_HOME en paramètre d’exécution.

L’exemple de fichier « /lib/systemd/system/oracle.service » ci-dessous considère ORACLE_HOME défini à « /app/oracle/ora122 » :

L’activation du service « oracle.service » se fait ainsi :

Démarrage du service :

Arrêt du service :


Everybody doesn’t want absolutely to install Oracle Grid for many reasons, one of them, the most frequent is the thickness of Oracle Grid when you need just to manage one database stored on classical filesystem, no ASM.

In such a case, when we install Oracle RDBMS on an « Oracle Enterprise Linux » or « Red Hat Enterprise Linux » of version 7.x, we need to be able to safely startup/shutdown all the instances on the server.

Since the version 7 of these two Linux commercial distributions, the startup and shutdown of the services are done through « systemd ».

The service files are now stored in the « /lib/systemd/system » path. Thes files need to be named with « .service » extension.

When creating a new Oracle database on a Linux server, « dbca » or its generated scripts create entries in the « /etc/oratab » file. These entries are like that:

In this example, the database instances db02 and db05 are not managed by the startup/shutdown scripts « dbstart » and « dbshut ». The three others instances are started and stopped when « dbstart » and « dbshut » are executed. These scripts manage the startup and shutdown of the listeners defined on the server for the particular ORACLE_HOME of these scripts.

The idea is to create a service who will manage the automatic startup and shutdown of the database instances and the listeners for whom the database are marked « Y » in the « /etc/oratab » file.

The « dbstart » and « dbshut » scripts have a referenced bug concerning the startup and shutdown of the listeners. They need to have one parameter, ORACLE_HOME when executed.

The following file example « /lib/systemd/system/oracle.service » is made considering ORACLE_HOME as « /app/oracle/ora122 »:

To enable the service do this:

Service startup:

Service shutdown: