DBAtlas · Atlas für Datenbankbetrieb

Aktuellen Container bestätigen und alle PDBs vom Root aus abfragen (CDB_ / CONTAINERS)

OracleMultitenant

Befehl

-- 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;

Was es tut

Zeigt den Container, mit dem die Session verbunden ist; vom Root aus sammeln CDB_-Views und die CONTAINERS()-Klausel Dictionary-Informationen aller geöffneten PDBs in einer einzigen Abfrage.

Wann einsetzen

Um vor einer DDL-/Parameteränderung sicherzugehen, dass du im richtigen Container bist, und um ein Platz-, Benutzer- und Objektinventar über alle PDBs zu erstellen.

Vorsicht

Nur lesend. Lege nicht versehentlich Anwendungsobjekte oder lokale Benutzer im Root (CDB$ROOT) an; ALTER SYSTEM im Root wirkt auf die gesamte CDB. CDB_-Views und CONTAINERS() liefern nur geöffnete PDBs; PDBs im Zustand MOUNTED erscheinen nicht im Ergebnis.

In DBAtlas öffnen →

Verwandte Einträge