DBAtlas · データベース運用アトラス

現在のコンテナを確認し、ルートから全PDBを照会する(CDB_ / CONTAINERS)

OracleMultitenant

コマンド

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

概要

セッションが接続しているコンテナを表示する。ルートからは、CDB_ビューとCONTAINERS()句により、オープン中の全PDBのディクショナリ情報を1つのクエリで収集する。

使用する場面

DDL/パラメータ変更前に正しいコンテナにいることの確認、全PDBにわたる領域、ユーザー、オブジェクトの棚卸しに。

注意

読み取り専用。ルート(CDB$ROOT)にアプリケーションオブジェクトやローカルユーザーを誤って作成しない。ルートでのALTER SYSTEMはCDB全体に影響する。CDB_ビューとCONTAINERS()はオープン中のPDBのみを返し、MOUNTEDのPDBは結果に表示されない。

DBAtlas で開く →

関連項目