DBAtlas · Atlas de operaciones de bases de datos

Confirmar en qué contenedor está y consultar todas las PDB desde el root (CDB_ / CONTAINERS)

OracleMultitenant

Comando

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

Qué hace

Muestra el contenedor al que está conectada la sesión; desde el root, las vistas CDB_ y la cláusula CONTAINERS() recopilan en una sola consulta la información del diccionario de todas las PDB abiertas.

Cuándo usarlo

Para asegurarse de estar en el contenedor correcto antes de un DDL/cambio de parámetro, y para elaborar un inventario de espacio, usuarios y objetos de todas las PDB.

Precaución

Solo lectura. No cree por accidente objetos de aplicación ni usuarios locales en el root (CDB$ROOT); ALTER SYSTEM en el root afecta a toda la CDB. Las vistas CDB_ y CONTAINERS() solo devuelven las PDB abiertas; las PDB en MOUNTED no aparecen en el resultado.

Abrir en DBAtlas →

Relacionado