116 DBMS_PDB
DBMS_PDB
パッケージは、マルチテナント・コンテナ・データベース(CDB)でプラガブル・データベース(PDB)に関するデータを調査および操作するためのインタフェースを提供します。また、どのデータベース・オブジェクトがアプリケーション共通オブジェクトであるかを指定するインタフェースも含まれています。PDBはCDB間で移行できます。移行が完了すると、移行前のPDBのすべてのバックアップが移行先のCDB内で使用できます。
参照:
-
PDBおよびCDBの作成と管理の詳細は、『Oracle Database管理者ガイド』を参照してください。
-
プロトコル・ポートとDNSマッピングの構成については、『Oracle XML DB開発者ガイド』を参照してください。
-
PDBの作成の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
-
マルチテナント環境内に監査ポリシーを作成する方法については、『Oracle Databaseセキュリティ・ガイド』を参照してください。
この章のトピックは、次のとおりです:
116.1 DBMS_PDBの概要
マルチテナント・コンテナ・データベース(CDB)は、0、1または多数のユーザー作成のプラガブル・データベース(PDB)を含むOracleのデータベースです。DBMS_PDB
パッケージは、プラガブル・データベース(PDB)に関するデータを調査および操作するためのインタフェースを提供します。このパッケージのサブプログラムでは、アプリケーション・コンテナで、データベース・オブジェクトをデータリンク・オブジェクト、拡張データリンク・オブジェクトまたはメタデータリンク・オブジェクトのいずれかのタイプのアプリケーション共通オブジェクトに設定することもできます。
データリンク・アプリケーション共通オブジェクトは、アプリケーション・コンテナ内のすべてのアプリケーションPDBによってアクセスおよび変更できるアプリケーション・ルートにデータを格納します。拡張データリンク・オブジェクトの場合、各アプリケーションPDBは、アプリケーション・ルートの共通データを共有しながら特定の独自データを作成できます。したがって、拡張データリンク・オブジェクトの場合、アプリケーション・ルートに格納されたデータのみがすべてのアプリケーションPDBで共通のデータとなります。メタデータリンク・アプリケーション共通オブジェクトは、表などの特定のオブジェクトのメタデータをアプリケーション・ルートに格納するため、アプリケーション・コンテナ内のコンテナは同じオブジェクト構造を持ちますが、データは異なります。このパッケージには、データベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定するプロシージャも含まれます。
通常、このパッケージのサブプログラムは次の場合に使用されます。
-
PDBにインストールされたアプリケーションがアプリケーション・コンテナに移行される場合。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。
-
アプリケーション共通オブジェクトを設定できないインストール・プログラムを使用して、アプリケーションがアプリケーション・ルートにインストールされている場合。
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3 DBMS_PDBサブプログラムの要約
この表は、DBMS_PDB
パッケージのサブプログラムについて説明しています。
表116-1 DBMS_PDBパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
プラガブル・データベース(PDB)について記述されたXMLファイルを使用して、特定のマルチテナント・コンテナ・データベース(CDB).に接続可能かどうかを判別します。 |
|
指定したプラガブル・データベース(PDB).が記述されたXMLファイルを生成します。 |
|
非CDBをPDBとして移行する場合にのみコールする必要があります。このプロシージャは、非CDBデータベースで実行する必要があります。PDBを再配置する場合は、アンプラグイン中に自動的にコールされます。 |
|
プラガブル・データベース(PDB).に属するデータファイルを使用することで、プラガブル・データベースについて記述されたXMLファイルを生成します。 |
|
データベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定します。 |
|
データベース・オブジェクトをデータリンク・アプリケーション共通オブジェクトに設定します。 |
|
データベース・オブジェクトを拡張データリンク・アプリケーション共通オブジェクトに設定します。 |
|
データベース・オブジェクトをメタデータリンク・アプリケーション共通オブジェクトに設定します。 |
|
アプリケーション・コンテナでプロファイルをアプリケーション共通プロファイルとして設定します。 |
|
アプリケーション・コンテナでロールをアプリケーション共通ロールとして設定します。 |
|
このプロシージャは、アプリケーション・コンテナでローカル・ユーザーをアプリケーション共通ユーザーとして設定します。 |
116.3.1 CHECK_PLUG_COMPATIBILITYファンクション
このファンクションは、プラガブル・データベース(PDB)について記述されたXMLファイルを使用して、そのPDBを特定のマルチテナント・コンテナ・データベース(CDB)に接続できるかどうかを調べます。
構文
DBMS_PDB.CHECK_PLUG_COMPATIBILITY ( pdb_descr_file IN VARCHAR2, pdb_name IN VARCHAR2 DEFAULT NULL) RETURN BOOLEAN;
パラメータ
表116-2 CHECK_PLUG_COMPATIBILITYプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
PDBの記述を含むXMLファイルのパスです。 |
|
特定のCDBに接続された際に、 |
戻り値
pdb_descr_file
で説明されるPDBが特定のCDBと互換性がある場合はTRUE
で、それ以外の場合はFALSE
です。このファンクションがFALSE
を戻す場合は、PDB_PLUG_IN_VIOLATIONS
データ・ディクショナリ・ビューを問い合わせて、検出されたエラーに関する情報を見つけてください。
参照:
PDB_PLUG_IN_VIOLATIONS
ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
116.3.2 DESCRIBEプロシージャ
このプロシージャは、指定したプラガブル・データベース(PDB)が記述されたXMLファイルを生成します。このファイルをCHECK_PLUG_COMPATIBILITYファンクションに渡すと、XMLファイルに記述されたPDBを特定のマルチテナント・コンテナ・データベース(CDB)に接続できるかどうかを特定できます。
構文
DBMS_PDB.DESCRIBE ( pdb_descr_file IN VARCHAR2, pdb_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表116-3 DESCRIBEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
PDBの記述を含むXMLファイルのパスです。 |
|
記述するPDBの名前です。リモート・データベースは |
使用上のノート
-
pdb_name
が省略された場合、セッションの接続先となるPDBが記述されます。 -
pdb_name
が省略され、セッションがルートに接続された場合、エラーが戻されます。
116.3.3 EXPORTRMANBACKUPプロシージャ
このプロシージャは、事前プラグイン・バックアップを使用できるように、アンプラグする前にプラガブル・データベースに属するRMANバックアップ情報を、そのディクショナリにエクスポートします。このプロシージャをコールする必要があるのは、非CDBをPDBに移行する場合のみです。PDBを再配置する場合は、このプロシージャをコールする必要はありません。
構文
DBMS_PDB.EXPORTRMANBACKUP ( pdb_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表116-4 EXPORTRMANBACKUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
バックアップ情報をエクスポートする必要があるプラガブル・データベースの名前。 プラガブル・データベースまたは非CDBに接続している場合は、このパラメータを省略します。 |
使用上のノート
-
PDBが
read/write
モードでオープンしている必要があります。 -
データベースが非CDBの場合は、
pdb_name
を省略する必要があります。 -
pdb_name
が省略された場合、セッションが接続されているプラガブル・データベースがエクスポートされます。 -
pdb_name
が省略され、セッションがroot
に接続された場合、エラーが戻されます。
116.3.4 RECOVERプロシージャ
このプロシージャは、プラガブル・データベースに属するデータファイルを使用することで、プラガブル・データベースについて説明するXMLファイルを生成します。これにより、このXMLファイルを使用して、CREATE PLUGGABLE DATABASE
文を使用してプラガブル・データベースをマルチテナント・コンテナ・データベース(CDB)にプラグできます。
このプロシージャは、プラガブル・データベースを示すXMLファイルが破損または欠落している場合に使用します。
構文
DBMS_PDB.RECOVER ( pdb_descr_file IN VARCHAR2, pdb_name IN VARCHAR2, filenames IN VARCHAR2);
パラメータ
表116-5 RECOVERプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
プラガブル・データベースの説明を含むXMLファイルのパスです。 |
|
プラガブル・データベースの名前です。 |
|
データファイル・パスのカンマ区切りリストまたはプラガブル・データベースのデータファイルを含むディレクトリ、あるいはその両方。 |
116.3.5 REMOVE_LINKプロシージャ
このプロシージャは、データベース・オブジェクトがアプリケーション共通オブジェクトではないことを指定します。アプリケーション・コンテナ内で、アプリケーション共通オブジェクトは複数のコンテナ間で共有されます。
構文
DBMS_PDB.REMOVE_LINK ( schema_name IN VARCHAR2, object_name IN VARCHAR2, namespace IN NUMBER, edition_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表116-6 REMOVE_LINKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
データベース・オブジェクトを所有するスキーマの名前。 |
|
データベース・オブジェクトの名前。 |
|
データベース・オブジェクトのネームスペース。
|
|
データベース・オブジェクトのエディションの名前。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3.6 SET_DATA_LINKEDプロシージャ
このプロシージャは、データベース・オブジェクトをデータリンク・アプリケーション共通オブジェクトに設定します。アプリケーション・コンテナ内で、データリンク・アプリケーション共通オブジェクトはアプリケーション・ルートのみにデータを格納し、格納されたデータにはそのアプリケーション・コンテナ内のすべてのアプリケーションPDBからアクセスできます。データリンク・アプリケーション共通オブジェクトのデータは、アプリケーション・ルートでのみ変更できます。
このプロシージャを使用して、PDBにインストールされているアプリケーションをアプリケーション・コンテナに移行するときに、データリンク・アプリケーション共通オブジェクトを設定できます。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。
構文
DBMS_PDB.SET_DATA_LINKED ( schema_name IN VARCHAR2, object_name IN VARCHAR2, namespace IN NUMBER, edition_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表116-7 SET_DATA_LINKEDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
データベース・オブジェクトを所有するスキーマの名前。 |
|
データベース・オブジェクトの名前。 |
|
データベース・オブジェクトのネームスペース。
|
|
データベース・オブジェクトのエディションの名前。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3.7 SET_EXT_DATA_LINKEDプロシージャ
このプロシージャは、データベース・オブジェクトを拡張データリンク・アプリケーション共通オブジェクトに設定します。拡張データリンク・オブジェクトの場合、アプリケーション・コンテナ内の各アプリケーションPDBは、アプリケーション・ルートの共通データを共有しながら特定の独自データを作成できます。したがって、アプリケーション・ルートに格納されるデータのみがすべてのアプリケーションPDBに共通です。
このプロシージャを使用して、PDBにインストールされているアプリケーションをアプリケーション・コンテナに移行するときに、拡張データリンク・アプリケーション共通オブジェクトを設定できます。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。
構文
DBMS_PDB.SET_EXT_DATA_LINKED ( schema_name IN VARCHAR2, object_name IN VARCHAR2, namespace IN NUMBER, edition_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表116-8 SET_EXT_DATA_LINKEDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
データベース・オブジェクトを所有するスキーマの名前。 |
|
データベース・オブジェクトの名前。 |
|
データベース・オブジェクトのネームスペース。
|
|
データベース・オブジェクトのエディションの名前。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3.8 SET_METADATA_LINKEDプロシージャ
このプロシージャは、データベース・オブジェクトをメタデータリンク・アプリケーション共通オブジェクトに設定します。アプリケーション・コンテナ内で、メタデータリンク・アプリケーション共通オブジェクトは、表などの特定のオブジェクトのメタデータを格納するため、アプリケーション共通オブジェクトを共有するコンテナは同じ構造を持ちますが、データは異なります。
このプロシージャを使用して、PDBにインストールされているアプリケーションをアプリケーション・コンテナに移行するときに、メタデータリンク・アプリケーション共通オブジェクトを設定できます。アプリケーションは、アプリケーション・ルートまたはアプリケーションPDBに移行できます。たとえば、Oracle Database 12cリリース1 (12.1) CDBに接続中のPDBにインストールされているアプリケーションを、Oracle Database 12cリリース2 (12.2) CDBのアプリケーション・コンテナに移行できます。
構文
DBMS_PDB.SET_METADATA_LINKED ( schema_name IN VARCHAR2, object_name IN VARCHAR2, namespace IN NUMBER, edition_name IN VARCHAR2 DEFAULT NULL);
パラメータ
表116-9 SET_METADATA_LINKEDプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
データベース・オブジェクトを所有するスキーマの名前。 |
|
データベース・オブジェクトの名前。 |
|
データベース・オブジェクトのネームスペース。
|
|
データベース・オブジェクトのエディションの名前。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3.9 SET_PROFILE_EXPLICITプロシージャ
このプロシージャは、アプリケーション・コンテナでプロファイルをアプリケーション共通プロファイルとして設定します。このプロシージャは、以前のリリースのプロファイルを現行リリースのアプリケーション・コンテナに移行することを目的としています。
アプリケーション・ルートでアプリケーションのインストール、パッチ適用、アップグレードまたはアンインストール操作を実行するときに、このプロシージャを起動する必要があります。
構文
DBMS_PDB.SET_PROFILE_EXPLICIT ( profile_name IN VARCHAR2);
パラメータ
表116-10 SET_PROFILE_EXPLICITプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
プロファイルの名前。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3.10 SET_ROLE_EXPLICITプロシージャ
このプロシージャは、アプリケーション・コンテナでロールをアプリケーション共通ロールとして設定します。このプロシージャは、以前のリリースのロールを現行リリースのアプリケーション・コンテナに移行することを目的としています。
アプリケーション・ルートでアプリケーションのインストール、パッチ適用、アップグレードまたはアンインストール操作を実行するときに、このプロシージャを起動する必要があります。
構文
DBMS_PDB.SET_ROLE_EXPLICIT ( role_name IN VARCHAR2);
パラメータ
表116-11 SET_ROLE_EXPLICITプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ロールの名前。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。
116.3.11 SET_USER_EXPLICITプロシージャ
このプロシージャは、アプリケーション・コンテナでローカル・ユーザーをアプリケーション共通ユーザーとして設定します。
アプリケーション・ルートでアプリケーションのインストール、パッチ適用、アップグレードまたはアンインストール操作を実行するときに、このプロシージャを起動する必要があります。
構文
DBMS_PDB.SET_USER_EXPLICIT ( user_name IN VARCHAR2);
パラメータ
表116-12 SET_USER_EXPLICITプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ユーザー名。 |
参照:
アプリケーション・コンテナへのアプリケーションの移行の詳細は、『Oracle Database管理者ガイド』を参照してください。