12 アプリケーション・コンテナおよびシードの作成と削除
いくつかの異なる方法でアプリケーション・コンテナおよびアプリケーション・シードを作成できます。アプリケーション・コンテナをCDBから削除したり、アプリケーション・コンテナからアプリケーション・シードを削除することもできます。
- アプリケーション・コンテナの作成と削除
アプリケーション・コンテナは、PDBシードの使用、既存のPDBまたは非CDBのクローニング、切断されたPDBの接続など、複数の方法で作成できます。アプリケーション・コンテナをCDBから削除することもできます。 - アプリケーション・シードの作成と削除
アプリケーション・シードは、PDBシードの使用、既存のPDBまたは非CDBのクローニング、切断されたPDBの接続など、複数の方法で作成できます。アプリケーション・シードをアプリケーション・コンテナから削除することもできます。 - アプリケーションPDBの作成
アプリケーションPDBを作成するには、アプリケーション・ルートが現在のコンテナであるときに、CREATE PLUGGABLE DATABASE
文を実行します。
親トピック: PDBおよびアプリケーション・コンテナの作成および削除
アプリケーション・コンテナの作成および削除
アプリケーション・コンテナは、PDBシードの使用、既存のPDBまたは非CDBのクローニング、切断されたPDBの接続など、複数の方法で作成できます。アプリケーション・コンテナをCDBから削除することもできます。
- アプリケーション・コンテナの作成
CREATE PLUGGABLE DATABASE
文を使用して、CDB内にアプリケーション・コンテナを作成できます。 - CDBからのアプリケーション・コンテナの切断
CDBからアプリケーション・コンテナを切断できます。 - アプリケーション・コンテナの削除
アプリケーション・コンテナは、あるCDBから別のCDBにアプリケーション・コンテナを移動する場合、またはアプリケーション・コンテナが不要になった場合に削除できます。
親トピック: アプリケーション・コンテナおよびシードの作成と削除
アプリケーション・コンテナの作成
CREATE PLUGGABLE DATABASE
文を使用して、CDB内にアプリケーション・コンテナを作成できます。
- アプリケーション・コンテナの作成について
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または非CDBのクローニング
-
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
文を使用して、アプリケーション・コンテナを作成できます。
例12-1 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;
例12-2 ローカルPDBのクローニングによるアプリケーション・コンテナの作成
この例では、次の要因を想定しています。
-
PATH_PREFIX
句は必要ありません。 -
コピーしたファイルのターゲットの場所を指定するには、
FILE_NAME_CONVERT
句が必要です。この例では、ファイルが/disk1/oracle/pdb1/から/disk2/oracle/hract/
にコピーされます。CREATE_FILE_DEST
句は使用されず、Oracle Managed FilesもPDB_FILE_NAME_CONVERT
初期化パラメータも、コピーしたファイルのターゲットの場所の指定に使用されません。PDBのデータファイルの場所を表示するには、「例19-7」の問合せを実行します。
-
アプリケーション・ルートに対してストレージ制限を適用する必要があります。したがって、
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);
ノート:
既存のアプリケーションを新しいアプリケーション・コンテナに移行している場合、「アプリケーション・コンテナへの既存のアプリケーションの移行」の手順に従います。
例12-3 切断された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;
ノート:
既存のアプリケーションを新しいアプリケーション・コンテナに移行している場合、「アプリケーション・コンテナへの既存のアプリケーションの移行」の手順に従います。
CDBからのアプリケーション・コンテナの切断
アプリケーション・コンテナをCDBから切断できます。
- アプリケーション・コンテナの切断について
アプリケーション・コンテナを切断すると、そのアプリケーション・コンテナはCDBから関連付け解除されます。 - アプリケーション・コンテナの切断
ALTER PLUGGABLE DATABASE ... UNPLUG INTO
文を使用してアプリケーション・コンテナを切断します。
親トピック: アプリケーション・コンテナの作成および削除
アプリケーション・コンテナの切断について
アプリケーション・コンテナを切断すると、アプリケーション・コンテナがCDBから関連付け解除されます。
通常、アプリケーション・コンテナは、そのアプリケーション・コンテナを別のCDBに移動する場合に切断します。アプリケーション・コンテナは、不要になった場合も切断できます。
アプリケーション・コンテナの切断は、PDBの切断と似ています。アプリケーション・コンテナを切断するには、CDBルートに接続し、ALTER PLUGGABLE DATABASE
文を使用して、XMLファイルまたは.pdb
ファイルを指定します。XMLファイル(拡張子.xml
)を指定すると、そのファイルには、切断後にアプリケーション・コンテナに関するメタデータが含まれます。このSQL文によってXMLファイルが作成され、このXMLファイルには、ターゲットCDBでCREATE PLUGGABLE DATABASE
文を使用してアプリケーション・コンテナを接続できるようにするのに必要な情報が含められます。.pdb
ファイルを指定すると、そのファイルにはアプリケーション・コンテナについて記述したXMLファイルおよびアプリケーション・コンテナで使用されるファイル(データファイルやウォレット・ファイルなど)の圧縮アーカイブが含まれます。.pdb
ファイルにより、単一の圧縮されたファイル(複数ファイルではない)を新しい場所にコピーしてアプリケーション・コンテナをCDBに接続できます。
切断する前に、アプリケーション・コンテナにアプリケーションPDBが接続されていない必要があり、クローズされている必要があります。アプリケーション・コンテナを切断する場合、切断されたアプリケーション・コンテナはマウント・モードになります。切断操作により、記録するアプリケーション・コンテナのデータファイルに、たとえばアプリケーション・コンテナが正常に切断されたことなどの変更が加えられることがあります。依然としてCDBの一部であるため、切断されたアプリケーション・コンテナはCDB全体のRMANバックアップに含まれています。このような方法によるバックアップは、切断されたアプリケーション・コンテナが将来必要になった場合に備えてアーカイブするのに便利です。
アプリケーション・コンテナをCDBから完全に削除するには、それを削除できます。切断されたアプリケーション・コンテナに対してサポートされる操作は、アプリケーション・コンテナの削除のみです。アプリケーション・コンテナは、同じCDBに再接続する前に、CDBから削除する必要があります。アプリケーション・コンテナは、CDBに接続されているときにのみ使用可能です。
関連項目:
-
PDBのクローズの詳細は、「PDBのオープン・モードの変更」を参照してください
-
初期化パラメータおよび切断されたPDBの詳細は、「システム・レベルでのPDBの変更」を参照してください。
-
共通ユーザーおよびローカル・ユーザーの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
親トピック: CDBからのアプリケーション・コンテナの切断
アプリケーション・コンテナの切断
ALTER PLUGGABLE DATABASE ... UNPLUG INTO
文を使用してアプリケーション・コンテナを切断します。
前提条件
次の前提条件を満たしている必要があります。
-
現在のユーザーには
SYSDBA
またはSYSOPER
管理権限が必要であり、その権限は共通で付与されているか、またはPDBでローカルに付与されている必要があります。ユーザーは、接続時にAS
SYSDBA
またはAS
SYSOPER
を使用して権限を行使する必要があります。 -
アプリケーション・コンテナは少なくとも1回オープンされている必要があります。
-
アプリケーション・コンテナにアプリケーションPDBが接続されていない必要があります。
-
アプリケーション・コンテナにアプリケーション・シードが接続されていない必要があります。
ノート:
透過的データ暗号化で暗号化されているデータが含まれたアプリケーション・コンテナを切断する場合は、『Oracle Database Advanced Securityガイド』の指示に従います。
アプリケーション・コンテナを切断するには:
-
SQL*Plusで、現在のコンテナがCDBのルートであることを確認します。
-
アプリケーション・コンテナをクローズします。
Oracle Real Application Clusters (Oracle RAC)環境では、アプリケーション・コンテナがすべてのインスタンスでクローズされている必要があります。
-
UNPLUG INTO
句を指定してALTER PLUGGABLE DATABASE
文を実行し、切断するアプリケーション・コンテナおよびアプリケーション・コンテナのXMLメタデータ・ファイルまたは.pdbファイルの名前と場所を指定します。
例12-4 アプリケーション・コンテナsalesactの切断
このALTER PLUGGABLE DATABASE
文は、アプリケーション・コンテナsalesact
を切断し、salesact.xml
メタデータ・ファイルを/oracle/data/ directory
に作成します。
ALTER PLUGGABLE DATABASE salesact UNPLUG INTO '/oracle/data/saleact.xml';
親トピック: CDBからのアプリケーション・コンテナの切断
アプリケーション・コンテナの削除
アプリケーション・コンテナは、アプリケーション・コンテナをあるCDBから別のCDBに移動する場合、またはアプリケーション・コンテナが不要になった場合に削除できます。
アプリケーション・コンテナの削除は、PDBの削除と非常に似ています。アプリケーション・コンテナを削除する場合、CDBの制御ファイルが変更され、削除されたアプリケーション・コンテナへの参照がすべて除外されます。アプリケーション・コンテナに関連付けられているアーカイブREDOログ・ファイルおよびバックアップは削除されませんが、Oracle Recovery Manager (RMAN)を使用して削除できます。
アプリケーション・コンテナを削除する場合、そのアプリケーション・コンテナのデータファイルは、DROP PLUGGABLE DATABASE
文にある次のいずれかの句を使用して保持または削除できます。
-
KEEP DATAFILES
はデフォルトであり、データファイルを保持します。KEEP DATAFILES
が指定されていても、アプリケーション・コンテナの一時ファイルは不要になったため削除されます。 -
INCLUDING DATAFILES
では、ディスクからデータファイルを削除します。アプリケーション・コンテナが
SNAPSHOT COPY
句を指定して作成された場合は、アプリケーション・コンテナを削除する際にINCLUDING DATAFILES
を指定する必要があります。
次の前提条件を満たしている必要があります。
-
アプリケーション・コンテナはマウント・モードであるか、切断されている必要があります。
「PDBのオープン・モードの変更」を参照してください。
「アプリケーション・コンテナの切断」を参照してください。
-
現在のユーザーには
SYSDBA
またはSYSOPER
管理権限が必要であり、その権限は共通で付与されているか、またはアプリケーション・コンテナでローカルに付与されている必要があります。ユーザーは、接続時にAS SYSDBA
またはAS SYSOPER
を使用して権限を行使する必要があります。 -
アプリケーション・コンテナにアプリケーションPDBが接続されていない必要があります。
-
アプリケーション・コンテナにアプリケーション・シードが接続されていない必要があります。
ノート:
これは、破壊的な操作です。
アプリケーション・コンテナを削除するには:
-
SQL*Plusで、現在のコンテナがCDBルートであることを確認します。
「現在のコンテナについて」および「SQL*Plusを使用したCDB内のコンテナへのアクセス」を参照してください。
-
DROP
PLUGGABLE
DATABASE
文を実行し、削除するアプリケーション・コンテナを指定します。
例12-5 データファイルを保持した状態でのアプリケーション・コンテナsalesactの削除
DROP PLUGGABLE DATABASE salesact
KEEP DATAFILES;
例12-6 アプリケーション・コンテナsalesactとデータファイルの削除
DROP PLUGGABLE DATABASE saleact
INCLUDING DATAFILES;
関連項目:
親トピック: アプリケーション・コンテナの作成および削除
アプリケーション・シードの作成および削除
アプリケーション・シードは、PDBシードの使用、既存のPDBまたは非CDBのクローニング、切断されたPDBの接続など、複数の方法で作成できます。アプリケーション・シードをアプリケーション・コンテナから削除することもできます。
- アプリケーション・シードの作成
CREATE PLUGGABLE DATABASE
文を使用して、アプリケーション・コンテナ内にアプリケーション・シードを作成できます。 - アプリケーション・コンテナからのアプリケーション・シードの切断
アプリケーション・コンテナからアプリケーション・シードを切断できます。 - アプリケーション・シードの削除
DROP
PLUGGABLE
DATABASE
文を使用して、アプリケーション・シードを削除できます。アプリケーション・シードが必要ではなくなった場合は削除できます。
親トピック: アプリケーション・コンテナおよびシードの作成と削除
アプリケーション・シードの作成
CREATE PLUGGABLE DATABASE
文を使用して、アプリケーション・コンテナ内にアプリケーション・シードを作成できます。
- アプリケーション・シードの作成について
アプリケーション・コンテナに新しいアプリケーション・シードを作成するには、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を作成できます。
例12-7 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にはインストールされているアプリケーションおよびアプリケーション共通オブジェクトも含まれています。
例12-8 アプリケーション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にはインストールされているアプリケーションおよびアプリケーション共通オブジェクトも含まれています。
例12-9 アプリケーション・ルートからのアプリケーション・シードの作成
この例では、次の要因を想定しています。
-
アプリケーション・シードは、
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にはインストールされているアプリケーションおよびアプリケーション共通オブジェクトも含まれています。
親トピック: アプリケーション・シードの作成
アプリケーション・コンテナからのアプリケーション・シードの切断
アプリケーション・コンテナからアプリケーション・シードを切断できます。
- アプリケーション・シードの切断について
アプリケーション・シードを切断すると、アプリケーション・シードがアプリケーション・コンテナから関連付け解除されます。アプリケーション・シードを使用しなくなった場合は、アプリケーション・シードを切断します。 - アプリケーション・シードの切断
アプリケーション・シードを切断するには、ALTER PLUGGABLE DATABASE ... UNPLUG INTO
文を実行します。
親トピック: アプリケーション・シードの作成および削除
アプリケーション・シードの切断について
アプリケーション・シードを切断すると、アプリケーション・シードがアプリケーション・コンテナから関連付け解除されます。アプリケーション・シードを使用しなくなった場合は、アプリケーション・シードを切断します。
アプリケーション・シードの切断は、PDBの切断と似ています。アプリケーション・シードを切断するには、アプリケーション・ルートに接続し、ALTER PLUGGABLE DATABASE
文を使用して、XMLファイルまたは.pdb
ファイルを指定します。XMLファイル(拡張子.xml
)を指定すると、そのファイルには切断後にアプリケーション・シードに関するメタデータが含まれます。このSQL文によってXMLファイルが作成され、このXMLファイルには、ターゲットCDBでCREATE PLUGGABLE DATABASE
文を使用し、それをPDBまたはアプリケーションPDBとして接続できるようにするために必要な情報が含められます。.pdbファイルを指定すると、それにはアプリケーション・シードについて記述したXMLファイルおよびアプリケーション・シードで使用されるファイル(データファイルやウォレット・ファイルなど)の圧縮アーカイブが含まれます。.pdb
ファイルにより、単一の圧縮されたファイル(複数ファイルではない)を新しい場所にコピーし、PDBまたはアプリケーションPDBとして接続できます。
切断する前に、アプリケーション・シードがクローズされている必要があります。アプリケーション・シードを切断する場合、切断されたアプリケーション・シードはマウント・モードになります。切断操作により、記録するアプリケーション・シードのデータファイルに、たとえばアプリケーション・シードが正常に切断されたことなどの変更が加えられることがあります。依然としてアプリケーション・コンテナの一部であるため、切断されたアプリケーション・シードはCDB全体のRMANバックアップに含まれています。このような方法によるバックアップは、切断されたアプリケーション・シードが将来必要になった場合に備えてアーカイブするのに便利です。
アプリケーション・シードをアプリケーション・コンテナから完全に削除するには、それを削除できます。切断されたアプリケーション・シードに対してサポートされる操作は、アプリケーション・シードの削除のみです。アプリケーション・シードは、同じアプリケーション・コンテナに再接続する前に、アプリケーション・コンテナから削除する必要があります。アプリケーション・シードは、アプリケーション・コンテナに接続されているときにのみ使用可能です。
関連項目:
-
PDBのクローズの詳細は、「PDBのオープン・モードの変更」を参照してください
-
初期化パラメータおよび切断されたPDBの詳細は、「システム・レベルでのPDBの変更」を参照してください。
-
共通ユーザーおよびローカル・ユーザーの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
アプリケーション・シードの切断
アプリケーション・シードを切断するには、ALTER PLUGGABLE DATABASE ... UNPLUG INTO
文を実行します。
前提条件
次の前提条件を満たしている必要があります。
-
現在のユーザーには
SYSDBA
またはSYSOPER
管理権限が必要であり、その権限は共通で付与されているか、またはアプリケーション・コンテナでローカルに付与されている必要があります。ユーザーは、接続時にAS SYSDBA
またはAS SYSOPER
を使用して権限を行使する必要があります。 -
アプリケーション・シードは少なくとも1回オープンされている必要があります。
ノート:
透過的データ暗号化で暗号化されているデータが含まれたアプリケーション・シードを切断する場合は、『Oracle Database Advanced Securityガイド』の指示に従います。
アプリケーション・シードを切断するには:
-
SQL*Plusで、現在のコンテナが、アプリケーション・シードが属するアプリケーション・コンテナのアプリケーション・ルートであることを確認します。
-
アプリケーション・シードをクローズします。
Oracle Real Application Clusters (Oracle RAC)環境では、アプリケーション・シードがすべてのインスタンスでクローズされている必要があります。
-
UNPLUG INTO
句を指定してALTER PLUGGABLE DATABASE
文を実行し、切断するアプリケーション・シードおよびアプリケーション・シードのXMLメタデータ・ファイルまたは.pdbファイルの名前と場所を指定します。
例12-10 アプリケーション・シードsalesact$SEEDの切断
このALTER PLUGGABLE DATABASE
文は、アプリケーション・シードsalesact$SEED
を切断し、salesact$SEED.xml
メタデータ・ファイルを/oracle/data/
ディレクトリに作成します。
ALTER PLUGGABLE DATABASE salesact$SEED
UNPLUG INTO '/oracle/data/saleact$SEED.xml';
アプリケーション・シードの削除
DROP
PLUGGABLE
DATABASE
文を使用して、アプリケーション・シードを削除できます。アプリケーション・シードが必要ではなくなった場合は削除できます。
アプリケーション・シードを削除する場合、CDBの制御ファイルが変更され、削除されたアプリケーション・シードへの参照がすべて除外されます。アプリケーション・シードに関連付けられているアーカイブREDOログ・ファイルおよびバックアップは削除されませんが、Oracle Recovery Manager (RMAN)を使用して削除できます。
アプリケーション・シードを削除する場合、次のいずれかの句を使用して、アプリケーション・シードのデータファイルを保持または削除できます。
-
KEEP DATAFILES
はデフォルトであり、データファイルを保持します。KEEP DATAFILES
が指定されていても、アプリケーション・シードの一時ファイルは不要になったため削除されます。 -
INCLUDING DATAFILES
では、ディスクからデータファイルを削除します。アプリケーション・シードが
SNAPSHOT COPY
句を指定して作成された場合は、アプリケーション・シードを削除する際にINCLUDING DATAFILES
を指定する必要があります。
次の前提条件を満たしている必要があります。
-
アプリケーション・シードはマウント・モードであるか、切断されている必要があります。
-
現在のユーザーには
SYSDBA
またはSYSOPER
管理権限が必要であり、その権限は共通で付与されているか、またはアプリケーション・コンテナでローカルに付与されている必要があります。ユーザーは、接続時にAS SYSDBA
またはAS SYSOPER
を使用して権限を行使する必要があります。
ノート:
これは、破壊的な操作です。
アプリケーション・シードを削除するには:
-
SQL*Plusで、現在のコンテナが、アプリケーション・シードが属するアプリケーション・コンテナのアプリケーション・ルートであることを確認します。
-
DROP PLUGGABLE DATABASE
文を実行し、アプリケーション・シードを指定します。
例12-11 データファイルを保持した状態でのアプリケーション・シードsalesact$SEEDの削除
DROP PLUGGABLE DATABASE salesact$SEED
KEEP DATAFILES;
例12-12 アプリケーション・シードsalesact$SEEDとデータファイルの削除
DROP PLUGGABLE DATABASE saleact$SEED
INCLUDING DATAFILES;
アプリケーションPDBの作成
アプリケーションPDBを作成するには、アプリケーション・ルートが現在のコンテナであるときに、CREATE PLUGGABLE DATABASE
文を実行します。
アプリケーションPDBは、CDBルートにPDBを作成するために使用するSQL文と同じSQL文を使用して作成できます。CREATE PLUGGABLE DATABASE
文をアプリケーション・ルートで実行した場合、新しく作成したPDBはアプリケーションPDBです。この文はアプリケーション・ルートで実行する必要があり、そのアプリケーション・ルートに定義されているアプリケーション・データベースに対して明確な依存関係があります。