SQL*Plusを使用してCDBおよびPDBに関する情報を表示できます。
マルチテナント・コンテナ・データベース(CDB)では、データ・ディクショナリ表およびビュー定義のメタデータがルートのみに格納されます。ただし、各プラガブル・データベース(PDB)には、そのPDBに含まれているデータベース・オブジェクトに関する、独自のデータ・ディクショナリ表とビューのセットがあります。
各PDBには異なるデータ・オブジェクトとスキーマ・オブジェクトを含めることができるため、各PDBで同じデータ・ディクショナリ・ビューを問い合せても、PDBによってデータ・ディクショナリ・ビューに異なる情報が表示される場合があります。たとえば、2つの異なるPDBでは、DBA_TABLES
ビューに表示される、表に関する情報が異なる場合があり、これは、PDBごとに異なる表が含まれていることがあるためです。PDBは、メタデータ・リンクと呼ばれる内部メカニズムを使用して、ルート内のこれらのビューのメタデータにアクセスできます。
ディクショナリ表に、各PDBではなくCDB全体に関連する情報が格納される場合は、メタデータと、データ・ディクショナリ・ビューに表示されるデータの両方がルートに格納されます。たとえば、自動ワークロード・リポジトリ(AWR)データはルートに格納され、DBA_HIST_ACTIVE_SESS_HISTORY
ビューなどの一部のデータ・ディクショナリ・ビューに表示されます。PDBは、オブジェクト・リンクと呼ばれる内部メカニズムを使用して、ルート内のこれらのタイプのビューのメタデータとデータの両方にアクセスできます。
関連項目:
コンテナ、メタデータ・リンクおよびオブジェクト・リンクでのディクショナリ・アクセスの詳細は、『Oracle Database概要』を参照してください。
現在のコンテナがPDBである場合、ユーザーは現在のPDBのデータ・ディクショナリ情報のみを表示できます。
特定のPDBに接続されているアプリケーションからは、データ・ディクショナリは非CDBであるかのように見えます。データ・ディクショナリでは、PDBに関連する情報のみを示します。また、PDBでは、対応するDBA_
ビューで表示されるデータベース・オブジェクトに関する情報がCDB_
ビューにのみ示されます。
現在のコンテナがルートである場合、共通ユーザーは、コンテナ・データ・オブジェクトを問い合せて、ルートおよびPDBのデータ・ディクショナリ情報を表示できます。
コンテナ・データ・オブジェクトは、次の内容に関連するデータを含めることができる表またはビューです。
1つ以上のコンテナ
CDB全体
1つ以上のコンテナおよびCDB全体
コンテナ・データ・オブジェクトには、V$
、GV$
、CDB_
およびいくつかの自動ワークロード・リポジトリDBA_HIST*
のビューが含まれています。共通ユーザーのCONTAINER_DATA
属性は、コンテナ・データ・オブジェクトに表示できるPDBを決定します。
CDBでは、すべてのDBA_
ビューに、対応するCDB_
ビューがあります。すべてのCDB_
ビューはコンテナ・データ・オブジェクトですが、ほとんどのDBA_
ビューはそうではありません。
各コンテナ・データ・オブジェクトには、返された各行のコンテナを識別するCON_ID
列が含まれています。表43-1では、CON_ID
列の値の意味について説明します。
表43-1 コンテナ・データ・オブジェクトのCON_ID列
CON_ID列の値 | 説明 |
---|---|
0 |
CDB全体に関連するデータ |
1 |
ルートに関連するデータ |
2 |
シードに関連するデータ |
3 - 254 |
PDBに関連するデータ 各PDBには独自のコンテナIDがあります。 |
[G]V$SYSSTAT
[G]V$SYS_TIME_MODEL
[G]V$SYSTEM_EVENT
[G]V$SYSTEM_WAIT_CLASS
ルートからの問合せにおいて、これらのビューは、返される各行のCON_ID
列に0
を含めてインスタンス全体のデータを返します。ただし、他のコンテナ・データ・オブジェクトと同じように動作する同等のビューを問い合せできます。[G]V$CON_SYSSTAT
、[G]V$CON_SYS_TIME_MODEL
、[G]V$CON_SYSTEM_EVENT
および[G]V$CON_SYSTEM_WAIT_CLASS
の各ビューは、CDB内の各コンテナに固有のデータを返すことができます。
注意:
コンテナ・データ・オブジェクトの問合せにおいて返されるデータは、PDBがオープンであるかどうか、および問合せを実行するユーザーに付与された権限によって異なります。
Oracle Real Application Clusters (Oracle RAC)環境では、コンテナ・データ・オブジェクトによって返されるデータは、セッションの接続先インスタンスによって変わる場合があります。
非CDBでは、コンテナ・データ・オブジェクト内のすべてのCON_ID
列は0 (ゼロ)です。
関連項目:
コンテナ・データ・オブジェクトの概要は、『Oracle Database概要』を参照してください。
コンテナ・データ・オブジェクトの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
CDBおよびそのPDBに関する情報をビューのセットに問い合せることができます。
表43-2は、CDBおよびそのPDBの監視に役立つデータ・ディクショナリ・ビューについて説明しています。
表43-2 CDBのビュー
ビュー | 説明 | 詳細情報 |
---|---|---|
次を含むコンテナ・データ・オブジェクト
|
コンテナ・データ・オブジェクトによって、複数のPDBに関する情報を表示できます。各コンテナ・データ・オブジェクトには、コンテナを識別するための 対応する各 |
『Oracle Databaseセキュリティ・ガイド』 |
|
各PDBのステータスなど、CDBに関連付けられたPDBに関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
CDB内の各コンテナの永続的なプロパティが表示されます。 |
『Oracle Databaseリファレンス』 |
|
各PDBの履歴が表示されます。 |
『Oracle Databaseリファレンス』 |
|
CDBに指定されているユーザー・レベルおよびオブジェクト・レベルの |
『Oracle Databaseリファレンス』 |
|
ワークロード・リポジトリのPDBおよびインスタンスが表示されます。 |
『Oracle Databaseリファレンス』 |
|
CDBの現在保存されているPDBの状態に関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
すべてのCDBリソース・プランに関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
すべてのCDBリソース・プラン・ディレクティブに関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
PDBアラートの理由の説明が示されます。 |
『Oracle Databaseリファレンス』 |
|
PDBと、それが属するCDB間の非互換性に関する情報が表示されます。このビューは、 |
『Oracle Databaseリファレンス』 |
|
データベース・オブジェクトに関する情報が表示され、 |
『Oracle Databaseリファレンス』 |
|
データベース・サービスに関する情報が表示され、 |
『Oracle Databaseリファレンス』 |
|
|
|
|
|
|
|
|
|
|
|
|
|
制御ファイルからの、データベースに関する情報が表示されます。データベースがCDBである場合は、CDB関連の情報が含まれます。 |
『Oracle Databaseリファレンス』 |
|
ルートおよびすべてのPDBを含む、現在のCDBに関連付けられているコンテナに関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
各PDBのオープン・モードなど、現在のCDBに関連付けられているPDBに関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
すべてのPDBインカネーションに関する情報が表示されます。 |
『Oracle Databaseリファレンス』 |
|
初期化パラメータに関する情報が表示され、 |
『Oracle Databaseリファレンス』 |
V$DATABASE
ビューのCDB
列を問い合せて、データベースがCDBであるか非CDBであるかを判断できます。CDB
列は、現在のデータベースがCDBの場合はYES
を返し、現在のデータベースが非CDBの場合はNO
を返します。
データベースがCDBであるかどうかを判断する手順は、次のとおりです。
SQL*Plusで、管理ユーザーとしてデータベースに接続します。
V$DATABASE
ビューを問い合せます。
例43-1 データベースがCDBであるかどうかの判断
SELECT CDB FROM V$DATABASE;
出力例:
CDB --- YES
関連項目:
『Oracle Databaseリファレンス』
V$CONTAINERS
ビューは、ルートおよびすべてのPDBを含む、CDB内のすべてのコンテナに関する情報を提供します。
この情報を表示するには、現在のコンテナがルートである共通ユーザーが問合せを実行する必要があります。現在のコンテナがPDBである場合、このビューには現在のPDBに関する情報のみが表示されます。
CDB内のコンテナに関する情報を表示する手順は、次のとおりです。
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
V$CONTAINERS
ビューを問い合せます。
例43-2 CDB内の各コンテナに関する識別情報の表示
COLUMN NAME FORMAT A8 SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS ORDER BY CON_ID;
出力例:
NAME CON_ID DBID CON_UID GUID -------- ---------- ---------- ---------- -------------------------------- CDB$ROOT 1 659189539 1 C091A6F89C7572A1E0436797E40AC78D PDB$SEED 2 4026479912 4026479912 C091AE9C00377591E0436797E40AC138 HRPDB 3 3718888687 3718888687 C091B6B3B53E7834E0436797E40A9040 SALESPDB 4 2228741407 2228741407 C091FA64EF8F0577E0436797E40ABE9F
関連項目:
『Oracle Databaseリファレンス』
CDB_PDBS
ビューおよびDBA_PDBS
ビューは、各PDBのステータスなど、CDBに関連付けられたPDBに関する情報を提供します。
この情報を表示するには、現在のコンテナがルートである共通ユーザーが問合せを実行する必要があります。現在のコンテナがPDBである場合は、これらのビューに対するすべての問合せで結果が返されません。
PDBに関する情報を表示する手順は、次のとおりです。
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
CDB_PDBS
またはDBA_PDBS
ビューを問い合せます。
例43-3 各PDBのコンテナID、名前およびステータスの表示
COLUMN PDB_NAME FORMAT A15 SELECT PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;
出力例:
PDB_ID PDB_NAME STATUS ---------- --------------- ------------- 2 PDB$SEED NORMAL 3 HRPDB NORMAL 4 SALESPDB NORMAL
関連項目:
V$PDBS
ビューは、現在のデータベース・インスタンスに関連付けられたPDBに関する情報を提供します。
このビューを問い合せて、各PDBのオープン・モードを判断します。オープンしている各PDBについて、このビューでは、PDBが最後にオープンされたかのがいつであるかを表示することもできます。共通ユーザーは、現在のコンテナがルートまたはPDBである場合にこのビューを問い合せることができます。現在のコンテナがPDBである場合、このビューには現在のPDBに関する情報のみが表示されます。
各PDBのオープン・ステータスを表示する手順は、次のとおりです。
SQL*Plusでコンテナにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
V$PDBS
ビューを問い合せます。
例43-4 各PDBの名前およびオープン・モードの表示
COLUMN NAME FORMAT A15 COLUMN RESTRICTED FORMAT A10 COLUMN OPEN_TIME FORMAT A30 SELECT NAME, OPEN_MODE, RESTRICTED, OPEN_TIME FROM V$PDBS;
出力例:
NAME OPEN_MODE RESTRICTED OPEN_TIME --------------- ---------- ---------- ------------------------------ PDB$SEED READ ONLY NO 21-MAY-12 12.19.54.465 PM HRPDB READ WRITE NO 21-MAY-12 12.34.05.078 PM SALESPDB MOUNTED NO 22-MAY-12 10.37.20.534 AM
ルートでは、コンテナ・データ・オブジェクトは、ルートおよびそのPDBに含まれるデータベース・オブジェクト(表やユーザーなど)に関する情報を表示できます。PDB情報へのアクセスは、共通ユーザーのCONTAINER_DATA
属性によって制御されます。
たとえば、CDB_
ビューはコンテナ・データ・オブジェクトです。コンテナ・データ・オブジェクトの詳細は、「現在のコンテナがルートである場合の情報の表示について」および『Oracle Databaseセキュリティ・ガイド』を参照してください。
各コンテナ・データ・オブジェクトには、問合せ結果内の各PDBのコンテナIDが表示されたCON_ID
列が含まれています。DBA_PDBS
ビューを問い合せて、コンテナIDのPDB名を表示できます。
コンテナ・データ・オブジェクトを使用して複数のPDBに関する情報を表示する手順は、次のとおりです。
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
コンテナ・データ・オブジェクトを問い合せて、目的の情報を表示します。
注意:
問合せにコンテナ・データ・オブジェクトおよび非コンテナ・データ・オブジェクトの結合が含まれ、現在のコンテナがルートである場合、問合せはCDB全体のデータのみを返します(CON_ID
= 0
)。
関連項目:
コンテナ・データ・オブジェクトの概要は、『Oracle Database概要』を参照してください。
コンテナ・データ・オブジェクトの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
例43-5 複数のPDBの特定のスキーマが所有する表の表示
この例では、ルートからDBA_PDBS
ビューおよびCDB_TABLES
ビューを問い合せて、CDBに関連付けられているPDBのhr
ユーザーおよびoe
ユーザーが所有する表を表示します。この問合せは、PDBのIDが2より大きい(p.PDB_ID > 2
)行のみを返すことで、ルートおよびシードのユーザーを表示しないようにしています。
COLUMN PDB_NAME FORMAT A15 COLUMN OWNER FORMAT A15 COLUMN TABLE_NAME FORMAT A30 SELECT p.PDB_ID, p.PDB_NAME, t.OWNER, t.TABLE_NAME FROM DBA_PDBS p, CDB_TABLES t WHERE p.PDB_ID > 2 AND t.OWNER IN('HR','OE') AND p.PDB_ID = t.CON_ID ORDER BY p.PDB_ID;
出力例:
PDB_ID PDB_NAME OWNER TABLE_NAME ---------- --------------- --------------- ------------------------------ 3 HRPDB HR COUNTRIES 3 HRPDB HR JOB_HISTORY 3 HRPDB HR EMPLOYEES 3 HRPDB HR JOBS 3 HRPDB HR DEPARTMENTS 3 HRPDB HR LOCATIONS 3 HRPDB HR REGIONS 4 SALESPDB OE PRODUCT_INFORMATION 4 SALESPDB OE INVENTORIES 4 SALESPDB OE ORDERS 4 SALESPDB OE ORDER_ITEMS 4 SALESPDB OE WAREHOUSES 4 SALESPDB OE CUSTOMERS 4 SALESPDB OE SUBCATEGORY_REF_LIST_NESTEDTAB 4 SALESPDB OE PRODUCT_REF_LIST_NESTEDTAB 4 SALESPDB OE PROMOTIONS 4 SALESPDB OE PRODUCT_DESCRIPTIONS
この出力例では、PDB hrpdb
にhr
スキーマの表があり、PDB salespdb
にoe
スキーマの表があることを示しています。
例43-6 複数のPDBのユーザーの表示
この例では、ルートからDBA_PDBS
ビューおよびCDB_USERS
ビューを問い合せて、各PDBのユーザーを表示します。この問合せでは、p.PDB_ID > 2
を使用して、ルートおよびシードのユーザーを表示しないようにしています。
COLUMN PDB_NAME FORMAT A15 COLUMN USERNAME FORMAT A30 SELECT p.PDB_ID, p.PDB_NAME, u.USERNAME FROM DBA_PDBS p, CDB_USERS u WHERE p.PDB_ID > 2 AND p.PDB_ID = u.CON_ID ORDER BY p.PDB_ID;
出力例:
PDB_ID PDB_NAME USERNAME ---------- --------------- ------------------------------ . . . 3 HRPDB HR 3 HRPDB OLAPSYS 3 HRPDB MDSYS 3 HRPDB ORDSYS . . . 4 SALESPDB OE 4 SALESPDB CTXSYS 4 SALESPDB MDSYS 4 SALESPDB EXFSYS 4 SALESPDB OLAPSYS . . .
例43-7 CDB内の各PDBのデータファイルの表示
この例では、DBA_PDBS
およびCDB_DATA_FILES
ビューを問い合せて、シードなど、CDB内のすべてのPDBの各データファイルの名前と場所を表示します。
COLUMN PDB_ID FORMAT 999 COLUMN PDB_NAME FORMAT A8 COLUMN FILE_ID FORMAT 9999 COLUMN TABLESPACE_NAME FORMAT A10 COLUMN FILE_NAME FORMAT A45 SELECT p.PDB_ID, p.PDB_NAME, d.FILE_ID, d.TABLESPACE_NAME, d.FILE_NAME FROM DBA_PDBS p, CDB_DATA_FILES d WHERE p.PDB_ID = d.CON_ID ORDER BY p.PDB_ID;
出力例:
PDB_ID PDB_NAME FILE_ID TABLESPACE FILE_NAME ------ -------- ------- ---------- --------------------------------------------- 2 PDB$SEED 6 SYSAUX /disk1/oracle/dbs/pdbseed/cdb1_ax.f 2 PDB$SEED 5 SYSTEM /disk1/oracle/dbs/pdbseed/cdb1_db.f 3 HRPDB 9 SYSAUX /disk1/oracle/dbs/hrpdb/hrpdb_ax.f 3 HRPDB 8 SYSTEM /disk1/oracle/dbs/hrpdb/hrpdb_db.f 3 HRPDB 13 USER /disk1/oracle/dbs/hrpdb/hrpdb_usr.dbf 4 SALESPDB 15 SYSTEM /disk1/oracle/dbs/salespdb/salespdb_db.f 4 SALESPDB 16 SYSAUX /disk1/oracle/dbs/salespdb/salespdb_ax.f 4 SALESPDB 18 USER /disk1/oracle/dbs/salespdb/salespdb_usr.dbf
例43-8 CDB内の一時ファイルの表示
この例では、CDB_TEMP_FILES
ビューを問い合せて、CDB内の各一時ファイルの名前と場所、および一時ファイルを使用する表領域を表示します。
COLUMN CON_ID FORMAT 999 COLUMN FILE_ID FORMAT 9999 COLUMN TABLESPACE_NAME FORMAT A15 COLUMN FILE_NAME FORMAT A45 SELECT CON_ID, FILE_ID, TABLESPACE_NAME, FILE_NAME FROM CDB_TEMP_FILES ORDER BY CON_ID;
出力例:
CON_ID FILE_ID TABLESPACE_NAME FILE_NAME ------ ------- --------------- --------------------------------------------- 1 1 TEMP /disk1/oracle/dbs/t_tmp1.f 2 2 TEMP /disk1/oracle/dbs/pdbseed/t_tmp1.f 3 3 TEMP /disk1/oracle/dbs/hrpdb/t_hrpdb_tmp1.f 4 4 TEMP /disk1/oracle/dbs/salespdb/t_salespdb_tmp1.f
例43-9 PDBに関連付けられているサービスの表示
この例では、CDB_SERVICES
ビューを問い合せて、PDB名、ネットワーク名、およびPDBに関連付けられている各サービスのコンテナIDを表示します。
COLUMN NETWORK_NAME FORMAT A30 COLUMN PDB FORMAT A15 COLUMN CON_ID FORMAT 999 SELECT PDB, NETWORK_NAME, CON_ID FROM CDB_SERVICES WHERE PDB IS NOT NULL AND CON_ID > 2 ORDER BY PDB;
出力例:
PDB NETWORK_NAME CON_ID --------------- ------------------------------ ------ HRPDB hrpdb.example.com 3 SALESPDB salespdb.example.com 4
関連項目:
『Oracle Databaseリファレンス』
CONTAINERS
句を使用すると、CDB内のすべてのPDB間でユーザーが作成した表およびビューを問い合せることができます。この句により、CDB内のすべてのオープンPDBに存在する表またはビューのデータを表示するために、ルートからの問合せが可能になります。
注意:
この機能は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。
次の前提条件を満たしている必要があります。
CONTAINERS
句に指定した表およびビュー、またはそのシノニムは、ルートおよびすべてのPDBに存在する必要があります。
CONTAINERS
句に指定した各表およびビューは、文を発行する共通ユーザーが所有している必要があります。CONTAINERS
句にシノニムを指定した場合、そのシノニムは文を発行する共通ユーザーが所有している表またはビューに解決される必要があります。
次の型の列は、CONTAINERS
句で指定された表内に存在する場合は削除されます。
ユーザー定義型: オブジェクト型、VARRAY、REFおよびネストした表
Oracle提供型: ANYTYPE
、ANYDATASET
、URI型、SDO_TOPO_GEOMETRY
、SDO_GEORASTER
およびExpression
CONTAINERS
句を使用してすべてのPDB間で表およびビューを問い合せるには、次の手順を実行します。
SQL*Plusでコンテナにアクセスします。
複数のPDBのデータを表示する場合は、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
CONTAINERS
句を含む問合せを実行します。
例43-10 すべてのPDB間での共通ユーザーが所有する表の問合せ
この例では、次のことを想定しています。
組織に複数のPDBがあり、各PDBは組織内のそれぞれ異なる部門のものです。
各PDBには、部門の従業員を追跡管理するemployees
表がありますが、各PDBの表には別個の従業員が含まれます。
また、ルートには空のemployees
表があります。
各コンテナのemployees表は、同じ共通ユーザーが所有します。
ルートを現在のコンテナとし、表を所有する共通ユーザーを現行ユーザーとして、CONTAINERS
句を指定した次の問合せを実行し、すべてのPDBのemployees
表の全従業員を返します。
SELECT * FROM CONTAINERS(employees);
例43-11 すべてのPDB間でのローカル・ユーザーが所有する表の問合せ
この例では、次のことを想定しています。
組織に複数のPDBがあり、各PDBは組織内のそれぞれ異なる部門のものです。
各PDBには、部門の従業員を追跡管理するhr.employees
表がありますが、各PDBの表には別個の従業員が含まれます。
また、ルートには、共通ユーザーが所有する空のemployees
表があります。
すべてのPDBの全従業員を返す問合せを実行するには、まず共通ユーザーとして各PDBに接続し、次の文を使用してビューを作成します。
CREATE OR REPLACE VIEW employees AS SELECT * FROM hr.employees;
ビューを所有する共通ユーザーは、ルートのemployees
表を所有する共通ユーザーと同じである必要があります。各PDBでこの文を実行すると、共通ユーザーは各PDBにemployees
という名前のビューを保持します。
ルートを現在のコンテナとし、共通ユーザーを現行ユーザーとして、CONTAINERS
句を指定した次の問合せを実行し、すべてのPDBのhr.employees
表の全従業員を返します。
SELECT * FROM CONTAINERS(employees);
特定のコンテナのビューを問い合せることもできます。たとえば、次のSQL文では、CON_ID
が3
および4
のコンテナのビューを問い合せます。
SELECT * FROM CONTAINERS(employees) WHERE CON_ID IN(3,4);
注意:
CONTAINERS
句を使用してオラクル社提供の表およびビューを問い合せることもできます。この問合せを実行する際、現行ユーザーが表またはビューの所有者であることを確認するか、CONTAINERS
句を使用してビューを作成し、そのビューに対するSELECT
権限を適切なユーザーに付与します。
関連項目:
CONTAINERS
句の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
コンテナ・データ・オブジェクトの概要は、『Oracle Database概要』を参照してください。
コンテナ・データ・オブジェクトの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
CDB内の現在のコンテナIDまたはコンテナ名を判別できます。
現在のコンテナIDを判別する手順は、次のとおりです。
次のSQL*Plusコマンドを実行します。
SHOW CON_ID
現在のコンテナ名を判別する手順は、次のとおりです。
次のSQL*Plusコマンドを実行します。
SHOW CON_NAME
また、表43-3にリストされたファンクションを使用して、コンテナのコンテナIDを判別することもできます。
表43-3 コンテナのコンテナIDを返すファンクション
ファンクション | 説明 |
---|---|
|
コンテナの名前に基づいてコンテナIDを返します。 |
|
コンテナのDBIDに基づいてコンテナIDを返します。 |
|
コンテナの一意識別子(UID)に基づいてコンテナIDを返します。 |
|
コンテナのグローバル一意識別子(GUID)に基づいてコンテナIDを返します。 |
V$CONTAINERS
ビューには、CDB内の各コンテナの名前、DBID、UIDおよびGUIDが表示されます。
例43-12 コンテナの名前に基づいたコンテナIDの戻し
SELECT CON_NAME_TO_ID('HRPDB') FROM DUAL;
例43-13 コンテナDBIDに基づいたコンテナIDの戻し
SELECT CON_DBID_TO_ID(2226957846) FROM DUAL;
関連項目:
V$CONTAINERS
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
CDBでは、一部の初期化パラメータがルートおよびすべてのPDBに適用されます。このような初期化パラメータが変更されると、CDB全体に影響を与えます。他の初期化パラメータは、各コンテナで異なる値に設定できます。
たとえば、1つのパラメータについて、ルートで1つの値を設定し、あるPDBで別の値を設定し、2番目のPDBではさらに別の値を設定できます。
この項で示す問合せによって、各PDBで個別に設定できる初期化パラメータがリストされます。
各コンテナで変更可能な初期化パラメータをリストする手順は、次のとおりです。
SQL*Plusでコンテナにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
次の問合せを実行します。
SELECT NAME FROM V$SYSTEM_PARAMETER WHERE ISPDB_MODIFIABLE = 'TRUE' ORDER BY NAME;
この問合せでリストされた初期化パラメータがPDBに個別に設定されていない場合、PDBではルートのパラメータ値が継承されます。
CDB_PDB_HISTORY
ビューには、CDB内のPDBの履歴が表示されます。各PDBがいつどのように作成されたかに関する情報、および各PDBの履歴に関するその他の情報を提供します。
各PDBの履歴を表示する手順は、次のとおりです。
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
CDB_PDB_HISTORY
ビューを問い合せます。
例43-14 PDBの履歴の表示
この例では、各PDBの履歴に関する次の情報を表示します。
DB_NAME
フィールドには、PDBが含まれているCDBが表示されます。
CON_ID
フィールドには、PDBのコンテナIDが表示されます。
PDB_NAME
フィールドには、PDBのいずれかのインカネーションでのPDBの名前が表示されます。
OPERATION
フィールドには、PDBの履歴で実行された操作が表示されます。
OP_TIMESTAMP
フィールドには、操作が実行された日付が表示されます。
PDBが操作でクローニングされた場合、CLONED_FROM_PDB
フィールドにはPDBのクローニング元となるPDBが表示されます。
COLUMN DB_NAME FORMAT A10 COLUMN CON_ID FORMAT 999 COLUMN PDB_NAME FORMAT A15 COLUMN OPERATION FORMAT A16 COLUMN OP_TIMESTAMP FORMAT A10 COLUMN CLONED_FROM_PDB_NAME FORMAT A15 SELECT DB_NAME, CON_ID, PDB_NAME, OPERATION, OP_TIMESTAMP, CLONED_FROM_PDB_NAME FROM CDB_PDB_HISTORY WHERE CON_ID > 2 ORDER BY CON_ID;
出力例:
DB_NAME CON_ID PDB_NAME OPERATION OP_TIMESTA CLONED_FROM_PDB ---------- ------ --------------- ---------------- ---------- --------------- NEWCDB 3 HRPDB CREATE 10-APR-12 PDB$SEED NEWCDB 4 SALESPDB CREATE 17-APR-12 PDB$SEED NEWCDB 5 TESTPDB CLONE 30-APR-12 SALESPDB
注意:
現在のコンテナがPDBである場合、CDB_PDB_HISTORY
ビューには、現在のPDBの履歴のみが表示されます。現在のコンテナがPDBであるローカル・ユーザーは、DBA_PDB_HISTORY
ビューを問い合せ、問合せからCON_ID
列を除外して、現在のPDBの履歴を表示できます。
関連項目: