DBAtlas · Veritabanı operasyon atlası

Hangi container'da olduğunu doğrula ve tüm PDB'leri root'tan sorgula (CDB_ / CONTAINERS)

OracleMultitenant

Komut

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

-- Root'tan tum container'lar:
SELECT con_id, name, open_mode FROM v$containers ORDER BY con_id;

-- CDB_ gorunumleri acik tum PDB'leri CON_ID ile birlestirir:
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;

-- CONTAINERS() ile herhangi bir tablo/view'u tum PDB'lerde sorgula:
SELECT con_id, COUNT(*) AS users
FROM   CONTAINERS(dba_users)
GROUP  BY con_id ORDER BY con_id;

Ne yapar?

Oturumun bağlı olduğu container'ı gösterir; root'tan CDB_ view'ları ve CONTAINERS() ifadesiyle tüm açık PDB'lerdeki sözlük bilgisini tek sorguda toplar.

Ne zaman kullanılır?

DDL/parametre değişikliğinden önce doğru container'da olduğundan emin olmak ve tüm PDB'ler için alan, kullanıcı, nesne envanteri çıkarmak için.

Dikkat

Salt okunurdur. Root'ta (CDB$ROOT) yanlışlıkla uygulama nesnesi veya yerel kullanıcı oluşturma; ALTER SYSTEM root'ta tüm CDB'yi etkiler. CDB_ ve CONTAINERS() yalnız açık PDB'leri döndürür; MOUNTED PDB'ler sonuçta görünmez.

DBAtlas'ta aç →

İlgili