Confirmar en qué contenedor está y consultar todas las PDB desde el root (CDB_ / CONTAINERS)
OracleMultitenantComando
-- 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.
Relacionado
- Crear una PDB nueva desde PDB$SEED
- Clonar una PDB dentro de la misma CDB (clon local / hot clone)
- Clonar una PDB desde otra CDB por un DB link (clon remoto)
- Desconectar (unplug) una PDB y conectarla (plug) en otra CDB (o en la misma)
- Abrir PDB y mantenerlas abiertas tras reinicios de la CDB (SAVE STATE)
- Definir límites de CPU, memoria, I/O y almacenamiento por PDB