45 SQL*Plusを使用したCDBおよびPDBに関する情報の表示
SQL*Plusを使用してCDBおよびPDBに関する情報を表示できます。
注意:
この章のタスクは、SQL*PlusまたはOracle SQL Developerを使用して実行できます。- ビュー内のCDBおよびコンテナの情報について
マルチテナント・コンテナ・データベース(CDB)では、データ・ディクショナリ表およびビュー定義のメタデータがルートのみに格納されます。ただし、各コンテナ(各プラガブル・データベース(PDB)、アプリケーション・ルート、アプリケーションPDBを含む)には、そのコンテナに含まれているデータベース・オブジェクトに関する、独自のデータ・ディクショナリ表とビューのセットがあります。 - 現在のコンテナがCDBルートではない場合の情報の表示について
現在のコンテナがPDB、アプリケーション・ルートまたはアプリケーションPDBである場合、ユーザーは現在のコンテナのみのデータ・ディクショナリ情報を表示できます。 - 現在のコンテナがCDBルートである場合の情報の表示について
現在のコンテナがCDBルートである場合、共通ユーザーは、コンテナ・データ・オブジェクトを問い合せて、CDBルート、PDB、アプリケーション・ルートおよびアプリケーションPDBのデータ・ディクショナリ情報を表示できます。 - CDBのビュー
CDBおよびそのPDBに関する情報をビューのセットに問い合せることができます。 - データベースがCDBであるかどうかの判断
V$DATABASEビューのCDB列を問い合せて、データベースがCDBであるか非CDBであるかを判断できます。CDB列は、現在のデータベースがCDBの場合はYESを返し、現在のデータベースが非CDBの場合はNOを返します。 - CDB内のコンテナに関する情報の表示
V$CONTAINERSビューは、ルートおよびすべてのPDBを含む、CDB内のすべてのコンテナに関する情報を提供します。 - PDBに関する情報の表示
CDB_PDBSビューおよびDBA_PDBSビューは、各PDBのステータスなど、CDBに関連付けられたPDBに関する情報を提供します。 - 各PDBのオープン・モードの表示
V$PDBSビューは、現在のデータベース・インスタンスに関連付けられたPDBに関する情報を提供します。 - コンテナ・データ・オブジェクトの問合せ
ルートでは、コンテナ・データ・オブジェクトは、ルートおよびPDBに含まれるデータベース・オブジェクト(表やユーザーなど)に関する情報を表示できます。PDB情報へのアクセスは、共通ユーザーのCONTAINER_DATA属性によって制御されます。 - CONTAINERS句を使用したコンテナ間の問合せ
CONTAINERS句を使用すると、CDB内のすべてのコンテナ間で表およびビューを問い合せることができます。アプリケーション・コンテナ内のすべてのコンテナでアプリケーション共通オブジェクトを問い合せることもできます。 - 現在のコンテナのIDまたは名前の判別
CDB内の現在のコンテナIDまたはコンテナ名を判別できます。 - PDBで変更可能な初期化パラメータをリスト
CDBでは、一部の初期化パラメータがルートおよびすべてのPDBに適用されます。このような初期化パラメータが変更されると、CDB全体に影響を与えます。他の初期化パラメータは、各コンテナで異なる値に設定できます。 - PDBの履歴の表示
CDB_PDB_HISTORYビューには、CDB内のPDBの履歴が表示されます。各PDBがいつどのように作成されたかに関する情報、および各PDBの履歴に関するその他の情報を提供します。 - アプリケーション・コンテナ内のアプリケーションに関する情報の表示
複数のビューが、CDB内のアプリケーション・コンテナ内のアプリケーションに関する情報を提供します。
関連トピック
親トピック: マルチテナント環境の管理
45.1 ビュー内のCDBおよびコンテナの情報について
マルチテナント・コンテナ・データベース(CDB)では、データ・ディクショナリ表およびビュー定義のメタデータがルートのみに格納されます。ただし、各コンテナ(各プラガブル・データベース(PDB)、アプリケーション・ルート、アプリケーションPDBを含む)には、そのコンテナに含まれているデータベース・オブジェクトに関する、独自のデータ・ディクショナリ表とビューのセットがあります。
各コンテナには異なるデータ・オブジェクトとスキーマ・オブジェクトを含めることができるため、各コンテナで同じデータ・ディクショナリ・ビューを問い合せても、コンテナによってデータ・ディクショナリ・ビューに異なる情報が表示される場合があります。たとえば、2つの異なるコンテナでは、DBA_TABLESビューに表示される、表に関する情報が異なる場合があり、これは、コンテナごとに異なる表が含まれていることがあるためです。コンテナは、メタデータ・リンクと呼ばれる内部メカニズムを使用して、ルート内のこれらのビューのメタデータにアクセスできます。
ディクショナリ表に、各コンテナではなくCDB全体に関連する情報が格納される場合は、メタデータと、データ・ディクショナリ・ビューに表示されるデータの両方がルートに格納されます。たとえば、自動ワークロード・リポジトリ(AWR)データはルートに格納でき、DBA_HIST_ACTIVE_SESS_HISTORYビューなどの一部のデータ・ディクショナリ・ビューに表示されます。コンテナは、データ・リンクと呼ばれる内部メカニズムを使用して、ルート内のこれらのタイプのビューのメタデータとデータの両方にアクセスできます。
関連項目:
コンテナ、メタデータ・リンクおよびデータ・リンクでのディクショナリ・アクセスの詳細は、『Oracle Database概要』を参照してください
45.2 現在のコンテナがCDBルートではない場合の情報の表示について
現在のコンテナがPDB、アプリケーション・ルートまたはアプリケーションPDBの場合、ユーザーは現在のコンテナのみのデータ・ディクショナリ情報を表示できます。
特定のPDB、アプリケーション・ルートまたはアプリケーションPDBに接続されているアプリケーションからは、データ・ディクショナリは非CDB用であるかのように見えます。データ・ディクショナリは、現在のコンテナに関連する情報のみを表示します。また、CDBルートではないコンテナでは、CDB_ビューには、対応するDBA_ビューで表示されるデータベース・オブジェクトに関する情報のみが示されます。
45.3 現在のコンテナがCDBルートである場合の情報の表示について
現在のコンテナがCDBルートである場合、共通ユーザーは、コンテナ・データ・オブジェクトを問い合せて、CDBルート、PDB、アプリケーション・ルートおよびアプリケーションPDBのデータ・ディクショナリ情報を表示できます。
コンテナ・データ・オブジェクトは、次の内容に関連するデータを含めることができる表またはビューです。
-
1つ以上のコンテナ
-
CDB全体
-
1つ以上のコンテナおよびCDB全体
コンテナ・データ・オブジェクトには、V$、GV$、CDB_およびいくつかの自動ワークロード・リポジトリDBA_HIST*のビューが含まれています。共通ユーザーのCONTAINER_DATA属性は、コンテナ・データ・オブジェクトに表示できるコンテナを決定します。
CDBでは、すべてのDBA_ビューに、対応するCDB_ビューがあります。すべてのCDB_ビューはコンテナ・データ・オブジェクトですが、ほとんどのDBA_ビューはそうではありません。
各コンテナ・データ・オブジェクトには、返された各行のコンテナを識別するCON_ID列が含まれています。表45-1では、CON_ID列の値の意味について説明します。
表45-1 コンテナ・データ・オブジェクトのCON_ID列
| CON_ID列の値 | 説明 |
|---|---|
|
0 |
CDB全体に関連するデータ |
|
1 |
CDBルートに関連するデータ |
|
2 |
CDBシードに関連するデータ |
|
3 - 4,098 |
PDB、アプリケーション・ルートまたはアプリケーションPDBに関連するデータ 各コンテナには独自のコンテナIDがあります。 |
次のビューは、他の[G]V$ビューとは動作が異なります。
-
[G]V$SYSSTAT -
[G]V$SYS_TIME_MODEL -
[G]V$SYSTEM_EVENT -
[G]V$SYSTEM_WAIT_CLASS
CDBルートからの問合せにおいて、これらのビューは、返される各行の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内の各コンテナに固有のデータを返すことができます。
注意:
-
コンテナ・データ・オブジェクトの問合せにおいて返されるデータは、コンテナがオープンであるかどうか、および問合せを実行するユーザーに付与された権限によって異なります。
-
Oracle Real Application Clusters (Oracle RAC)環境では、コンテナ・データ・オブジェクトによって返されるデータは、セッションの接続先インスタンスによって変わる場合があります。
-
非CDBでは、コンテナ・データ・オブジェクト内のすべての
CON_ID列は0 (ゼロ)です。 -
コンテナが制限モードでオープンされている場合は、
CDB_ビューに対する問合せで無視されます。
関連項目:
-
コンテナ・データ・オブジェクトの概要は、『Oracle Database概要』を参照してください。
-
コンテナ・データ・オブジェクトの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
45.4 CDBのビュー
CDBおよびそのPDBに関する情報をビューのセットに問い合せることができます。
表45-2は、CDBおよびそのPDBの監視に役立つデータ・ディクショナリ・ビューについて説明しています。
表45-2 CDBのビュー
| ビュー | 説明 | 詳細情報 |
|---|---|---|
|
次を含むコンテナ・データ・オブジェクト
|
コンテナ・データ・オブジェクトによって、複数のPDBに関する情報を表示できます。各コンテナ・データ・オブジェクトには、コンテナを識別するための 対応する各 |
|
|
|
各PDBのステータスなど、CDBに関連付けられたPDBに関する情報が表示されます。 |
|
|
|
CDB内の各コンテナの永続的なプロパティが表示されます。 |
|
|
|
各PDBの履歴が表示されます。 |
|
|
|
CDBに指定されているユーザー・レベルおよびオブジェクト・レベルの |
|
|
|
ワークロード・リポジトリのPDBおよびインスタンスが表示されます。 |
|
|
|
CDBの現在保存されているPDBの状態に関する情報が表示されます。 |
|
|
|
アプリケーション・コンテナ内のすべてのアプリケーションを記述します。 |
|
|
|
アプリケーションコンテナ内でのアプリケーション・インストール、アップグレードおよびパッチ操作からのすべての文を記述します。 |
|
|
|
アプリケーション・コンテナ内のすべてのアプリケーション・パッチを記述します。 |
|
|
|
アプリケーション・コンテナ内に生成されたすべてのアプリケーション・エラー・メッセージを記述します。 |
|
|
|
すべてのCDBリソース・プランに関する情報が表示されます。 |
|
|
|
すべてのCDBリソース・プラン・ディレクティブに関する情報が表示されます。 |
|
|
|
PDBアラートの理由の説明が示されます。 |
|
|
|
PDBと、それが属するCDB間の非互換性に関する情報が表示されます。このビューは、 |
|
|
|
データベース・オブジェクトに関する情報が表示され、 |
|
|
|
データベース・サービスに関する情報が表示され、 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
制御ファイルからの、データベースに関する情報が表示されます。データベースがCDBである場合は、CDB関連の情報が含まれます。 |
|
|
|
ルートおよびすべてのPDBを含む、現在のCDBに関連付けられているコンテナに関する情報が表示されます。 |
|
|
|
各PDBのオープン・モードなど、現在のCDBに関連付けられているPDBに関する情報が表示されます。 |
|
|
|
すべてのPDBインカネーションに関する情報を示します。 |
|
|
|
初期化パラメータに関する情報が表示され、 |
|
|
|
CDBの現在のコンテナのトレース・ファイルおよびアラート・ファイルのデータを表示します。 |
|
|
|
CDB内の現在のコンテナの問題およびインシデントに関する情報を表示します。 |
45.5 データベースがCDBであるかどうかの判断
V$DATABASEビューのCDB列を問い合せて、データベースがCDBであるか非CDBであるかを判断できます。CDB列は、現在のデータベースがCDBの場合はYESを返し、現在のデータベースが非CDBの場合はNOを返します。
データベースがCDBであるかどうかを判断するには:
-
SQL*Plusで、管理ユーザーとしてデータベースに接続します。
-
V$DATABASEビューを問い合せます。
例45-1 データベースがCDBであるかどうかの判断
SELECT CDB FROM V$DATABASE;
出力例:
CDB --- YES
関連項目:
45.6 CDB内のコンテナに関する情報の表示
V$CONTAINERSビューは、ルートおよびすべてのPDBを含む、CDB内のすべてのコンテナに関する情報を提供します。
この情報を表示するには、現在のコンテナがルートである共通ユーザーが問合せを実行する必要があります。現在のコンテナがPDBである場合、このビューには現在のPDBに関する情報のみが表示されます。
CDB内のコンテナに関する情報を表示するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
V$CONTAINERSビューを問い合せます。
例45-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
45.7 PDBに関する情報の表示
CDB_PDBSビューおよびDBA_PDBSビューは、各PDBのステータスなど、CDBに関連付けられたPDBに関する情報を提供します。
この情報を表示するには、現在のコンテナがルートである共通ユーザーが問合せを実行する必要があります。現在のコンテナがPDBである場合は、これらのビューに対するすべての問合せで結果が返されません。
PDBに関する情報を表示するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
CDB_PDBSまたはDBA_PDBSビューを問い合せます。
例45-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
関連項目:
45.8 各PDBのオープン・モードの表示
V$PDBSビューは、現在のデータベース・インスタンスに関連付けられたPDBに関する情報を提供します。
このビューを問い合せて、各PDBのオープン・モードを判断します。オープンしている各PDBについて、このビューでは、PDBが最後にオープンされたかのがいつであるかを表示することもできます。共通ユーザーは、現在のコンテナがルートまたはPDBである場合にこのビューを問い合せることができます。現在のコンテナがPDBである場合、このビューには現在のPDBに関する情報のみが表示されます。
各PDBのオープン・ステータスを表示するには:
-
SQL*Plusでコンテナにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
V$PDBSビューを問い合せます。
例45-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
45.9 コンテナ・データ・オブジェクトの問合せ
ルートでは、コンテナ・データ・オブジェクトは、ルートおよびその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セキュリティ・ガイド』を参照してください。
例45-5 複数のPDBの特定のスキーマが所有する表の表示
この例では、ルートからDBA_PDBSビューおよびCDB_TABLESビューを問い合せて、CDBに関連付けられているPDBのhrユーザーおよびoeユーザーが所有する表を表示します。この問合せは、PDBのIDが2より大きい(p.PDB_ID > 2)行のみを返すことで、CDBルートおよびCDBシードのユーザーを表示しないようにしています。
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スキーマの表があることを示しています。
例45-6 複数のPDBのユーザーの表示
この例では、ルートからDBA_PDBSビューおよびCDB_USERSビューを問い合せて、各PDBのユーザーを表示します。この問合せでは、p.PDB_ID > 2を使用して、CDBルートおよびCDBシードのユーザーを表示しないようにしています。
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
.
.
.例45-7 CDB内の各PDBのデータファイルの表示
この例では、DBA_PDBSおよびCDB_DATA_FILESビューを問い合せて、CDBシードなど、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
例45-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例45-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
関連項目:
45.10 CONTAINERS句を使用したコンテナ間の問合せ
CONTAINERS句を使用すると、CDB内のすべてのコンテナ間で表およびビューを問い合せることができます。アプリケーション・コンテナ内のすべてのコンテナでアプリケーション共通オブジェクトを問い合せることもできます。
- CONTAINERS句を使用したコンテナ間の問合せについて
CONTAINERS句を使用すると、CDB内のコンテナ間で問い合せることができます。 - すべてのコンテナ間でのユーザーが作成した表およびビューの問合せ
CONTAINERS句を使用すると、CDB内のすべてのコンテナ間でユーザーが作成した表およびビューを問い合せることができます。この句により、CDB内のすべてのオープンPDBに存在する表またはビューのデータを表示するために、CDBルートからの問合せが可能になります。 - アプリケーションPDB間でのアプリケーション共通オブジェクトの問合せ
CONTAINERS句では、アプリケーション・コンテナ内のすべてのアプリケーションPDB間で表やビューなどのアプリケーション共通オブジェクトを問い合せることができます。この句では、アプリケーション・ルートから問い合せて、アプリケーション・コンテナ内のオープンしているすべてのアプリケーションPDBに存在する表またはビューのデータを表示できます。
45.10.1 CONTAINERS句を使用したコンテナ間の問合せについて
CONTAINERS句を使用すると、CDB内のコンテナ間で問い合せることができます。
CONTAINERS句を使用すると、CDB内のすべてのコンテナ間でユーザーが作成した表およびビューを問い合せることができます。この句により、CDB内のすべてのオープン・コンテナに存在する表またはビューのデータを表示するために、CDBルートからの問合せが可能になります。
また、CONTAINERS句では、アプリケーション・コンテナ内のすべてのアプリケーションPDBで表やビューなどのアプリケーション共通オブジェクトを問い合せることができます。この句では、アプリケーション・ルートから問い合せて、アプリケーション・コンテナ内のオープンしているすべてのアプリケーションPDBに存在する表またはビューのデータを表示できます。
CONTAINERS_PARALLEL_DEGREE初期化パラメータでは、CONTAINERS句を含む問合せの並列度を制御できます。CONTAINERS_PARALLEL_DEGREEの値が65535 (デフォルト)未満の場合は、指定した値が使用されます。
CONTAINERS_PARALLEL_DEGREE初期化パラメータにデフォルト値(65535)が設定されている場合、CONTAINERS句を使用する問合せはデフォルトでパラレル化されます。デフォルトの並列度は、次の式を使用して計算します。max(min(cpu_count,number_of_open_containers),#instances)また、DEFAULT_PDB_HINTヒントをCONTAINERS句に渡すことができます。ヒントは、各コンテナで実行される問合せで渡されます。
CONTAINERS句を含む問合せから生成される再帰的SQLが並列化されるように強制するには、CONTAINERS句のDEFAULT_PDB_HINTヒントを使用するか、自動並列度を使用します。ただし、CONTAINERS句を含む問合せから生成される再帰的SQLには、パラレル文のキューイングは使用できません。
次のタイプの列がCONTAINERS句に指定された表に存在する場合は、削除されます。
-
次のユーザー定義型: オブジェクト型、VARRAY、REFおよびネストした表
-
次のOracle提供のタイプ:
ANYTYPE、ANYDATASET、URIタイプ、SDO_TOPO_GEOMETRY、SDO_GEORASTERおよびExpression
注意:
-
コンテナが制限モードでオープンされている場合は、
CONTAINERS句で無視されます。 -
CONTAINERS句が使用され、エラーがコンテナで戻される場合、問合せではエラーが発生したコンテナから結果を戻さず、エラーは戻りません。たとえば、ローカル変数にリモート表からのBFILE列は選択できません。これを実行する問合せがCONTAINERS句を使用し、ローカルおよびリモート・コンテナを含む場合、問合せはローカル・コンテナの結果を戻しますが、リモート・コンテナは戻さず、エラーは戻りません。
関連項目:
-
CONTAINERS句およびCONTAINERSヒントの詳細は、『Oracle Database SQL言語リファレンス』を参照してください -
コンテナ・データ・オブジェクトの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
-
CONTAINERS_PARALLEL_DEGREE初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください -
自動並列度およびパラレル文のキューイングの詳細は、Oracle Databaseデータ・ウェアハウス・ガイドを参照してください
親トピック: CONTAINERS句を使用したコンテナ間の問合せの概要
45.10.2 すべてのコンテナ間でのユーザーが作成した表およびビューの問合せ
CONTAINERS句を使用すると、CDB内のすべてのコンテナ間でユーザーが作成した表およびビューを問い合せることができます。この句により、CDB内のすべてのオープンPDBに存在する表またはビューのデータを表示するために、CDBルートからの問合せが可能になります。
注意:
この機能は、Oracle Database 12cリリース1 (12.1.0.2)以降で使用可能です。
前提条件
CONTAINERS句に指定した表およびビュー、またはそのシノニムは、CDBルートおよび他のすべてのコンテナに存在する必要があります。
CONTAINERS句を使用してすべてのコンテナ間で表およびビューを問い合せるには、次の手順を実行します。
-
SQL*Plusでコンテナにアクセスします。
複数のコンテナのデータを表示する場合は、現在のコンテナがCDBルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
CONTAINERS句を含む問合せを実行します。
例45-10 すべてのコンテナ間での共通ユーザーが所有する表の問合せ
この例では、次のことを想定しています。
-
組織に複数のPDBがあり、各PDBは組織内のそれぞれ異なる部門のものです。
-
各PDBには、部門の従業員を追跡管理する
employees表がありますが、各PDBの表には別個の従業員が含まれます。 -
また、CDBルートには空の
employees表があります。 -
各コンテナのemployees表は、同じ共通ユーザーが所有します。
CDBルートを現在のコンテナとし、表を所有する共通ユーザーを現行ユーザーとして、CONTAINERS句を指定した次の問合せを実行し、すべてのPDBのemployees表の全従業員を返します。
SELECT * FROM CONTAINERS(employees);
例45-11 すべてのコンテナ間でのローカル・ユーザーが所有する表の問合せ
この例では、次のことを想定しています。
-
組織に複数のPDBがあり、各PDBは組織内のそれぞれ異なる部門のものです。
-
各PDBには、部門の従業員を追跡管理する
hr.employees表がありますが、各PDBの表には別個の従業員が含まれます。 -
また、CDBルートには、共通ユーザーが所有する空の
employees表があります。
すべてのPDBの全従業員を返す問合せを実行するには、まず共通ユーザーとして各PDBに接続し、次の文を使用してビューを作成します。
CREATE OR REPLACE VIEW employees AS SELECT * FROM hr.employees;
ビューを所有する共通ユーザーは、CDBルートのemployees表を所有する共通ユーザーと同じである必要があります。各PDBでこの文を実行すると、共通ユーザーは各PDBにemployeesという名前のビューを保持します。
CDBルートを現在のコンテナとし、共通ユーザーを現行ユーザーとして、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セキュリティ・ガイド』を参照してください。
親トピック: CONTAINERS句を使用したコンテナ間の問合せの概要
45.10.3 アプリケーションPDB間のアプリケーション共通オブジェクトの問合せ
CONTAINERS句では、アプリケーション・コンテナ内のすべてのアプリケーションPDBで表やビューなどのアプリケーション共通オブジェクトを問い合せることができます。この句では、アプリケーション・ルートから問い合せて、アプリケーション・コンテナ内のオープンしているすべてのアプリケーションPDBに存在する表またはビューのデータを表示できます。
CONTAINERS句は、メタデータリンク・アプリケーション共通オブジェクトに最も役立ちます。メタデータリンク・アプリケーション共通オブジェクトでは、構造はアプリケーション・コンテナのすべてのコンテナで同じですが、データは異なります。CONTAINERS句を使用して、複数のアプリケーションPDB内のメタデータリンク・アプリケーション共通オブジェクトのデータを表示できます。拡張データリンク・オブジェクトについてのメリットも同様です。CONTAINERS句は、パラレル実行を使用して、アプリケーション・ルートでホストされる各アプリケーションPDB間で問合せを実行します。
CONTAINERS句を使用してすべてのアプリケーションPDB間で表およびビューを問い合せるには、次の手順を実行します。
-
SQL*Plusで、アプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
CONTAINERS句を含む問合せを実行します。
注意:
アプリケーション・ルートの表またはビューに対してCONTAINERS_DEFAULT属性を有効にできます。この属性が有効になっている場合、CONTAINERS句はデフォルトでデータベース・オブジェクトに対する問合せおよびDML文に使用され、SQL文にCONTAINERS句は必要ありません。アプリケーション・ルートの表またはビューに対してCONTAINERS_DEFAULT属性を有効にするには、ENABLE CONTAINERS_DEFAULT句を指定したALTER VIEWまたはCREATE OR REPLACE VIEW文を実行します。
例45-12 すべてのアプリケーションPDBでのアプリケーション共通オブジェクトの問合せ
この例では、次のことを想定しています。
-
組織に複数のアプリケーションPDBがあり、各アプリケーションPDBは組織内のそれぞれ異なる部門のものです。
-
各アプリケーションPDBには、部門の従業員を追跡管理する
employees表がありますが、各アプリケーションPDBの表には別個の従業員が含まれます。 -
また、アプリケーション・ルートには空の
employees表があります。 -
各コンテナのemployees表は、同じ共通ユーザーが所有します。
-
会社には、アプリケーション・コンテナ内のアプリケーションを使用する複数のテナントがあり、各テナントに固有のアプリケーションPDBがあります。
-
会社は、メタデータリンク・アプリケーション共通オブジェクトを使用して、すべてのアプリケーションPDB内で同じデータの構造を維持しますが、データはアプリケーションPDBごとに異なります。
-
各アプリケーションPDBには、各テナントの顧客に関する情報を格納するメタデータリンク
sales.customers表があります。
アプリケーション・ルートを現在のコンテナとし、表を所有するアプリケーション共通ユーザーを現行ユーザーとして、CONTAINERS句を指定した次の問合せを実行し、すべてのアプリケーションPDBのsales.customers表の全顧客を返します。
SELECT * FROM CONTAINERS(sales.customers);
関連項目:
-
CONTAINERS句の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 -
コンテナ・データ・オブジェクトの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
親トピック: CONTAINERS句を使用したコンテナ間の問合せの概要
45.11 現在のコンテナのIDまたは名前の判別
CDB内の現在のコンテナIDまたはコンテナ名を判別できます。
現在のコンテナIDを判別するには:
-
次のSQL*Plusコマンドを実行します。
SHOW CON_ID
現在のコンテナ名を判別するには:
-
次のSQL*Plusコマンドを実行します。
SHOW CON_NAME
また、表45-3にリストされたファンクションを使用して、コンテナのコンテナIDを判別することもできます。
表45-3 コンテナのコンテナIDを返すファンクション
| ファンクション | 説明 |
|---|---|
|
|
コンテナの名前に基づいてコンテナIDを返します。 |
|
|
コンテナのDBIDに基づいてコンテナIDを返します。 |
|
|
コンテナの一意識別子(UID)に基づいてコンテナIDを返します。 |
|
|
コンテナのグローバル一意識別子(GUID)に基づいてコンテナIDを返します。 |
V$CONTAINERSビューには、CDB内の各コンテナの名前、DBID、UIDおよびGUIDが表示されます。
例45-13 コンテナの名前に基づいたコンテナIDの戻し
SELECT CON_NAME_TO_ID('HRPDB') FROM DUAL;例45-14 コンテナDBIDに基づいたコンテナIDの戻し
SELECT CON_DBID_TO_ID(2226957846) FROM DUAL;
関連項目:
-
V$CONTAINERSビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
45.12 PDBで変更可能な初期化パラメータをリスト
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ではルートのパラメータ値が継承されます。
45.13 PDBの履歴の表示
CDB_PDB_HISTORYビューには、CDB内のPDBの履歴が表示されます。各PDBがいつどのように作成されたかに関する情報、および各PDBの履歴に関するその他の情報を提供します。
各PDBの履歴を表示するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
CDB_PDB_HISTORYビューを問い合せます。
例45-15 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の履歴を表示できます。
関連項目:
45.14 アプリケーション・コンテナ内のアプリケーションに関する情報の表示
複数のビューが、CDB内のアプリケーション・コンテナ内のアプリケーションに関する情報を提供します。
- アプリケーションに関する情報の表示
DBA_APPLICATIONSビューは、アプリケーション・コンテナ内のアプリケーションに関する情報を提供します。 - アプリケーション・ステータスに関する情報の表示
DBA_APP_PDB_STATUSビューは、アプリケーション・コンテナ内のアプリケーションのステータスに関する情報を提供します。各アプリケーションPDB内の各アプリケーションのステータスを表示できます。 - アプリケーション文に関する情報の表示
DBA_APP_STATEMENTSビューは、アプリケーションのインストール、アップグレードおよびパッチ操作中に発行されたSQL文に関する情報を提供します - アプリケーションのバージョンに関する情報の表示
DBA_APP_VERSIONSビューは、アプリケーション・コンテナ内のアプリケーションのバージョンに関する情報を提供します。 - アプリケーション・パッチに関する情報の表示
DBA_APP_PATCHESビューは、アプリケーション・コンテナ内のアプリケーション・パッチに関する情報を提供します。 - アプリケーション・エラーに関する情報の表示
DBA_APP_ERRORSビューは、アプリケーションPDBがアプリケーション・ルート内のアプリケーションと同期する際に発生した情報エラーを提供します。アプリケーションPDBは、SYNC句を指定したALTER PLUGGABLE DATABASE APPLICATION文を発行します。 - アプリケーション・コンテナ内の共有データベース・オブジェクトのリスト
DBA_OBJECTSビューは、アプリケーション・コンテナ内の共有データベース・オブジェクトをリストできます。共有データベース・オブジェクトは、メタデータリンク・アプリケーション共通オブジェクト、データリンク・アプリケーション共通オブジェクトおよび拡張データリンク・アプリケーション共通オブジェクトです。 - アプリケーション・コンテナ内の拡張データリンク・オブジェクトのリスト
DBA_TABLESおよびDBA_VIEWSビューは、アプリケーション・コンテナ内の拡張データリンク・オブジェクトをリストできます。
45.14.1 アプリケーションに関する情報の表示
DBA_APPLICATIONSビューは、アプリケーション・コンテナ内のアプリケーションに関する情報を提供します。
注意:
DBA_APPLICATIONSビューは、現在のコンテナのみのアプリケーションに関する情報を提供します。現在のアプリケーション・コンテナ内のすべてのアプリケーションPDB内のアプリケーションに関する情報を表示するには、アプリケーション・ルートが現在のコンテナであるときに、DBA_APP_PDB_STATUSに問い合せます。
アプリケーション・コンテナ内のアプリケーションに関する情報を表示するには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_APPLICATIONSビューを問い合せます。
例45-16 アプリケーション・コンテナのアプリケーションに関する詳細の表示
この問合せは、アプリケーション・コンテナ内のユーザーが作成した各アプリケーションの名前、最新バージョンおよびステータスを表示します。
COLUMN APP_NAME FORMAT A15 COLUMN APP_VERSOIN FORMAT A15 COLUMN APP_STATUS FORMAT A15 SELECT APP_NAME, APP_VERSION, APP_STATUS FROM DBA_APPLICATIONS WHERE APP_IMPLICIT='N';
出力は次のようになります。
APP_NAME APP_VERSION APP_STATUS --------------- ------------------------------ --------------- SALESAPP 1.2 NORMAL
注意:
Oracle Databaseは、アプリケーション共通ユーザー操作がALTER PLUGGABLE DATABASE APPLICATION BEGIN/END文の外部のCONTAINER=ALL句で発行されたときにいくつかのアプリケーションを暗黙的に作成します。サンプル問合せでは、WHERE句にAPP_IMPLICIT='N'を指定することで暗黙的に作成されたアプリケーションが除外されます。
45.14.2 アプリケーション・ステータスに関する情報の表示
DBA_APP_PDB_STATUSビューは、アプリケーション・コンテナ内のアプリケーションのステータスに関する情報を提供します。各アプリケーションPDB内の各アプリケーションのステータスを表示できます。
このビューは、アプリケーションPDBがクローズされている場合でも、アプリケーションPDB内のアプリケーションのステータスを表示できます。
注意:
アプリケーション・ルートから問い合せた場合、DBA_APP_PDB_STATUSビューは現在のアプリケーション・コンテナ内のすべてのアプリケーションPDB内のアプリケーションに関する情報を提供します。現在のコンテナのアプリケーションに関する情報のみを表示するには、DBA_APPLICATIONSビューを問い合せます。
アプリケーション・コンテナ内のアプリケーション・ステータスに関する情報を表示するには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセスについて」を参照してください。
-
DBA_APP_PDB_STATUSビューを問い合せます。
例45-17 アプリケーション・ステータスに関する情報の表示
この問合せは、アプリケーションPDBの名前、アプリケーションの名前、アプリケーションのバージョン番号およびアプリケーションのステータスを表示します。
COLUMN PDB_NAME FORMAT A15 COLUMN APP_NAME FORMAT A15 COLUMN APP_VERSION FORMAT A20 COLUMN APP_STATUS FORMAT A12 SELECT p.PDB_NAME, s.APP_NAME, s.APP_VERSION, s.APP_STATUS FROM DBA_PDBS p, DBA_APP_PDB_STATUS s WHERE p.CON_UID = s.CON_UID;
出力は次のようになります。
PDB_NAME APP_NAME APP_VERSION APP_STATUS --------------- --------------- -------------------- ------------ SALES1 SALESAPP 4.2 NORMAL
注意:
アプリケーションのステータスは、アプリケーションが最新のバージョンと同期されていなくても、アプリケーションPDB内でNORMALであることがあります。他のステータスは、操作が進行中であるか、操作で問題が発生したことを示していることがあります。たとえば、UPGRADINGステータスは、アプリケーションのアップグレードがアプリケーションPDBで進行中であるか、アプリケーションPDBがアプリケーションをアップグレードしようとしたときにエラーが発生したことを示している可能性があります。
45.14.3 アプリケーション文に関する情報の表示
DBA_APP_STATEMENTSビューは、アプリケーションのインストール、アップグレードおよびパッチ操作中に発行されたSQL文に関する情報を提供します
Oracle Databaseでは、アプリケーションのインストール、アップグレードおよびパッチ操作中に発行されたすべてのSQL文が記録され、DBA_APP_STATEMENTSビューを問い合せることでこれらの文の履歴を表示できます。
アプリケーション操作中に発行されたSQL文に関する情報を表示するには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_APP_STATEMENTSビューを問い合せます。
例45-18 アプリケーション文に関する情報の表示
この問合せは、アプリケーション・コンテナ内のアプリケーションに対するSQL文の文ID、取得時間、SQL文およびアプリケーション名を表示します。
SET LONG 8000 SET PAGES 8000 COLUMN STATEMENT_ID FORMAT NNNNN COLUMN CAPTURE_TIME FORMAT A12 COLUMN APP_STATEMENT FORMAT A36 COLUMN APP_NAME FORMAT A15 SELECT STATEMENT_ID, CAPTURE_TIME, APP_STATEMENT, APP_NAME FROM DBA_APP_STATEMENTS ORDER BY STATEMENT_ID;
出力は次のようになります。
STATEMENT_ID CAPTURE_TIME APP_STATEMENT APP_NAME
------------ ------------ ------------------------------------ ---------------
1 30-AUG-15 SYS APP$1E87C094764
1142FE0534018F8
0AA6C5
2 30-AUG-15 ALTER PLUGGABLE DATABASE APPLICATION APP$1E87C094764
APP$CON BEGIN INSTALL '1.0' 1142FE0534018F8
0AA6C5
3 30-AUG-15 ALTER PLUGGABLE DATABASE APPLICATION APP$1E87C094764
APP$CON END INSTALL '1.0' 1142FE0534018F8
0AA6C5
4 30-AUG-15 SYS SALESAPP
5 30-AUG-15 ALTER PLUGGABLE DATABASE APPLICATION SALESAPP
salesapp BEGIN INSTALL '1.0'
6 30-AUG-15 CREATE TABLE oe.cmtb SHARING=METADAT SALESAPP
A (
value VARCHAR2(30),
country VARCHAR2(30))
7 30-AUG-15 CREATE TABLE conmap ( SALESAPP
country VARCHAR2(30) NOT NULL)
PARTITION BY LIST (country) (
PARTITION AMER VALUES ('US','MEXICO'
,'CANADA'),
PARTITION EURO VALUES ('UK','FRANCE'
,'GERMANY'),
PARTITION ASIA VALUES ('INDIA','CHIN
A','JAPAN'))
8 30-AUG-15 ALTER TABLE oe.cmtb ENABLE CONTAINER SALESAPP
_MAP
9 30-AUG-15 ALTER PLUGGABLE DATABASE APPLICATION SALESAPP
salesapp END INSTALL '1.0'
.
.
.注意:
Oracle Databaseは、アプリケーション共通ユーザー操作がALTER PLUGGABLE DATABASE APPLICATION BEGIN/END文の外部のCONTAINER=ALL句で発行されたときにいくつかのアプリケーションを暗黙的に作成します。これらのアプリケーションの名前はAPP$で開始し、サンプル出力はこれらのアプリケーションを表示します。
45.14.4 アプリケーション・バージョンに関する情報の表示
DBA_APP_VERSIONSビューは、アプリケーション・コンテナ内のアプリケーションのバージョンに関する情報を提供します。
Oracle Databaseは、アプリケーション・コンテナ内の各アプリケーションのバージョンを記録します。
アプリケーション・コンテナ内のアプリケーション・バージョンに関する情報を表示するには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_APP_VERSIONSビューを問い合せます。
例45-19 アプリケーション・バージョンに関する情報の表示
この問合せは、バージョン化されているアプリケーションの名前、バージョン番号およびバージョンのコメントを表示します。
COLUMN APP_NAME FORMAT A15 COLUMN APP_VERSION FORMAT A20 COLUMN APP_VERSION_COMMENT FORMAT A25 SELECT APP_NAME, APP_VERSION, APP_VERSION_COMMENT FROM DBA_APP_VERSIONS;
出力は次のようになります。
APP_NAME APP_VERSION APP_VERSION_COMMENT --------------- -------------------- ------------------------- SALESAPP 1.0 Sales Application
45.14.5 アプリケーション・パッチに関する情報の表示
DBA_APP_PATCHESビューは、アプリケーション・コンテナ内のアプリケーション・パッチに関する情報を提供します。
Oracle Databaseは、アプリケーション・コンテナ内の各アプリケーションのパッチを記録します。
アプリケーション・コンテナ内のアプリケーション・パッチに関する情報を表示するには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_APP_PATCHESビューを問い合せます。
例45-20 アプリケーション・パッチに関する情報の表示
この問合せは、アプリケーション・コンテナ内の各パッチについて、パッチが適用されたアプリケーションの名前、パッチ番号、パッチの最小アプリケーション・バージョンおよびパッチのステータスを表示します。
COLUMN APP_NAME FORMAT A15 COLUMN PATCH_NUMBER FORMAT NNNNNNNN COLUMN PATCH_MIN_VERSION FORMAT A10 COLUMN PATCH_STATUS FORMAT A15 SELECT APP_NAME, PATCH_NUMBER, PATCH_MIN_VERSION, PATCH_STATUS FROM DBA_APP_PATCHES;
出力は次のようになります。
APP_NAME PATCH_NUMBER PATCH_MIN_ PATCH_STATUS --------------- ------------ ---------- --------------- SALESAPP 1 1.2 INSTALLED
45.14.6 アプリケーション・エラーに関する情報の表示
DBA_APP_ERRORSビューは、アプリケーションPDBがアプリケーション・ルート内のアプリケーションと同期する際に発生した情報エラーを提供します。アプリケーションPDBは、SYNC句を指定したALTER PLUGGABLE DATABASE APPLICATION文を発行します。
DBA_APP_ERRORSビューを問い合せることで、アプリケーション同期中のアプリケーション・エラーの履歴を表示できます。
アプリケーションの同期中に発生したエラーに関する情報を表示するには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_APP_ERRORSビューを問い合せます。
例45-21 アプリケーション同期中に発生したエラーに関する詳細の表示
この問合せは、アプリケーション同期中に発生したエラーについて、アプリケーション名、エラーを生成したSQL文、エラー番号およびエラー・メッセージを表示します。
SET LONG 8000 SET PAGES 8000 COLUMN APP_NAME FORMAT A15 COLUMN APP_STATEMENT FORMAT A36 COLUMN ERRORNUM FORMAT NNNNNNNN COLUMN ERRORMSG FORMAT A20 SELECT APP_NAME, APP_STATEMENT, ERRORNUM, ERRORMSG FROM DBA_APP_ERRORS;
関連トピック
45.14.7 アプリケーション・コンテナ内の共有データベース・オブジェクトのリスト
DBA_OBJECTSビューは、アプリケーション・コンテナ内の共有データベース・オブジェクトをリストできます。共有データベース・オブジェクトは、メタデータリンク・アプリケーション共通オブジェクト、データリンク・アプリケーション共通オブジェクトおよび拡張データリンク・アプリケーション共通オブジェクトです。
アプリケーション・コンテナ内の共有データベース・オブジェクトをリストするには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_OBJECTSビューを問い合せ、SHARING列を指定します。
例45-22 アプリケーション・コンテナ内のユーザーが作成した共有データベース・オブジェクトのリスト
この問合せは、アプリケーション・コンテナ内のユーザーが作成した共有データベース・オブジェクトの所有者と名前を表示します。各共有データベース・オブジェクトがメタデータリンク・アプリケーション共通オブジェクトとデータリンク・アプリケーション共通オブジェクトのぢちらであるかも表示します。問合せでは、オラクル社が提供する共有データベース・オブジェクトは除外されます。
COLUMN OWNER FORMAT A15 COLUMN OBJECT_NAME FORMAT A25 COLUMN SHARING FORMAT A13 SELECT OWNER, OBJECT_NAME, SHARING FROM DBA_OBJECTS WHERE SHARING != 'NONE' AND ORACLE_MAINTAINED = 'N';
出力は次のようになります。
OWNER OBJECT_NAME SHARING --------------- ------------------------- ------------- SALESADM CONMAP METADATA LINK OE PRODUCT_DESCRIPTIONS_OB DATA LINK OE CMTB METADATA LINK
関連トピック
45.14.8 アプリケーション・コンテナ内の拡張データリンク・オブジェクトのリスト
DBA_TABLESおよびDBA_VIEWSビューは、アプリケーション・コンテナ内の拡張データリンク・オブジェクトをリストできます。
拡張データリンク・オブジェクトは、各アプリケーションPDBがアプリケーション・ルートの共通データを共有しながら特定の独自データを作成できる特殊なタイプのデータリンク・オブジェクトです。アプリケーション・ルートに格納されるデータのみがすべてのアプリケーションPDBに共通です
アプリケーション・コンテナ内の拡張データリンク・オブジェクトをリストするには:
-
SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。
「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DBA_TABLESまたはDBA_VIEWSビューを問い合せ、WHERE句にEXTENDED_DATA_LINK='YES'を指定します。
例45-23 アプリケーション・コンテナ内の拡張データリンク表の表示
この問合せは、アプリケーション・コンテナ内の拡張データリンク表の所有者と名前を表示します。
COLUMN OWNER FORMAT A20 COLUMN TABLE_NAME FORMAT A30 SELECT OWNER, TABLE_NAME FROM DBA_TABLES WHERE EXTENDED_DATA_LINK='YES';
出力は次のようになります。
OWNER TABLE_NAME -------------------- ------------------------------ SALESADM ZIPCODES
関連トピック