Oracle 12c : Naviguer dans vos bases de données multitenant

Comme vous avez pu les découvrir sur notre blog, Oracle 12c a introduit une nouvelle fonctionnalité, voire même LA nouvelle fonctionnalité à savoir, la base de données multitenant.
Comme Thomas nous l’indique, cette architecture nous amène à parler d’une instance, à savoir la Container Database qui contient n Pluggable databases.
En terme d’administration, il risque d’être dur pour nous, DBA, de nous y retrouver.
L’idée est de ne se connecter qu’à notre CDB (Container Database) qui contient les metadata des PDB.
Pour se faire, il nous suffit de nous connecter comme nous l’avons toujours fait :

sqlplus / as sysdba

Attention, cette méthode n’est plus valable si vous avez activé la fonctionnalité de multithreaded model.

Une fois connecté à la CDB, nous avons donc la possibilité de requêter les vues du dictionnaire de données.

Afin de nous connecter aux différentes PDB, nous pouvons maintenant effectuer des modifications de nos sessions.
Ainsi, voici la commande à passer :

ALTER SESSION SET CONTAINER = myPDB1;

Il est tout à fait possible de changer à nouveau de PDB pour aller vers une seconde PDB ou de revenir sur la CDB grâce à la commande :

ALTER SESSION SET CONTAINER = CDB$ROOT;

Astuce :
Il est possible de modifier le prompt SQL pour vous permettre de vous y retrouver facilement.
Pour ce faire, vous pouvez modifier le fichier :

vi $ORACLE_HOME/sqlplus/admin/glogin.sql

Vous pouvez ainsi ajouter le code à lancer pour modifier votre prompt :

set verify off
set term off
col con_name new_value _container_name noprint
select sys_context('userenv', 'con_name') as con_name
from dual;
set sqlprompt "_user'@'_connect_identifier':'_container_name'> '"
set verify on
set term on

Attention, le prompt n’est pas modifié sur ALTER SESSION.
Pour ce faire, il vous faudra lancer le script :

@?/rdbms/admin/glogin.sql

Bonne utilisation !