Installation rapide d’une base de données Oracle 12c

Oracle Database 12c

Je vous propose dans cet article une recette rapide pour installer une base de données Oracle 12c dans une machine virtuelle Linux (Oracle Linux 7) pour réaliser des tests.

La recette utilise les ingrédients suivants :

  • Une base de données Oracle 12c (12.2.1.0)
  • Une VM Linux sous Oracle Linux 7
  • Vagrant
  • VirtualBox

L’environnement créé permettra de réaliser ensuite facilement des tests nécessitant une base de données Oracle 12c.

Installation de VirtualBox

Oracle VirtualBox est disponible en téléchargement libre ici.

Il vous faudra également le pack d’extensions.

Une fois téléchargés, installez-ces 2 produits.

Installation de Vagrant

Vagrant est un projet open source qui facilite la gestion des machines virtuelles en encapsulant les logiciels de virtualisation tel que VirtualBox. La pierre angulaire du produit est le « vagrant file » qui est un document écrit en Ruby qui décrit la configuration d’une ou de plusieurs machines virtuelles. Plus besoin de manipuler manuellement la console VirtualBox pour créer, démarrer, modifier… les VMs, tout se fait à l’aide de commandes Vagrant et du Vagrant File.

Plus d’infos directement chez Vagrant.

Téléchargez et installez Vagrant sur la machine.

Téléchargement des scripts Vagrant

Oracle propose depuis quelques temps maintenant des Vagrant files pour ses produits, ce qui en simplifie grandement l’installation. C’est le cas pour notre base de données 12c.

Les Vagrant files sont disponibles sous GitHub.

Clonez ou téléchargez le repository sur votre machine.

git clone https://github.com/oracle/vagrant-boxes

Téléchargement de l’installateur Oracle Database 12c pour Linux

La page GitHub relative à l’installation de la box Vagrant Oracle DataBase 12.2.1.0 vous donnera les détails de l’installation.

Pour réaliser l’installation il faut télécharger un dernier élément, le zip d’installation de la base de données.

Téléchargez le fichier correspondant à votre système d’exploitation et copiez-le dans le répertoire OracleDatabase\12.2.0.1 du repository local des vagrant files Oracle.

Création de la VM

A ce stade, vous êtes prêt pour lancer la création de la VM. Le script Vagrant s’ocuppera de tout, depuis la création de la VM jusqu’à l’initialisation de la base de données.

Lancer un shell sur la machine.

Déplacez vous dans le répertoire où se trouve le vagrant file : <Oracle Vagrant Repo>/OracleDatabase/12.2.0.1

Lancez la commande

vagrant up

Maintenant, faut laisser mijoter tout seul, ça peut prendre un peu de temps…

Ne vous précipitez par pour fermer le shell une fois l’installation terminée, il y a des informations importantes écrites à la fin de la procédure d’installation de la base de données. En effet, la procédure génère aléatoirement un mot de passe pour les comptes SYS, SYSTEM et PDBADMIN.

Il faut évidement le noter !

    oracle-12201-vagrant: SQL>
    oracle-12201-vagrant: Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    oracle-12201-vagrant: INSTALLER: Database created
    oracle-12201-vagrant: INSTALLER: Oratab configured
    oracle-12201-vagrant: Created symlink from /etc/systemd/system/multi-user.target.wants/oracle-rdbms.service to /etc/systemd/system/oracle-rdbms.service.
    oracle-12201-vagrant: INSTALLER: Created and enabled oracle-rdbms systemd's service
    oracle-12201-vagrant: INSTALLER: setPassword.sh file setup
    oracle-12201-vagrant: INSTALLER: Running user-defined post-setup scripts
    oracle-12201-vagrant: INSTALLER: Done running user-defined post-setup scripts
    oracle-12201-vagrant: ORACLE PASSWORD FOR SYS, SYSTEM AND PDBADMIN: XXXXXXXXXXX
    oracle-12201-vagrant: INSTALLER: Installation complete, database ready to use!

Pas de panique si vous le perdez, la VM dispose d’un script pour re-générer un nouvea mot de passe :

/home/oracle/setPassword.sh <Your new password>

Vous disposez maintenant d’une VM Oracle Linux 7 qui fait tourner une base de données Oracle 12c.

Pour arrêter la VM :

vagrant halt

Pour démarrer la VM :

vagrant up

Pour détruire la VM :

vagrant destroy

Pour vous connecter en SSH sur la VM :

vagrant ssh

#changer d'utilisateur
sudo su oracle

Création d’un utilisateur

Pour le fun, je vous propose de créer un utilisateur puis de tester la connexion à la base de données.

Se connecter en SSH à la VM et passez sur l’utilisateur oracle.

vagrant ssh

sudo su oracle

Lancement de sqlplus, connexion et basculement vers la Plugable Database (PDB) pré-configurée.

[oracle@oracle-12201-vagrant admin]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Mon Nov 25 23:21:29 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> CONN system/XXXXXXXXXX
Connected.
SQL> ALTER SESSION SET CONTAINER=ORCLPDB1;

Session altered.

SQL> CREATE USER new_user identified by new_password CONTAINER=CURRENT;

User created.

SQL> GRANT CONNECT,CREATE TABLE, CREATE VIEW, CREATE TRIGGER, CREATE SEQUENCE, CREATE SESSION, UNLIMITED TABLESPACE TO vigie CONTAINER=CURRENT;

Grant succeeded.

SQL> commit;

Commit complete.

SQL>

Test de connexion à la base de données via un client JDBC

Si vous tentez une connexion JDBC avec ce nouvel utilisateur vous obtiendrez l’erreur suivante :

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

Pour corriger le problème il y a une petite modification à faire sur la configuration du listener de la base de données :

vagrant ssh


[oracle@oracle-12201-vagrant admin]$ sudo su oracle

[oracle@oracle-12201-vagrant admin]$ vi $ORACLE_HOME/network/admin/listener.ora

# Ajouter la ligne suivante dans le fichier listener.ora
USE_SID_AS_SERVICE_listener=on

# redémarrage du listener
[oracle@oracle-12201-vagrant admin]$ lsnrctl reload

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-NOV-2019 23:32:54

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
[oracle@oracle-12201-vagrant admin]$

Lancez maintenant votre client JDBC sur l’url : jdbc:oracle:thin:@localhost:1521:ORCLPDB1 et authentifiez-vous avec l’utilisateur préalablement créé.

Un grand merci à mon ami Yahya pour son aide sur le sujet.

The end.