アプリケーション・シードの作成
アプリケーション・シードは、PDBシードの使用、既存のPDBのクローニング、CREATE PLUGGABLE DATABASE
文を使用した切断されたPDBの接続など、複数の方法で作成できます。
- アプリケーション・シードの作成について
アプリケーション・コンテナに新しいアプリケーション・シードを作成するには、CREATE PLUGGABLE DATABASE
文でAS SEED
句を使用します。 - アプリケーション・シードの準備
アプリケーション・シードを作成する前に前提条件を満たす必要があります。 - アプリケーション・シードの作成
アプリケーション・シードは、AS SEED
句をCREATE PLUGGABLE DATABASE
文に含めることで作成します。
親トピック: アプリケーション・コンテナおよびシードの作成と削除
アプリケーション・シードの作成について
アプリケーション・コンテナに新しいアプリケーション・シードを作成するには、CREATE PLUGGABLE DATABASE
文でAS SEED
句を使用します。
アプリケーション・シードを使用して、アプリケーションPDBにアプリケーション・ルートのアプリケーションがインストールされているアプリケーション・コンテナをプロビジョニングできます。通常は、アプリケーション・コンテナのアプリケーションは、アプリケーション・シードの作成前にアプリケーション・ルートにインストールされます。アプリケーション・シードの作成後、アプリケーションがアプリケーション・シードにインストールされるように、アプリケーション・シードがアプリケーション・ルートと同期されます。それが完了すると、アプリケーション・シードを使用して作成されたPDBにアプリケーションがインストールされます。アプリケーション・ルートのアプリケーションがアップグレードまたはパッチ適用される場合、アプリケーション・シードをアプリケーション・ルートと同期して、これらの変更を適用する必要があります。
アプリケーション・コンテナにはゼロまたは1つのアプリケーション・シードを含めることができます。CREATE PLUGGABLE DATABASE
のAS SEED
句を使用してアプリケーション・シードを作成する場合、名前は指定しません。アプリケーション・シード名は常にapplication_container_name$SEED
で、application_container_name
はアプリケーション・シードのアプリケーション・コンテナの名前です。たとえば、salesact
アプリケーション・コンテナのアプリケーション・シードの名前はsalesact$SEED
である必要があります。
新規アプリケーション・シードの作成時に、CREATE PLUGGABLE DATABASE
文でアプリケーション・コンテナの管理者を指定する必要があります。この文では、管理者をアプリケーション・コンテナのローカル・ユーザーとして作成し、PDB_DBA
ロールを管理者にローカルに付与します。
関連項目:
-
AS SEED
文の構文とセマンティクスの詳細は、Oracle Database SQL言語リファレンスを参照してください。
親トピック: アプリケーション・シードの作成
アプリケーション・シードの準備
アプリケーション・シードを作成する前に、前提条件を満たす必要があります。
アプリケーション・シードを作成する前に、次の前提条件が満たされていることを確認してください。
-
CDBが存在していることが必要です。
CDBの作成: 基本的なステップを参照してください。
-
CDBは、読取り/書込みモードである必要があります。
-
アプリケーション・シードが属するアプリケーション・コンテナは読取り/書込みモードである必要があります。
-
現在のユーザーは、アプリケーション・シードが属するアプリケーション・ルートを現在のコンテナとして持つ共通ユーザーである必要があります。
-
現行ユーザーには
CREATE PLUGGABLE DATABASE
システム権限が必要です。 -
アプリケーション・シードにアプリケーション・コンテナのアプリケーションを含めるには、アプリケーションをアプリケーション・ルートにインストールする必要があります。
親トピック: アプリケーション・シードの作成
アプリケーション・シードの作成
アプリケーション・シードは、CREATE PLUGGABLE DATABASE
文にAS SEED
句を含めることで作成します。
アプリケーション・コンテナ内のアプリケーション・シードは、CDB内のシードと同様です。アプリケーション・シードにより、アプリケーション・コンテナの要件を素早く簡単に満たすアプリケーションPDBを作成できます。
例14-8 PDBシードからのアプリケーション・シードの作成
この例では、次の要因を想定しています。
-
アプリケーション・シードは、
salesact
というアプリケーション・コンテナに作成されています。 -
ストレージ制限は、アプリケーション・シードには不要です。したがって、
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 AS SEED
ADMIN USER actseedadm IDENTIFIED BY password;
ALTER PLUGGABLE DATABASE salesact$SEED OPEN;
ALTER SESSION SET CONTAINER=salesact$SEED;
ALTER PLUGGABLE DATABASE APPLICATION ALL SYNC;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;
アプリケーション・コンテナ名はsalesact
であるため、アプリケーション・シード名はsalesact$SEED
です。
指定されたローカル管理者の名前を持つローカル・ユーザーが作成され、このユーザーにアプリケーション・シードでローカルにPDB_DBA
共通ロールが付与されます。このユーザーがアプリケーション・シードの作成時に管理者権限を付与されていない場合は、SYS
およびSYSTEM
共通ユーザーを使用してアプリケーション・シードを管理します。
アプリケーション・シードは、作成時にアプリケーション・ルートと同期されます。このため、アプリケーション・シードにはアプリケーション・ルートにインストールされているアプリケーション、およびそれらのアプリケーションの一部であるアプリケーション共通オブジェクトが含まれています。アプリケーション・シードを使用して新しいアプリケーションPDBを作成した場合、アプリケーションPDBにはインストールされているアプリケーションおよびアプリケーション共通オブジェクトも含まれています。
例14-9 アプリケーションPDBからのアプリケーション・シードの作成
この例では、次の要因を想定しています。
-
アプリケーション・シードは、
salesact
というアプリケーション・コンテナに作成されています。 -
アプリケーション・シードは、
salesapppdb
というアプリケーション・コンテナのアプリケーションPDBに作成されています。 -
ストレージ制限は、アプリケーション・シードには不要です。したがって、
STORAGE
句は必要ありません。 -
アプリケーション・シードにはデフォルトの表領域は必要ありません。
-
PATH_PREFIX
句は必要ありません。 -
FILE_NAME_CONVERT
句およびCREATE_FILE_DEST
句は必要ありません。CDBに対してOracle Managed Filesが有効であるか、または
PDB_FILE_NAME_CONVERT
初期化パラメータが設定されています。アプリケーション・ルートに関連付けられているファイルは、Oracle Managed Files構成または初期化パラメータ設定に基づいて新しい場所にコピーされます。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因により、次の文はアプリケーション・ルートからアプリケーション・シードを作成して、アプリケーション・シードを開き、アプリケーション・シードを閉じて、アプリケーション・シードを読取り専用オープン・モードで開きます。
CREATE PLUGGABLE DATABASE AS SEED FROM salesapppdb;
ALTER PLUGGABLE DATABASE salesact$SEED OPEN;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;
アプリケーション・コンテナ名はsalesact
であるため、アプリケーション・シード名はsalesact$SEED
です。
アプリケーション・シードがアプリケーションPDBから作成されました。このため、アプリケーション・シードにはアプリケーション・ルートにインストールされているアプリケーション、およびそれらのアプリケーションの一部であるアプリケーション共通オブジェクトが含まれています。アプリケーション・シードを使用して新しいアプリケーションPDBを作成した場合、アプリケーションPDBにはインストールされているアプリケーションおよびアプリケーション共通オブジェクトも含まれています。
例14-10 アプリケーション・ルートからのアプリケーション・シードの作成
この例では、次の要因を想定しています。
-
アプリケーション・シードは、
salesact
というアプリケーション・コンテナに作成されています。アプリケーション・シードは、アプリケーション・コンテナのルートからクローニングされます。 -
ストレージ制限は、アプリケーション・シードには不要です。したがって、
STORAGE
句は必要ありません。 -
アプリケーション・シードにはデフォルトの表領域は必要ありません。
-
PATH_PREFIX
句は必要ありません。 -
FILE_NAME_CONVERT
句およびCREATE_FILE_DEST
句は必要ありません。CDBに対してOracle Managed Filesが有効であるか、または
PDB_FILE_NAME_CONVERT
初期化パラメータが設定されています。アプリケーション・ルートに関連付けられているファイルは、Oracle Managed Files構成または初期化パラメータ設定に基づいて新しい場所にコピーされます。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因により、次の文はアプリケーション・ルートからアプリケーション・シードを作成し、アプリケーション・シードを開き、コンテナをアプリケーション・シードに切り替え、pdb_to_apppdb.sql
スクリプトを実行してアプリケーション・ルートをアプリケーションPDBに変換し、アプリケーション・シードを閉じ、読取り専用オープン・モードでアプリケーション・シードを開きます。
CREATE PLUGGABLE DATABASE AS SEED FROM salesact;
ALTER PLUGGABLE DATABASE salesact$SEED OPEN;
ALTER SESSION SET CONTAINER=salesact$SEED;
@$ORACLE_HOME/rdbms/admin/pdb_to_apppdb.sql
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;
アプリケーション・コンテナ名はsalesact
であるため、アプリケーション・シード名はsalesact$SEED
です。
アプリケーション・シードはアプリケーション・ルートから作成されました。このため、アプリケーション・シードにはアプリケーション・ルートにインストールされているアプリケーション、およびそれらのアプリケーションの一部であるアプリケーション共通オブジェクトが含まれています。アプリケーション・シードを使用して新しいアプリケーションPDBを作成した場合、アプリケーションPDBにはインストールされているアプリケーションおよびアプリケーション共通オブジェクトも含まれています。
親トピック: アプリケーション・シードの作成