Confirmar em qual container você está e consultar todos os PDBs a partir do 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;O que faz
Mostra o container ao qual a sessão está conectada; a partir do root, as views CDB_ e a cláusula CONTAINERS() coletam informações do dicionário de todos os PDBs abertos em uma única consulta.
Quando usar
Para garantir que você está no container certo antes de uma DDL/mudança de parâmetro e para montar um inventário de espaço, usuários e objetos em todos os PDBs.
Atenção
Somente leitura. Não crie por engano objetos de aplicação ou usuários locais no root (CDB$ROOT); ALTER SYSTEM no root afeta todo o CDB. As views CDB_ e CONTAINERS() retornam apenas PDBs abertos; PDBs MOUNTED não aparecem no resultado.
Relacionados
- Criar um novo PDB a partir do PDB$SEED
- Clonar um PDB no mesmo CDB (local / hot clone)
- Clonar um PDB de outro CDB via DB link (remote clone)
- Fazer unplug de um PDB e plug em outro (ou no mesmo) CDB
- Abrir PDBs e mantê-los abertos após restarts do CDB (SAVE STATE)
- Definir limites de CPU, memória, I/O e storage por PDB