アプリケーション・コンテナの作成
アプリケーション・コンテナは、PDBシードの使用、既存のPDBのクローニング、CREATE PLUGGABLE DATABASE
文を使用した切断されたPDBの接続など、複数の方法で作成できます。
- アプリケーション・コンテナの作成について
CREATE PLUGGABLE DATABASE ... AS APPLICATION CONTAINER
文は、新しいアプリケーション・コンテナを作成します。 - アプリケーション・コンテナの準備
アプリケーション・コンテナを作成する前に前提条件を満たす必要があります。 - アプリケーション・コンテナの作成
AS APPLICATION CONTAINER
句を指定したCREATE PLUGGABLE DATABASE
文を使用して、アプリケーション・コンテナを作成できます。
親トピック: アプリケーション・コンテナおよびシードの作成と削除
アプリケーション・コンテナの作成について
CREATE PLUGGABLE DATABASE ... AS APPLICATION CONTAINER
文は、新しいアプリケーション・コンテナを作成します。
アプリケーション・コンテナは、アプリケーション・ルートおよび1つ以上のアプリケーションのデータを格納するアプリケーションPDBのコレクションから構成されます。アプリケーションPDBはアプリケーション・ルートに接続され、オプションで新規アプリケーションPDBを素早く簡単に作成するためにアプリケーション・シードを作成できます。アプリケーションPDBとアプリケーション・ルートはアプリケーション共通オブジェクトを共有できます。
アプリケーション共通オブジェクトには3つのタイプがあります。
-
メタデータリンク・アプリケーション共通オブジェクトは、表などの特定のオブジェクトのメタデータを格納するため、アプリケーション共通オブジェクトを共有するコンテナは同じ構造を持ちますが、データは異なります。
-
データリンク・アプリケーション共通オブジェクトはアプリケーション・ルートで一度定義され、ホストされるアプリケーションPDBのコンテキストで読取り専用オブジェクトとして共有されます。
-
拡張データリンク・アプリケーション共通オブジェクトは、共有データをアプリケーション・ルートに格納しますが、アプリケーションPDBがそのオブジェクトに追加してデータを格納することも許可します。追加されるデータは、各アプリケーションPDBに固有のローカル・データです。
アプリケーション・コンテナは、CREATE PLUGGABLE DATABASE
文にAS APPLICATION CONTAINER
句を含めることで作成します。アプリケーション・コンテナを作成する次の手法を使用できます。
-
PDBシードの使用
-
既存のPDBのクローニング
-
PDBの再配置
-
切断されたPDBの接続
アプリケーション・コンテナを作成するには、現在のコンテナがCDBルートであることが必要です。また、CREATE PLUGGABLE DATABASE
文でAS APPLICATION CONTAINER
を指定する必要があります。Oracle Managed Filesを使用してアプリケーション・コンテナを作成する必要があります。
ノート:
いずれかのアプリケーションPDBがアプリケーション・コンテナに属する場合、そのアプリケーション・コンテナはアップグレードまたは削除できません。
アプリケーション・コンテナへの既存のアプリケーションの移行
既存のPDBを使用してアプリケーション・ルートを作成して、アプリケーションをアプリケーション・ルートに移行できます。既存のアプリケーションをアプリケーション・コンテナに移行している場合、追加タスクを実行する必要があります。接続するPDBには、データを含むアプリケーション・オブジェクトが含まれている必要があり、DBMS_PDB
パッケージのプロシージャを実行して、共有するオブジェクトを指定する必要があります。また、アプリケーションの共通ユーザー、ロールまたはプロファイルがアプリケーション・ルートに存在する場合は、DBMS_PDB
パッケージのプロシージャを実行して、それらが共通であることを指定する必要があります。
アプリケーションをアプリケーション・コンテナに移行した後は、アプリケーション・ルートにアプリケーションPDBを作成したり、既存のPDBを使用して、アプリケーションPDBを作成できます。
親トピック: アプリケーション・コンテナの作成
アプリケーション・コンテナの準備
アプリケーション・コンテナを作成する前に、前提条件を満たす必要があります。
-
CDBが存在していることが必要です。
-
CDBは、読取り/書込みモードである必要があります。
-
現在のユーザーは、現在のコンテナがCDBルートである共通ユーザーである必要があります。
-
現行ユーザーには
CREATE PLUGGABLE DATABASE
システム権限が必要です。 -
各アプリケーション・コンテナに対して一意のアプリケーション・コンテナ名を決定する必要があります。各アプリケーション・コンテナ名は、単一CDB内のすべてのコンテナに関して一意であり、さらに、各アプリケーション・コンテナ名は、特定のリスナーを介してアクセスされたデータベース・インスタンスのすべてのCDBのスコープ内で一意である必要があります。
アプリケーション・コンテナ名は、アプリケーション・コンテナをCDB内の他のコンテナから区別するために使用されます。アプリケーション・コンテナ名のルールは、大文字と小文字が区別されないなど、サービス名のルールと同じです。
-
Oracle Managed Filesを使用してコンテナを作成する必要があります。
-
物理スタンバイ・データベースがあるOracle Data Guard構成でアプリケーション・コンテナを作成している場合は、アプリケーション・コンテナを作成する前に追加タスクを完了する必要があります。
-
インストール・スクリプトを使用して、既存のアプリケーションをアプリケーション・コンテナに移行している場合、そのスクリプトは実行可能である必要があります。
-
PDBを使用して既存のアプリケーションをアプリケーション・コンテナに移行している場合は、PDBをアプリケーション・ルートにクローニングするか、PDBをアプリケーション・ルートに接続することを可能にする必要があります。
アプリケーション・コンテナの作成
AS APPLICATION CONTAINER
句を指定したCREATE PLUGGABLE DATABASE
文を使用して、アプリケーション・コンテナを作成できます。
例14-2 PDBシードを使用したアプリケーション・コンテナの作成
この例では、次の要因を想定しています。
-
ストレージ制限は、アプリケーション・コンテナには不要です。したがって、
STORAGE
句は必要ありません。 -
アプリケーション・コンテナにはデフォルトの表領域は必要ありません。
-
PATH_PREFIX
句は必要ありません。 -
FILE_NAME_CONVERT
句およびCREATE_FILE_DEST
句は必要ありません。CDBに対してOracle Managed Filesが有効であるか、または
PDB_FILE_NAME_CONVERT
初期化パラメータが設定されています。PDBシードに関連付けられているファイルは、Oracle Managed Files構成または初期化パラメータ設定に基づいて新しい場所にコピーされます。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。 -
Oracleの事前定義されたロールを
PDB_DBA
ロールに付与する必要はありません。
次の文では、PDBシードからアプリケーション・コンテナを作成します。
CREATE PLUGGABLE DATABASE salesact AS APPLICATION CONTAINER
ADMIN USER salesadm IDENTIFIED BY password;
例14-3 ローカルPDBのクローニングによるアプリケーション・コンテナの作成
この例では、次の要因を想定しています。
-
PATH_PREFIX
句は必要ありません。 -
コピーしたファイルのターゲットの場所を指定するには、
FILE_NAME_CONVERT
句が必要です。この例では、ファイルが/disk1/oracle/pdb1/から/disk2/oracle/hract/
にコピーされます。CREATE_FILE_DEST
句は使用されず、Oracle Managed FilesもPDB_FILE_NAME_CONVERT
初期化パラメータも、コピーしたファイルのターゲットの場所の指定に使用されません。PDBのデータファイルの場所を表示するには、「例15-34」の問合せを実行します。
-
アプリケーション・ルートに対してストレージ制限を適用する必要があります。したがって、
STORAGE
句が必要です。特に、アプリケーション・ルートに属するすべての表領域が2GBを超えていない必要があります。このストレージ制限は、アプリケーション・ルートに接続されているアプリケーションPDBには適用されません。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因に基づき、次の文によって、pdb1
からhract
がアプリケーション・コンテナとしてクローニングされます。
CREATE PLUGGABLE DATABASE hract AS APPLICATION CONTAINER FROM pdb1
FILE_NAME_CONVERT = ('/disk1/oracle/pdb1/', '/disk2/oracle/hract/')
STORAGE (MAXSIZE 2G);
ノート:
既存のアプリケーションを新しいアプリケーション・コンテナに移行している場合、「アプリケーション・コンテナへの既存のアプリケーションの移行」の手順に従います。
例14-4 切断されたPDBの接続によるアプリケーション・コンテナの作成
この例では、次の要因を想定しています。
-
新しいアプリケーション・コンテナは、CDB内に既存のPDBまたはアプリケーション・コンテナを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
PATH_PREFIX
句は必要ありません。 -
XMLファイルでは、ファイルの現在の場所が正確に記述されていません。したがって、
SOURCE_FILE_NAME_CONVERT
句またはSOURCE_FILE_DIRECTORY
句が必要です。この例では、ファイルが/disk1/oracle/payroll/に存在することがXMLファイルで示されていますが、ファイルは/disk2/oracle/payroll/にあり、SOURCE_FILE_NAME_CONVERT
句が使用されています。 -
ファイルは、正しい場所に存在します。したがって、
NOCOPY
が含まれています。 -
アプリケーション・コンテナに対してストレージ制限を適用する必要があります。したがって、
STORAGE
句が必要です。特に、アプリケーション・コンテナに属するすべての表領域が2GBを超えていない必要があります。 -
ターゲットの場所に、XMLファイルで指定されている一時ファイルと同じ名前のファイルがあります。したがって、
TEMPFILE REUSE
句が必要です。
次の文は、PDBを接続します。
CREATE PLUGGABLE DATABASE payrollact AS APPLICATION CONTAINER
USING '/disk1/usr/payrollpdb.xml'
SOURCE_FILE_NAME_CONVERT = ('/disk1/oracle/payroll/',
'/disk2/oracle/payroll/')
NOCOPY
STORAGE (MAXSIZE 2G)
TEMPFILE REUSE;
ノート:
既存のアプリケーションを新しいアプリケーション・コンテナに移行している場合、「アプリケーション・コンテナへの既存のアプリケーションの移行」の手順に従います。