19 CDBおよびPDBの監視

SQL*PlusまたはSQL Developerを使用して、CDBおよびPDBに関する情報を表示できます。

この章のトピックは、次のとおりです:

ビュー内のCDBおよびコンテナの情報について

CDBでは、データ・ディクショナリ表およびビュー定義のメタデータがルートのみに格納されます。

各コンテナ(各PDB、アプリケーション・ルート、アプリケーションPDBを含む)には、そのコンテナに含まれているオブジェクトに関する、独自のデータ・ディクショナリ表とビューのセットがあります。各コンテナには異なるデータ・オブジェクトとスキーマ・オブジェクトを含めることができるため、各コンテナで同じビューを問い合せても、コンテナによってデータ・ディクショナリ・ビューに異なるメタデータが表示される場合があります。たとえば、2つの異なるコンテナでは、DBA_TABLESビューに表示される、表に関するメタデータが異なる場合があり、これは、コンテナごとに異なる表が含まれていることがあるためです。コンテナは、メタデータ・リンクと呼ばれる内部メカニズムを使用して、ルート内のこれらのビューのメタデータにアクセスできます。

ディクショナリ表に、各コンテナではなくCDB全体に関連する情報が格納される場合は、メタデータと、データ・ディクショナリ・ビューに表示されるデータの両方がルートに格納されます。たとえば、自動ワークロード・リポジトリ(AWR)データはルートに格納でき、DBA_HIST_ACTIVE_SESS_HISTORYビューなどの一部のデータ・ディクショナリ・ビューに表示されます。コンテナは、データ・リンクと呼ばれる内部メカニズムを使用して、ルート内のこれらのタイプのビューのメタデータとデータの両方にアクセスできます。

この項では、次の項目について説明します。

関連項目:

コンテナ、メタデータ・リンクおよびデータ・リンクでのディクショナリ・アクセスの詳細は、「CDBのデータ・ディクショナリ・アーキテクチャ」を参照してください

現在のコンテナがCDBルートではない場合の情報の表示について

現在のコンテナがPDB、アプリケーション・ルートまたはアプリケーションPDBの場合、データ・ディクショナリには現在のコンテナのみのメタデータが表示されます。

PDB、アプリケーション・ルートまたはアプリケーションPDBに接続されているアプリケーションからは、データ・ディクショナリは非CDB用であるかのように見えます。データ・ディクショナリには、現在のコンテナに関連するメタデータのみが表示されます。また、CDBルートではないコンテナでは、CDB_ビューには、対応するDBA_ビューで表示されるデータベース・オブジェクトに関する情報のみが示されます。

現在のコンテナがCDBルートである場合の情報の表示について

現在のコンテナがCDBルートである場合、共通ユーザーは、コンテナ・データ・オブジェクトを問い合せて、CDBルート、PDB、アプリケーション・ルートおよびアプリケーションPDBのデータ・ディクショナリ情報を表示できます。

コンテナ・データ・オブジェクトは、次の内容に関連するデータを含めることができる表またはビューです。

  • 1つ以上のコンテナ

  • CDB全体

  • 1つ以上のコンテナおよびCDB全体

コンテナ・データ・オブジェクトには、V$GV$CDB_およびいくつかの自動ワークロード・リポジトリDBA_HIST*のビューが含まれています。共通ユーザーのCONTAINER_DATA属性は、コンテナ・データ・オブジェクトに表示できるコンテナを決定します。

CDBでは、すべてのDBA_ビューに、対応するCDB_ビューがあります。すべてのCDB_ビューはコンテナ・データ・オブジェクトですが、ほとんどのDBA_ビューはそうではありません。

各コンテナ・データ・オブジェクトには、返された各行のコンテナを識別するCON_ID列が含まれています。表19-1では、CON_ID列の値の意味について説明します。

表19-1 コンテナ・データ・オブジェクトのCON_ID列

CON_ID列の値 説明

0

CDB全体に関連するデータ

1

CDBルートに関連するデータ

2

PDBシードに関連するデータ

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_ビューに対する問合せで無視されます。

関連項目:

CDBのビュー

CDBおよびそのPDBに関する情報をビューのセットに問い合せることができます。

表19-2は、CDBおよびそのPDBの監視に役立つデータ・ディクショナリ・ビューについて説明しています。

表19-2 CDBのビュー

ビュー 説明 詳細情報

次を含むコンテナ・データ・オブジェクト

  • V$ビュー

  • GV$ビュー

  • CDB_ビュー

  • DBA_HIST*ビュー

コンテナ・データ・オブジェクトによって、複数のPDBに関する情報を表示できます。各コンテナ・データ・オブジェクトには、コンテナを識別するためのCON_ID列が含まれています。

対応する各DBA_ビューのCDB_ビューがあります。

「コンテナ・データ・オブジェクトの問合せ」

『Oracle Databaseセキュリティ・ガイド』

{CDB|DBA}_PDBS

各PDBのステータスなど、CDBに関連付けられたPDBに関する情報が表示されます。

「PDBに関する情報の表示」

『Oracle Databaseリファレンス』

CDB_PROPERTIES

CDB内の各コンテナの永続的なプロパティが表示されます。

『Oracle Databaseリファレンス』

{CDB|DBA}_PDB_HISTORY

各PDBの履歴が表示されます。

『Oracle Databaseリファレンス』

{CDB|DBA}_CONTAINER_DATA

CDBに指定されているユーザー・レベルおよびオブジェクト・レベルのCONTAINER_DATA属性に関する情報が表示されます。

『Oracle Databaseリファレンス』

{CDB|DBA}_HIST_PDB_INSTANCE

ワークロード・リポジトリのPDBおよびインスタンスが表示されます。

『Oracle Databaseリファレンス』

{CDB|DBA}_PDB_SAVED_STATES

CDBの現在保存されているPDBの状態に関する情報が表示されます。

『Oracle Databaseリファレンス』

「CDB再起動時のPDBのオープン・モードの保持または破棄」

{CDB|DBA}_APPLICATIONS

アプリケーション・コンテナ内のすべてのアプリケーションを記述します。

アプリケーションに関する情報の表示

{CDB|DBA}_APP_STATEMENTS

アプリケーション・コンテナ内でのアプリケーション・インストール、アップグレードおよびパッチ操作からのすべての文を記述します。

アプリケーション文に関する情報の表示

{CDB|DBA}_APP_PATCHES

アプリケーション・コンテナ内のすべてのアプリケーション・パッチを記述します。

アプリケーション・パッチに関する情報の表示

{CDB|DBA}_APP_ERRORS

アプリケーション・コンテナ内に生成されたすべてのアプリケーション・エラー・メッセージを記述します。

アプリケーション・エラーに関する情報の表示

{CDB|DBA}_CDB_RSRC_PLANS

すべてのCDBリソース・プランに関する情報が表示されます。

『Oracle Databaseリファレンス』

「CDBリソース・プランの表示」

{CDB|DBA}_CDB_RSRC_PLAN_DIRECTIVES

すべてのCDBリソース・プラン・ディレクティブに関する情報が表示されます。

『Oracle Databaseリファレンス』

「CDBリソース・プラン・ディレクティブの表示」

PDB_ALERTS

PDBアラートの理由の説明が示されます。

『Oracle Databaseリファレンス』

PDB_PLUG_IN_VIOLATIONS

PDBと、それが属するCDB間の非互換性に関する情報が表示されます。このビューは、DBMS_PDB.CHECK_PLUG_COMPATIBILITYを実行して生成される情報を表示するためにも使用されます。

『Oracle Databaseリファレンス』

「切断されたPDBの接続」

{USER|ALL|DBA|CDB}_OBJECTS

データベース・オブジェクトに関する情報が表示され、SHARING列に、データベース・オブジェクトがメタデータ・リンク・オブジェクト、データ・リンク・オブジェクト、拡張データ・リンク・オブジェクト、または別のオブジェクトにリンクされていないスタンドアロン・オブジェクトのいずれであるかが示されます。

『Oracle Databaseリファレンス』

{ALL|DBA|CDB}_SERVICES

データベース・サービスに関する情報が表示され、PDB列に、各サービスに関連付けられているPDBの名前が示されます。

『Oracle Databaseリファレンス』

{USER|ALL|DBA|CDB}_VIEWS

{USER|ALL|DBA|CDB}_TABLES

CONTAINER_DATA列に、ビューまたは表がコンテナ・データ・オブジェクトであるかどうかが示されます。

『Oracle Databaseリファレンス』

{USER|ALL|DBA|CDB}_USERS

COMMON列に、ユーザーが共通ユーザーであるかローカル・ユーザーであるかが示されます。

『Oracle Databaseリファレンス』

{USER|ALL|DBA|CDB}_ROLES

{USER|ALL|DBA|CDB}_COL_PRIVS

{USER|ALL}_COL_PRIVS_MADE

{USER|ALL}_COL_PRIVS_RECD

{USER|ALL}_TAB_PRIVS_MADE

{USER|ALL}_TAB_PRIVS_RECD

{USER|DBA|CDB}_SYS_PRIVS

{USER|DBA|CDB}_ROLE_PRIVS

ROLE_TAB_PRIVS

ROLE_SYS_PRIVS

COMMON列に、ロールまたは権限が共通に付与されているか、またはローカルに付与されているかが示されます。

『Oracle Databaseリファレンス』

{USER|ALL|DBA|CDB}_ARGUMENTS

{USER|ALL|DBA|CDB}_CLUSTERS

{USER|ALL|DBA|CDB}_CONSTRAINTS

{ALL|DBA|CDB}_DIRECTORIES

{USER|ALL|DBA|CDB}_IDENTIFIERS

{USER|ALL|DBA|CDB}_LIBRARIES

{USER|ALL|DBA|CDB}_PROCEDURES

{USER|ALL|DBA|CDB}_SOURCE

{USER|ALL|DBA|CDB}_SYNONYMS

{USER|ALL|DBA|CDB}_VIEWS

ORIGIN_CON_ID列は、行の元のコンテナIDを示します。

『Oracle Databaseリファレンス』

[G]V$DATABASE

制御ファイルからの、データベースに関する情報が表示されます。データベースがCDBである場合は、CDB関連の情報が含まれます。

「データベースがCDBであるかどうかの判断」

『Oracle Databaseリファレンス』

[G]V$CONTAINERS

ルートおよびすべてのPDBを含む、現在のCDBに関連付けられているコンテナに関する情報が表示されます。

「CDB内のコンテナに関する情報の表示」

『Oracle Databaseリファレンス』

[G]V$PDBS

各PDBのオープン・モードなど、現在のCDBに関連付けられているPDBに関する情報が表示されます。

「各PDBのオープン・モードの表示」

『Oracle Databaseリファレンス』

[G]V$PDB_INCARNATION

すべてのPDBインカネーションに関する情報を示します。RESETLOGSオプションを指定してPDBをオープンすると、新規のPDBインカネーションが作成されます。

『Oracle Databaseリファレンス』

[G]V$SYSTEM_PARAMETER

[G]V$PARAMETER

初期化パラメータに関する情報が表示され、ISPDB_MODIFIABLE列にPDBのパラメータを変更できるかどうかが示されます。

「PDBの変更可能な初期化パラメータをリスト」

『Oracle Databaseリファレンス』

V$DIAG_ALERT_EXT

[G]V$DIAG_APP_TRACE_FILE

[G]V$DIAG_OPT_TRACE_RECORDS

V$DIAG_SESS_OPT_TRACE_RECORDS

V$DIAG_SESS_SQL_TRACE_RECORDS

[G]V$DIAG_SQL_TRACE_RECORDS

[G]V$DIAG_TRACE_FILE

[G]V$DIAG_TRACE_FILE_CONTENTS

CDBの現在のコンテナのトレース・ファイルおよびアラート・ファイルのデータを表示します。

Oracle Database SQLチューニング・ガイド

V$DIAG_INCIDENT

V$DIAG_PROBLEM

CDB内の現在のコンテナの問題およびインシデントに関する情報を表示します。

『Oracle Databaseリファレンス』

データベースがCDBであるかどうかの判断

V$DATABASEビューのCDB列を問い合せて、データベースがCDBであるか非CDBであるかを判断できます。CDB列は、現在のデータベースがCDBの場合はYESを返し、現在のデータベースが非CDBの場合はNOを返します。

データベースがCDBであるかどうかを判断するには:

  1. SQL*Plusで、管理ユーザーとしてデータベースに接続します。

  2. V$DATABASEビューを問い合せます。

例19-1 データベースがCDBであるかどうかの判断

SELECT CDB FROM V$DATABASE;

出力例:

CDB
---
YES

CDB内のコンテナに関する情報の表示

V$CONTAINERSビューは、ルートおよびすべてのPDBを含む、CDB内のすべてのコンテナに関する情報を提供します。

この情報を表示するには、現在のコンテナがルートである共通ユーザーが問合せを実行する必要があります。現在のコンテナがPDBである場合、このビューには現在のPDBに関する情報のみが表示されます。

CDB内のコンテナに関する情報を表示するには:

  1. SQL*Plusで、現在のコンテナがルートであることを確認します。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. V$CONTAINERSビューを問い合せます。

例19-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

PDBに関する情報の表示

CDB_PDBSビューおよびDBA_PDBSビューは、各PDBのステータスなど、CDBに関連付けられたPDBに関する情報を提供します。

この情報を表示するには、現在のコンテナがルートである共通ユーザーが問合せを実行する必要があります。現在のコンテナがPDBである場合は、これらのビューに対するすべての問合せで結果が返されません。

PDBに関する情報を表示するには:

  1. SQL*Plusで、現在のコンテナがルートであることを確認します。

    「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。

  2. CDB_PDBSまたはDBA_PDBSビューを問い合せます。

例19-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

各PDBのオープン・モードの表示

V$PDBSビューは、現在のデータベース・インスタンスに関連付けられたPDBに関する情報を提供します。

このビューを問い合せて、各PDBのオープン・モードを判断します。オープンしている各PDBについて、このビューでは、PDBが最後にオープンされたかのがいつであるかを表示することもできます。共通ユーザーは、現在のコンテナがルートまたはPDBである場合にこのビューを問い合せることができます。現在のコンテナがPDBである場合、このビューには現在のPDBに関する情報のみが表示されます。

各PDBのオープン・ステータスを表示するには:

  1. SQL*Plusでコンテナにアクセスします。

    「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。

  2. V$PDBSビューを問い合せます。

例19-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_ビューはコンテナ・データ・オブジェクトです。コンテナ・データ・オブジェクトの詳細は、「現在のコンテナがCDBルートである場合の情報の表示について」および『Oracle Databaseセキュリティ・ガイド』を参照してください。

各コンテナ・データ・オブジェクトには、問合せ結果内の各PDBのコンテナIDが表示されたCON_ID列が含まれています。DBA_PDBSビューを問い合せて、コンテナIDのPDB名を表示できます。

コンテナ・データ・オブジェクトを使用して複数のPDBに関する情報を表示するには:

  1. SQL*Plusで、現在のコンテナがルートであることを確認します。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. コンテナ・データ・オブジェクトを問い合せて、目的の情報を表示します。

ノート:

問合せにコンテナ・データ・オブジェクトおよび非コンテナ・データ・オブジェクトの結合が含まれ、現在のコンテナがルートである場合、問合せはCDB全体のデータのみを返します(CON_ID = 0)。

例19-5 複数のPDBの特定のスキーマが所有する表の表示

この例では、ルートからDBA_PDBSビューおよびCDB_TABLESビューを問い合せて、CDBに関連付けられているPDBのhrユーザーおよびoeユーザーが所有する表を表示します。この問合せは、PDBのIDが2より大きい(p.PDB_ID > 2)行のみを返すことで、CDBルートおよびPDBシードのユーザーを表示しないようにしています。

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 hrpdbhrスキーマの表があり、PDB salespdboeスキーマの表があることを示しています。

例19-6 複数のPDBのユーザーの表示

この例では、ルートからDBA_PDBSビューおよびCDB_USERSビューを問い合せて、各PDBのユーザーを表示します。この問合せでは、p.PDB_ID > 2を使用して、CDBルートおよびPDBシードのユーザーを表示しないようにしています。

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

例19-7 CDB内の各PDBのデータファイルの表示

この例では、DBA_PDBSおよびCDB_DATA_FILESビューを問い合せて、PDBシードなど、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

例19-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

例19-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

CONTAINERS句を使用したコンテナ間の問合せ

CONTAINERS句を使用すると、CDB内のすべてのコンテナ間で表およびビューを問い合せることができます。アプリケーション・コンテナ内のすべてのコンテナでアプリケーション共通オブジェクトを問い合せることもできます。

この項では、次の項目について説明します。

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提供のタイプ: ANYTYPEANYDATASET、URIタイプ、SDO_TOPO_GEOMETRYSDO_GEORASTERおよびExpression

ノート:

  • コンテナが制限モードでオープンされている場合は、CONTAINERS句で無視されます。

  • CONTAINERS句が使用され、エラーがコンテナで戻される場合、問合せではエラーが発生したコンテナから結果を戻さず、エラーは戻りません。たとえば、ローカル変数にリモート表からのBFILE列は選択できません。これを実行する問合せがCONTAINERS句を使用し、ローカルおよびリモート・コンテナを含む場合、問合せはローカル・コンテナの結果を戻しますが、リモート・コンテナは戻さず、エラーは戻りません。

関連項目:

すべてのコンテナ間でのユーザーが作成した表およびビューの問合せ

CONTAINERS句を使用すると、すべてのコンテナ間でユーザーが作成した表およびビューを問い合せることができます。この句により、CDB内のすべてのオープンPDBに存在する表またはビューのデータを表示するために、CDBルートからの問合せが可能になります。

前提条件

CONTAINERS句に指定した表およびビュー、またはそのシノニムは、CDBルートおよび他のすべてのコンテナに存在する必要があります。

CONTAINERS句を使用してすべてのコンテナ間で表およびビューを問い合せるには:

  1. SQL*Plusでコンテナにアクセスします。

    複数のコンテナのデータを表示する場合は、現在のコンテナがCDBルートであることを確認します。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. CONTAINERS句を含む問合せを実行します。

例19-10 すべてのコンテナ間での共通ユーザーが所有する表の問合せ

この例では、次のことを想定しています。

  • 組織に複数のPDBがあり、各PDBは組織内のそれぞれ異なる部門のものです。

  • 各PDBには、部門の従業員を追跡管理するemployees表がありますが、各PDBの表には別個の従業員が含まれます。

  • また、CDBルートには空のemployees表があります。

  • 各コンテナのemployees表は、同じ共通ユーザーが所有します。

CDBルートを現在のコンテナとし、表を所有する共通ユーザーを現行ユーザーとして、CONTAINERS句を指定した次の問合せを実行し、すべてのPDBのemployees表の全従業員を返します。

SELECT * FROM CONTAINERS(employees);

例19-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_ID3および4のコンテナのビューを問い合せます。

SELECT * FROM CONTAINERS(employees) WHERE CON_ID IN(3,4);

ノート:

CONTAINERS句を使用してオラクル社提供の表およびビューを問い合せることもできます。この問合せを実行する際、現行ユーザーが表またはビューの所有者であることを確認するか、CONTAINERS句を使用してビューを作成し、そのビューに対するSELECT権限を適切なユーザーに付与します。

関連項目:

アプリケーションPDB間のアプリケーション共通オブジェクトの問合せ

CONTAINERS句では、アプリケーション・コンテナ内のすべてのPDBでアプリケーション共通オブジェクトを問い合せることができます。アプリケーション・ルートからの問合せによって、コンテナ内のオープンしているすべてのPDBに存在するオブジェクトのデータが表示されます。

CONTAINERS句は、メタデータリンク・アプリケーション共通オブジェクトに最も役立ちます。メタデータリンク・アプリケーション共通オブジェクトでは、構造はアプリケーション・コンテナのすべてのコンテナで同じですが、データは異なります。CONTAINERS句を使用して、複数のアプリケーションPDB内のメタデータリンク・アプリケーション共通オブジェクトのデータを表示できます。拡張データリンク・オブジェクトについてのメリットも同様です。CONTAINERS句は、パラレル実行を使用して、アプリケーション・ルートでホストされる各アプリケーションPDB間で問合せを実行します。

CONTAINERS句を使用してすべてのアプリケーションPDB間で表およびビューを問い合せるには:

  1. SQL*Plusで、アプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. CONTAINERS句を含む問合せを実行します。

ノート:

アプリケーション・ルートの表またはビューに対してCONTAINERS_DEFAULT属性を有効にできます。この属性が有効になっている場合、CONTAINERS句はデフォルトでデータベース・オブジェクトに対する問合せおよびDML文に使用され、SQL文にCONTAINERS句は必要ありません。アプリケーション・ルートの表またはビューに対してCONTAINERS_DEFAULT属性を有効にするには、ENABLE CONTAINERS_DEFAULT句を指定したALTER VIEWまたはCREATE OR REPLACE VIEW文を実行します。

例19-12 すべてのアプリケーションPDBでのアプリケーション共通オブジェクトの問合せ

この例では、次のことを想定しています。

  • 組織に複数のアプリケーションPDBがあり、各アプリケーションPDBは組織内のそれぞれ異なる部門のものです。

  • 各アプリケーションPDBには、部門の従業員を追跡管理するemployees表がありますが、各アプリケーションPDBの表には別個の従業員が含まれます。

  • また、アプリケーション・ルートには空のemployees表があります。

  • 各コンテナのemployees表は、同じ共通ユーザーが所有します。

  • 会社には、アプリケーション・コンテナ内のアプリケーションを使用する複数のテナントがあり、各テナントに固有のアプリケーションPDBがあります。

  • 会社は、メタデータリンク・アプリケーション共通オブジェクトを使用して、すべてのアプリケーションPDB内で同じデータの構造を維持しますが、データはアプリケーションPDBごとに異なります。

  • 各アプリケーションPDBには、各テナントの顧客に関する情報を格納するメタデータリンクsales.customers表があります。

アプリケーション・ルートを現在のコンテナとし、表を所有するアプリケーション共通ユーザーを現行ユーザーとして、CONTAINERS句を指定した次の問合せを実行し、すべてのアプリケーションPDBのsales.customers表の全顧客を返します。

SELECT * FROM CONTAINERS(sales.customers);

関連項目:

現在のコンテナのIDまたは名前の判別

CDB内の現在のコンテナIDまたはコンテナ名を判別できます。

現在のコンテナIDを判別するには:

  • 次のSQL*Plusコマンドを実行します。

    SHOW CON_ID
    

現在のコンテナ名を判別するには:

  • 次のSQL*Plusコマンドを実行します。

    SHOW CON_NAME
    

また、表19-3に示されているファンクションを使用して、コンテナのコンテナID、コンテナ名およびDBIDを判別することもできます。

表19-3 コンテナ情報を返すファンクション

ファンクション 説明

CON_NAME_TO_ID('container_name')

コンテナの名前に基づいてコンテナIDを返します。

CON_DBID_TO_ID(container_dbid)

コンテナのDBIDに基づいてコンテナIDを返します。

CON_UID_TO_ID(container_uid)

コンテナの一意識別子(UID)に基づいてコンテナIDを返します。

CON_GUID_TO_ID(container_guid)

コンテナのグローバル一意識別子(GUID)に基づいてコンテナIDを返します。

CON_ID_TO_CON_NAME(container_id)

コンテナIDに基づいてコンテナの名前を返します。

CON_ID_TO_DBID(container_id)

コンテナIDに基づいてコンテナのDBIDを返します。

V$CONTAINERSビューには、CDB内の各コンテナの名前、DBID、UIDおよびGUIDが表示されます。

例19-13 コンテナの名前に基づいたコンテナIDの戻し

SELECT CON_NAME_TO_ID('HRPDB') FROM DUAL;

例19-14 コンテナDBIDに基づいたコンテナIDの戻し

SELECT CON_DBID_TO_ID(2226957846) FROM DUAL;

例19-15 コンテナIDに基づいたコンテナの名前の戻し

SELECT CON_ID_TO_CON_NAME(4) FROM DUAL;

PDBの変更可能な初期化パラメータをリスト

CDBでは、一部の初期化パラメータがルートおよびすべてのPDBに適用されます。このような初期化パラメータが変更されると、CDB全体に影響を与えます。他の初期化パラメータは、各コンテナで異なる値に設定できます。

たとえば、1つのパラメータについて、ルートで1つの値を設定し、あるPDBで別の値を設定し、2番目のPDBではさらに別の値を設定できます。

この項で示す問合せによって、各PDBで個別に設定できる初期化パラメータがリストされます。

各コンテナで変更可能な初期化パラメータをリストするには:

  1. SQL*Plusでコンテナにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. 次の問合せを実行します。

    SELECT NAME FROM V$SYSTEM_PARAMETER
      WHERE ISPDB_MODIFIABLE = 'TRUE'
      ORDER BY NAME;
    

この問合せでリストされた初期化パラメータがPDBに個別に設定されていない場合、PDBではルートのパラメータ値が継承されます。

PDBの履歴の表示

CDB_PDB_HISTORYビューには、CDB内のPDBの履歴が表示されます。各PDBがいつどのように作成されたかに関する情報、および各PDBの履歴に関するその他の情報を提供します。

各PDBの履歴を表示するには:

  1. SQL*Plusで、現在のコンテナがルートであることを確認します。

    「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。

  2. CDB_PDB_HISTORYビューを問い合せます。

例19-16 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の履歴を表示できます。

アプリケーション・コンテナ内のアプリケーションに関する情報の表示

複数のビューが、CDB内のアプリケーション・コンテナ内のアプリケーションに関する情報を提供します。

この項では、次の項目について説明します。

アプリケーションに関する情報の表示

DBA_APPLICATIONSビューは、アプリケーション・コンテナ内のアプリケーションに関する情報を提供します。

ノート:

DBA_APPLICATIONSビューは、現在のコンテナのみのアプリケーションに関する情報を提供します。現在のアプリケーション・コンテナ内のすべてのアプリケーションPDB内のアプリケーションに関する情報を表示するには、アプリケーション・ルートが現在のコンテナであるときに、DBA_APP_PDB_STATUSに問い合せます。

アプリケーション・コンテナ内のアプリケーションに関する情報を提供するには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

  2. DBA_APPLICATIONSビューを問い合せます。

例19-17 アプリケーション・コンテナのアプリケーションに関する詳細の表示

この問合せは、アプリケーション・コンテナ内のユーザーが作成した各アプリケーションの名前、最新バージョンおよびステータスを表示します。

COLUMN APP_NAME FORMAT A15
COLUMN APP_VERSION FORMAT A15
COLUMN APP_STATUS FORMAT A15
 
SELECT APP_NAME, APP_VERSION, APP_STATUS
FROM   DBA_APPLICATIONS
WHERE  APP_IMPLICIT='N';

次のサンプル出力は、salesappアプリケーションを示しています。

APP_NAME        APP_VERSION     APP_STATUS
--------------- --------------- ---------------
SALESAPP        1.2             NORMAL

ノート:

Oracle Databaseは、アプリケーション共通ユーザー操作がALTER PLUGGABLE DATABASE APPLICATION BEGIN/END文の外部のCONTAINER=ALL句で発行されたときにいくつかのアプリケーションを暗黙的に作成します。サンプル問合せでは、WHERE句にAPP_IMPLICIT='N'を指定することで暗黙的に作成されたアプリケーションが除外されます。

アプリケーション・ステータスに関する情報の表示

DBA_APP_PDB_STATUSビューは、アプリケーション・コンテナ内のアプリケーションのステータスに関する情報を提供します。各アプリケーションPDB内の各アプリケーションのステータスを表示できます。

このビューは、アプリケーションPDBがクローズされている場合でも、アプリケーションPDB内のアプリケーションのステータスを表示できます。

ノート:

アプリケーション・ルートから問い合せた場合、DBA_APP_PDB_STATUSビューは現在のアプリケーション・コンテナ内のすべてのアプリケーションPDB内のアプリケーションに関する情報を提供します。現在のコンテナのアプリケーションに関する情報のみを表示するには、DBA_APPLICATIONSビューを問い合せます。

アプリケーション・コンテナ内のアプリケーション・ステータスに関する情報を表示するには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_APP_PDB_STATUSビューを問い合せます。

例19-18 アプリケーション・ステータスに関する情報の表示

この問合せは、アプリケーション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がアプリケーションをアップグレードしようとしたときにエラーが発生したことを示している可能性があります。

アプリケーション文に関する情報の表示

DBA_APP_STATEMENTSビューは、アプリケーションのインストール、アップグレードおよびパッチ操作中に発行されたSQL文に関する情報を提供します

Oracle Databaseでは、アプリケーションのインストール、アップグレードおよびパッチ操作中に発行されたすべてのSQL文が記録され、DBA_APP_STATEMENTSビューを問い合せることでこれらの文の履歴を表示できます。

アプリケーション操作中に発行されたSQL文に関する情報を表示するには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_APP_STATEMENTSビューを問い合せます。

例19-19 アプリケーション文に関する情報の表示

この問合せは、アプリケーション・コンテナ内のアプリケーションに対する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$で開始し、サンプル出力はこれらのアプリケーションを表示します。

アプリケーション・バージョンに関する情報の表示

DBA_APP_VERSIONSビューは、アプリケーション・コンテナ内のアプリケーションのバージョンに関する情報を提供します。

Oracle Databaseは、アプリケーション・コンテナ内の各アプリケーションのバージョンを記録します。

アプリケーション・コンテナ内のアプリケーション・バージョンに関する情報を表示するには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_APP_VERSIONSビューを問い合せます。

例19-20 アプリケーション・バージョンに関する情報の表示

この問合せは、バージョン化されているアプリケーションの名前、バージョン番号およびバージョンのコメントを表示します。

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

アプリケーション・パッチに関する情報の表示

DBA_APP_PATCHESビューは、アプリケーション・コンテナ内のアプリケーション・パッチに関する情報を提供します。

Oracle Databaseは、アプリケーション・コンテナ内の各アプリケーションのパッチを記録します。

アプリケーション・コンテナ内のアプリケーション・パッチに関する情報を表示するには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_APP_PATCHESビューを問い合せます。

例19-21 アプリケーション・パッチに関する情報の表示

この問合せは、アプリケーション・コンテナ内の各パッチについて、パッチが適用されたアプリケーションの名前、パッチ番号、パッチの最小アプリケーション・バージョンおよびパッチのステータスを表示します。

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

アプリケーション・エラーに関する情報の表示

DBA_APP_ERRORSビューは、アプリケーションPDBがアプリケーション・ルート内のアプリケーションと同期する際に発生した情報エラーを提供します。

アプリケーションPDBは、SYNC句を指定したALTER PLUGGABLE DATABASE APPLICATION文を発行します。DBA_APP_ERRORSビューを問い合せることで、アプリケーション同期中のアプリケーション・エラーの履歴を表示できます。

アプリケーションの同期中に発生したエラーに関する情報を表示するには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_APP_ERRORSビューを問い合せます。

例19-22 アプリケーション同期中に発生したエラーに関する詳細の表示

この問合せは、アプリケーション同期中に発生したエラーについて、アプリケーション名、エラーを生成した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;

アプリケーション・コンテナ内の共有データベース・オブジェクトのリスト

DBA_OBJECTSビューは、アプリケーション・コンテナ内の共有データベース・オブジェクトをリストできます。

共有データベース・オブジェクトは、メタデータリンク・アプリケーション共通オブジェクト、データリンク・アプリケーション共通オブジェクトおよび拡張データリンク・アプリケーション共通オブジェクトです。

アプリケーション・コンテナ内の共有データベース・オブジェクトをリストするには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_OBJECTSビューを問い合せ、SHARING列を指定します。

例19-23 アプリケーション・コンテナ内のユーザーが作成した共有データベース・オブジェクトのリスト

この問合せは、アプリケーション・コンテナ内のユーザーが作成した共有データベース・オブジェクトの所有者と名前を表示します。各共有データベース・オブジェクトがメタデータリンク・アプリケーション共通オブジェクトとデータリンク・アプリケーション共通オブジェクトのぢちらであるかも表示します。問合せでは、オラクル社が提供する共有データベース・オブジェクトは除外されます。

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

アプリケーション・コンテナ内の拡張データリンク・オブジェクトのリスト

DBA_TABLESおよびDBA_VIEWSビューは、アプリケーション・コンテナ内の拡張データリンク・オブジェクトをリストできます。

拡張データリンク・オブジェクトは、各アプリケーションPDBがアプリケーション・ルートの共通データを共有しながら特定の独自データを作成できる特殊なタイプのデータリンク・オブジェクトです。アプリケーション・ルートに格納されるデータのみがすべてのアプリケーションPDBに共通です

アプリケーション・コンテナ内の拡張データリンク・オブジェクトをリストするには:

  1. SQL*Plusで、アプリケーション・コンテナのアプリケーション・ルートにアクセスします。

    「CDB内のコンテナへのアクセスについて」を参照してください。

  2. DBA_TABLESまたはDBA_VIEWSビューを問い合せ、WHERE句にEXTENDED_DATA_LINK='YES'を指定します。

例19-24 アプリケーション・コンテナ内の拡張データリンク表の表示

この問合せは、アプリケーション・コンテナ内の拡張データリンク表の所有者と名前を表示します。

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