dimanche 28 octobre 2018

Oracle 12c: Auto Start Pluggable Database.

Après une installation de la version d'Oracle 12c (avec une base de container - CDB) et après la création d'une pluggable database (PDB), on peut s'apercevoir qu'après chaque démarrage de la BD, les Pluggable database ne sont pas ouvertes automatiquement et restent en état MOUNTED.

On va exécuter une requête SQL pour voir l'état des PDB (Pluggable Database):

select con_id,name, open_mode from v$pdbs













On voit bien que le nom de PDB (PDBORA12C) est en mode MOUNTED.

Donc, au lieu de taper chaque fois ceci: ALTER PLUGGABLE DATABASE ALL OPEN READ WRITE, la solution est simple pour permettre un OPEN automatique des pluggables databases: Passer par un trigger BD.

Voici le trigger qui v répondre à ce besoin:

CREATE or REPLACE trigger TRG_OPEN_PDB_12C
after startup
on database

BEGIN
EXECUTE IMMEDIATE 'alter pluggable database all open read write';
END TRG_OPEN_PDB_12C;

On voit bien que le trigger BD a été créé.













La raison à laquelle on fait ça, c'est pour utiliser une BD PDB dans une installation de BI Publisher 12c via RCU (création de référentiel dans BI 12C).




















Pour voir l'effet de trigger, on devrait arrêter / redémarrer la BD. Allez sous SQL PLUS et tapez les instructions suivantes:

Connectez-vous à la BD avec le compte SYS:








Arrêtez la BD: shutdown immediate;








Relancez la BD: startup;











Maintenant que la BD est redémarrée, on va retaper la commande SQL pour afficher l'état de la PDB (Pluggable database):

select con_id,name, open_mode from v$pdbs














On voit bien que le trigger BD a joué son rôle, et la PDB est Open.