DBAtlas · Atlas d'exploitation des bases de données

Vérifier dans quel conteneur vous êtes et interroger toutes les PDB depuis la racine (CDB_ / CONTAINERS)

OracleMultitenant

Commande

-- Current container:
SHOW CON_NAME
SHOW CON_ID
SHOW PDBS
SELECT SYS_CONTEXT('USERENV','CON_NAME') AS con_name,
       SYS_CONTEXT('USERENV','CON_ID')   AS con_id
FROM   dual;

-- All containers, from the root:
SELECT con_id, name, open_mode FROM v$containers ORDER BY con_id;

-- CDB_ views combine all open PDBs with CON_ID:
SELECT c.name AS container, t.tablespace_name, t.status
FROM   cdb_tablespaces t JOIN v$containers c ON c.con_id = t.con_id
ORDER  BY c.name, t.tablespace_name;

-- Query any table/view across all PDBs with CONTAINERS():
SELECT con_id, COUNT(*) AS users
FROM   CONTAINERS(dba_users)
GROUP  BY con_id ORDER BY con_id;

Ce que fait la commande

Affiche le conteneur auquel la session est connectée ; depuis la racine, les vues CDB_ et la clause CONTAINERS() collectent en une seule requête les informations du dictionnaire de toutes les PDB ouvertes.

Quand l'utiliser

Pour vous assurer d'être dans le bon conteneur avant un DDL/changement de paramètre, et pour établir un inventaire de l'espace, des utilisateurs et des objets sur toutes les PDB.

Attention

Lecture seule. Ne créez pas par erreur d'objets applicatifs ou d'utilisateurs locaux dans la racine (CDB$ROOT) ; ALTER SYSTEM dans la racine affecte toute la CDB. Les vues CDB_ et CONTAINERS() ne renvoient que les PDB ouvertes ; les PDB MOUNTED n'apparaissent pas dans le résultat.

Ouvrir dans DBAtlas →

Voir aussi