CREATE PLUGGABLE DATABASE

目的

CREATE PLUGGABLE DATABASE文を使用すると、プラガブル・データベース(PDB)を作成できます。

この句で実行できるタスクは、次のとおりです。

  • シードをテンプレートとして使用したPDBの作成

    create_pdb_from_seed句を使用すると、マルチテナント・コンテナ・データベース(CDB)内のシードをテンプレートとして使用して、PDBを作成できます。シードに関連付けられた各ファイルが新しい場所にコピーされ、その後これらのファイルが新しいPDBに関連付けられます。

  • 既存のPDBまたはCDB以外のクローニングによるPDBの作成

    create_pdb_clone句を使用すると、既存のPDBまたはCDB以外をコピーし、その後このコピーをCDBに接続することによって、PDBを作成できます。既存のPDBまたはCDB以外に関連付けられたファイルは新しい場所にコピーされ、このコピーされたファイルが新しいPDBに関連付けられます。

  • CDBへの切断されたPDBまたは非CDBの接続によるPDBの作成

    create_pdb_from_xml句を使用すると、XMLメタデータ・ファイルを使用して、切断されているPDBまたは非CDBをCDBに接続できます。

  • 別のPDBを参照することによるプロキシPDBの作成。プロキシPDBは、参照先PDBへのフル機能アクセスを提供します。

    create_pdb_clone句を使用して、AS PROXY FROMを指定すると、プロキシPDBを作成できます。

  • アプリケーション・コンテナ、アプリケーション・シードまたはアプリケーションPDBの作成

    create_pdb_from_seedcreate_pdb_cloneまたはcreate_pdb_from_xml clauseを使用します。アプリケーション・コンテナを作成するには、AS APPLICATION CONTAINER句を指定する必要があります。アプリケーション・シードを作成するには、AS SEED句を指定する必要があります。

ノート:

新しいPDBがCDBで確立されるときに、新しいPDBによって提供されるサービスの名前が既存のサービス名と競合することがあります。競合が発生する可能性があるネームスペースは、そのCDBへのアクセスを可能にするリスナーのネームスペースです。このネームスペース内で、非CDBのデフォルト・サービス名、CDBのデフォルト・サービス名、PDBのデフォルト・サービス名およびユーザー定義サービス名の間で競合が発生することがあります。たとえば、同じコンピュータ・システム上に存在する複数のCDBが同じリスナーを使用しており、新たに確立されるPDBに含まれるサービス名がこれらのCDB内の別のPDBに含まれるサービス名と同じである場合、競合が発生します。

PDBを作成すると、競合する可能性のあるサービス名に新しい名前を指定できます。「service_name_convert」句を参照してください。PDBを作成した後でサービス名の競合が見つかった場合は、既存のサービス名との競合を引き起こすPDBに対する操作は試行しないでください。競合する名前がPDBのデフォルト・サービス名である場合は、そのPDBの名前を変更する必要があります。競合する名前がPDB内のユーザー作成サービス名である場合は、そのサービスを削除し、そのサービスのかわりに、競合しない名前を使用して、同じプロパティを持つ同じ用途のサービスを別に作成します。

関連項目:

前提条件

CDBに接続している必要があります。CDBをオープンし、READ WRITEモードにしておく必要があります。

PDBまたはアプリケーション・コンテナを作成する場合は、現在のコンテナがルートである必要があります。また、共通に付与されているCREATE PLUGGABLE DATABASEシステム権限が必要です。

アプリケーション・シードまたはアプリケーションPDBを作成する場合は、現在のコンテナがアプリケーション・ルートである必要があり、アプリケーション・コンテナをオープンしてREAD WRITEモードにしておく必要があります。また、CREATE PLUGGABLE DATABASEシステム権限(共通に付与されている権限か、そのアプリケーション・コンテナでローカルに付与されている権限のいずれか)が必要です。

create_pdb_clone句を指定するには:

  • src_pdb_nameが同じCDB内のPDBを指す場合は、新規PDBを作成するCDBのルートおよびクローンの作成元にするPDBにおけるCREATE PLUGGABLE DATABASEシステム権限が必要になります。

  • src_pdb_nameがリモート・データベース内のPDBまたはCDB以外を指す場合は、新規PDBを作成するCDBのルートにおけるCREATE PLUGGABLE DATABASEシステム権限が必要になります。また、src_pdb_nameが指すPDBまたはCDB以外におけるCREATE PLUGGABLE DATABASEシステム権限を、リモート・ユーザーが保有している必要があります。

PDB作成の前提条件の詳細は、Oracle Multitenant管理者ガイドを参照してください。

構文

parallel_pdb_creation_clause::=

file_name_convert::=

service_name_convert::=

path_prefix_clause::=

tempfile_reuse_clause::=

user_tablespaces_clause::=

standbys_clause::=

logging_clause::=

create_file_dest_clause::=

keystore_clause::=

pdb_refresh_mode_clause::=

create_pdb_from_mirror_copy::=

using_snapshot_clause ::=

container_map_clause ::=

pdb_snapshot_clause ::=

source_file_name_convert::=

source_file_directory::=

create_pdb_decrypt_from_xml::=

セマンティクス

pdb_name

作成するPDBの名前を指定します。名前は、「データベース・オブジェクトのネーミング規則」に指定されている要件を満たしている必要があります。PDB名の最初の文字はアルファベット文字にする必要があります。残りの文字には英数字またはアンダースコア(_)を使用できます。

PDB名はCDB内で一意にする必要があります。また、そのインスタンスが特定のリスナーを介してアクセスされるすべてのCDBのスコープ内で一意にする必要があります。

AS APPLICATION CONTAINER

この句を指定すると、アプリケーション・コンテナを作成できます。

関連項目:

アプリケーション・コンテナの作成ステップの詳細は、『Oracle Database管理者ガイド』を参照してください。

using_snapshot_clause

名前、SCNまたはタイムスタンプで識別できる既存のPDBスナップショットからPDBを作成する場合は、この句を指定します。

SNAPSHOT COPYを追加で指定する場合は、新しいPDBは指定するPDBスナップショットの有無に依存します。これは、ユーザーが新しいPDBを削除またはパージできるかどうかに影響します。

AS SEED

この句を指定すると、アプリケーション・シードを作成できます。データベースによってシードにapplication_container_name$SEED形式の名前が付けられます。

アプリケーション・コンテナは最大1つのアプリケーション・シードを持つことができます。アプリケーション・シードはオプションですが、存在する場合は、アプリケーション・コンテナの要件を満たすアプリケーションPDBを迅速に作成するために使用できます。アプリケーション・シードにより、そこから作成されるアプリケーションPDBを瞬時にプロビジョニングできます。

関連項目:

アプリケーション・シードの作成ステップの詳細は、『Oracle Database管理者ガイド』を参照してください。

create_pdb_from_seed

この句を使用すると、CDB内のシードをテンプレートとして使用して、PDBを作成できます。

関連項目:

シードを使用したPDBの作成ステップの詳細は、『Oracle Database管理者ガイド』を参照してください。

ADMIN USER

この句を使用して、PDBに対する管理タスクを実行するために必要な権限を持つ管理ユーザーを作成できます。admin_user_nameに、作成するユーザーの名前を指定します。IDENTIFIED BY句を使用すると、admin_user_nameのパスワードを指定できます。PDBにローカル・ユーザーが作成され、このユーザーにPDB_DBAローカル・ロールが付与されます。

pdb_dba_roles

この句を使用すると、PDB_DBAロールに1つ以上のロールを付与できます。この句を使用して、PDBの管理ユーザーが必要とする権限を付与してください。roleには、事前定義されたロールを指定します。事前定義されているロールのリストは、『Oracle Databaseセキュリティ・ガイド』を参照してください。

また、GRANT文を使用して、PDBの作成後にPDB_DBAロールにロールを付与することもできます。PDB_DBAロールに適切な権限を付与するまでは、SYSユーザーおよびSYSTEMユーザーがPDB上で管理タスクを実行できます。

parallel_pdb_creation_clause

この句はCDBに、パラレル実行サーバーを使用して新しいPDBのデータファイルを新しい場所にコピーするよう指示します。これにより、PDBの作成が高速化されることがあります。

PARALLEL

PARALLELを指定すると、CDBは使用するパラレル実行サーバーの数を自動的に選択します。COMPATIBLE初期化パラメータが12.2以上に設定されている場合、これがデフォルトです。

PARALLEL integer

integerを使用して、使用するパラレル実行サーバーの数を指定します。現在のデータベースのロードおよび使用可能なパラレル実行サーバーの数によっては、CDBはこの設定を無視できます。0または1を指定した場合、CDBはPDBの作成をパラレル化しません。これにより、PDBの作成時間が長くなることがあります。

default_tablespace

この句を指定すると、smallfile表領域が作成され、これがPDBのデフォルトの永続表領域として設定されます。デフォルトの表領域は、Oracle Databaseによって、別の永続表領域が指定されていないSYSTEM以外のユーザーに割り当てられます。default_tablespace句のセマンティクスは、CREATE DATABASE文と同じです。詳細は、「CREATE DATABASE」の「default_tablespace」を参照してください。

pdb_storage_clause

この句を使用して、PDBの記憶域制限値を指定します。

  • MAXSIZEを使用すると、PDB内のすべての表領域で使用可能にする記憶域の容量を、size_clauseで指定した値に制限できます。この制限には、PDBに属する表領域のデータファイルと一時ファイルのサイズも含まれます。MAXSIZE UNLIMITEDを指定すると、容量は無制限になります。

  • MAX_AUDIT_SIZEを使用して、PDBからあふれた統合監査OS (.bin形式)ファイルで使用できる記憶域の量を、size_clauseで指定された値に制限します。MAX_AUDIT_SIZE UNLIMITEDを指定すると、容量は無制限になります。

  • MAX_DIAG_SIZEを使用して、PDBで使用できる自動診断リポジトリ(ADR)の診断(トレース・ファイルおよびインシデント・ダンプ)用の記憶域の量を、size_clauseで指定された値に制限します。MAX_DIAG_SIZE UNLIMITEDを指定すると、容量は無制限になります。

この句を省略するかSTORAGE UNLIMITEDを指定すると、PDBの記憶域には制限がなくなります。これは、STORAGE (MAXSIZE UNLIMITED MAX_AUDIT_SIZE UNLIMITED MAX_DIAG_SIZE UNLIMITED)を指定することと同じになります。

file_name_convert

この句を使用して、PDBのファイル(データファイルやウォレット・ファイルなど)の名前をデータベースでどのように作成するかを決定できます。

  • filename_patternには、シードに関連付けられたファイル名(シードを使用してPDBを作成する場合)、ソースPDBに関連付けられたファイル名(PDBをクローニングする場合)またはXMLファイル内にリストされたファイル名(PDBをCDBに接続する場合)に含まれる文字列を指定します。

  • replacement_filename_patternには、置換文字列を指定します。

新規PDBに関連付けられたファイル名の生成時に、filename_patternreplacement_filename_patternで置換されます。

Oracle Managed Filesで管理されているファイルまたはディレクトリと一致するファイル名のパターンは指定できません。

FILE_NAME_CONVERT = NONEを指定できます。これは、この句を省略した場合と同じになります。この句を省略すると、データベースはまずOracle管理ファイルを使用してファイル名を生成しようとします。Oracle Managed Filesを使用している場合は、PDB_FILE_NAME_CONVERT初期化パラメータを使用してファイル名が生成されます。このパラメータが設定されていないと、エラーが発生します。

service_name_convert

この句を使用して、ソースPDBのサービス名に基づいて新しいPDBのユーザー定義サービス名を変更します。新しいPDBのサービス名がCDB内の既存のサービス名と競合する場合は、プラグイン違反が発生することがあります。この句を使用すると、これらの違反を回避できます。

  • service_nameには、PDBシード(アプリケーション・シードを使用してアプリケーション・コンテナにPDBを作成する場合)またはソースPDB (PDBをクローニングする場合またはPDBをCDBに接続する場合)内のサービス名を指定します。

  • replacement_service_nameには、このサービスの置換名を指定します。

Oracle Databaseでは、作成されるPDBのサービスに置換サービス名を使用します。

SERVICE_NAME_CONVERT = NONEを指定できます。これは、この句を省略した場合と同じになります。

service_name_convertの制限事項

service_name_convert句には、次の制限事項があります。

  • PDBのデフォルトのサービス名は変更できません。デフォルト・サービスの名前はPDBと同じになります。

  • CDBシードにはユーザー定義サービスがないため、create_pdb_from_seed句を使用して、CDBシードからPDBを作成する場合は、この句を指定できません。ただし、create_pdb_from_seed句を使用して、アプリケーション・シードからアプリケーションPDBを作成する場合は、この句を指定できます。

path_prefix_clause

この句を使用して、PDBに関連付けられたディレクトリ・オブジェクトのファイル・パスを、指定したディレクトリまたはそのサブディレクトリに確実に制限できます。また、この句により、PDBに関連付けられているファイル(CREATE PFILE文で作成されたファイル)は指定されたディレクトリ(PDBのOracle XMLリポジトリ)およびOracleウォレットのエクスポート・ディレクトリに制限されます。PDBの作成後は、この句を変更することはできません。この句は、Oracle Managed Filesによって作成されたファイルには影響しません。

  • path_nameには、オペレーティング・システムのディレクトリの絶対パス名を指定します。一重引用符が必要です。その結果、パス名の大/小文字が区別されます。Oracle Databaseでは、PDBに関連付けられているすべてのファイル・パスの接頭辞としてpath_nameが使用されます。

    相対パスが付加されたときに結果として生成されるパス名が正しい書式で形成されるようにpath_nameを指定してください。たとえば、UNIXシステムでは、次に示すようにpath_nameの最後にフォワード・スラッシュ(/)を使用するようにしてください。

    PATH_PREFIX = '/disk1/oracle/dba/salespdb/'
    
  • directory_object_nameには、CDBルート(CDB$ROOT)に存在するディレクトリ・オブジェクトの名前を指定します。ディレクトリ・オブジェクトは、PATH_PREFIXに使用する絶対パスを指します。

  • PATH_PREFIX = NONEを指定すると、PDBに関連付けられてたディレクトリ・オブジェクトの相対パスが絶対パスとして処理され、特定のディレクトリに制限されなくなります。

path_prefix_clauseの省略は、PATH_PREFIX = NONEの指定と同じです。

path_prefix_clauseがPDBに指定されると、PATH_PREFIX文字列がPDBのすべてのローカル・ディレクトリ・オブジェクトに接頭辞として常に追加されるため、既存のディレクトリ・オブジェクトが適切に機能しない場合があります。path_prefix_clauseは、ユーザーが作成したディレクトリ・オブジェクトにのみ適用されます。これは、Oracleが提供するディレクトリ・オブジェクトには適用されません。

tempfile_reuse_clause

PDBを作成すると、一時ファイルが新しいPDBと関連付けられます。PDBの作成方法によっては、一時ファイルはすでに存在し、使用されている場合もあります。

TEMPFILE REUSEを指定すると、新しいPDBに関連付けられている一時ファイルがすでに存在する場合は、それをフォーマットして再利用できます。この句を指定しており、一時ファイルが存在しない場合は、データベースで一時ファイルが作成されます。

TEMPFILE REUSEを指定しない場合、新しいPDBに関連付ける一時ファイルがすでに存在すると、データベースからエラーが戻され、PDBは作成されません。

user_tablespaces_clause

この句を使用すると、新しいPDBで使用可能な表領域を指定できます。SYSTEMSYSAUXおよびTEMP表領域はすべてのPDBで使用可能であり、この句に指定することはできません。

この句を使用すると、複数のスキーマのデータを異なるPDBに分けることができます。たとえば、非CDBをPDBに移動する場合、その非CDBに多数のスキーマがあって、それぞれ異なるアプリケーションをサポートしているとき、非CDBで各スキーマが別個の表領域を使用していたとすると、この句を使用して各スキーマに属するデータを別個のPDBに分けることができます。

  • tablespaceを指定して、新しいPDBで表領域を使用可能にします。表領域を複数指定する場合は、カンマ区切りのリストにします。

  • ALLを指定して、新しいPDBですべての表領域を使用可能にします。これはデフォルトです。

  • ALL EXCEPTを指定して、指定された表領域を除くすべての表領域を新しいPDBで使用可能にします。

  • NONEを指定して、SYSTEMSYSAUXおよびTEMP表領域のみ新しいPDBで使用可能にします。

CDBの互換性レベルが12.2以上の場合、この句によって除外される表領域は新しいPDBにオフラインで作成され、これらにデータファイルは関連付けられません。CDBの互換性レベルが12.2未満の場合、この句で除外される表領域は新しいPDBでオフラインとなり、このような表領域に属するデータファイルはすべて無名でオフラインとなります。

{ SNAPSHOT COPY | NO DATA }

これらの句は、create_pdb_clone句でPDBをクローニングする場合にのみ適用されます。非CDBをクローニングする場合には適用されません。デフォルトでは、PDBのクローニングに指定された設定に応じて、新しいPDBで使用可能な各表領域が作成されます。これらの句により、これらの設定を次のようにオーバーライドできます。

  • SNAPSHOT COPY - 記憶域スナップショットを使用して表領域をクローニングします。

  • NO DATA - 表領域のデータ・モデル定義をクローニングしますが、表領域のデータはクローニングしません。

{ COPY | MOVE | NOCOPY }

これらの句は、create_pdb_from_xml句でPDBを接続する場合に適用されます。デフォルトでは、PDBの接続に指定された設定に応じて、新しいPDBで使用可能な各表領域が作成されます。これらの句により、これらの設定を次のようにオーバーライドできます。

  • COPY - 表領域のファイルを新しい場所にコピーします。

  • MOVE - 表領域のファイルを新しい場所に移動します。

  • NOCOPY - 表領域のファイルを新しい場所にコピーまたは移動しません。

standbys_clause

この句を使用して、新しいPDBを1つ以上のスタンバイCDBに含めるかどうかを指定します。PDBをスタンバイCDBに含める場合、スタンバイ・リカバリ中に、スタンバイCDBはPDBのデータファイルを探します。データファイルが見つからない場合、スタンバイ・リカバリが停止するため、リカバリが再開する前にデータファイルを正しい場所にコピーする必要があります。

  • cdb_nameを指定して、新しいPDBを指定したスタンバイCDBに含めます。カンマ区切りのリストで、複数のスタンバイCDB名を指定できます。

  • ALLを指定して、すべてのスタンバイCDBの新しいPDBを含めます。これはデフォルトです。

  • ALL EXCEPTを指定して、新しいPDBを指定したスタンバイCDB以外のすべてのスタンバイCDBに含めます。

  • NONEを指定して、すべてのスタンバイCDBの新しいPDBを除外します。PDBがすべてのスタンバイCDBから除外される場合、PDBのデータファイルは名前がなく、すべてのスタンバイCDBでオフラインとマークされます。PDBのデータファイルがスタンバイに見つからない場合、スタンバイ・リカバリは停止しません。PDBの作成後に新しいスタンバイCDBをインスタンス化する場合、新しいスタンバイCDBのリカバリ用のPDBを明示的に無効化する必要があります。

データファイルを正しい場所にコピーし、PDBをオンラインにし、リカバリ用に有効とマークすることによって、スタンバイCDBから除外した後にスタンバイCDBのPDBを有効化できます。

logging_clause

この句を使用して、PDB内で作成する表領域のデフォルトのロギング属性を指定します。ロギング属性は、特定のDML操作がREDOログ・ファイルで記録されるかどうか(LOGGINGまたはNOLOGGING)を制御します。デフォルトはLOGGINGです。

表領域を作成する場合、CREATE TABLESPACE文のlogging_clauseを指定して、デフォルトのロギング属性をオーバーライドできます。

この句の詳細は、logging_clause」を参照してください。

create_file_dest_clause

デフォルトでは、新しく作成されたPDBは、ルートからOracle Managed Files設定を継承します。ルートがOracle Managed Filesを使用する場合、PDBもOracle Managed Filesを使用します。PDBは、Oracle Managed Filesのベース・ファイル・システム・ディレクトリをルートと共有し、PDBのGUIDで名前が付けられた固有のサブディレクトリがあります。ルートがOracle Managed Filesを使用しない場合、PDBもOracle Managed Filesを使用しません。

この句を使用すると、デフォルトの動作をオーバーライドできます。PDBのOracle Managed Filesを有効化または無効化できます。PDBのファイルの別のベース・ファイル・システム・ディレクトリまたはOracle ASMディスク・グループを指定します。

  • NONEを指定して、PDBのOracle Managed Filesを無効化します。

  • directory_path_nameまたはdiskgroup_nameを指定して、PDBのOracle Managed Filesを有効化します。

    directory_path_nameを指定して、PDBのファイルのベース・ファイル・システム・ディレクトリを指定します。オペレーティング・システム・ディレクトリの完全パス名を指定します。ディレクトリが存在する必要があり、Oracleプロセスにはディレクトリに対する適切な権限が必要です。一重引用符が必要です。その結果、パス名の大/小文字が区別されます。

    diskgroup_nameを指定して、PDBのファイルのデフォルトのOracle ASMディスク・グループを指定します。

NONE以外の値を指定する場合、データベースはPDBのSCOPE=SPFILEを使用したDB_CREATE_FILE_DEST初期化パラメータを暗黙的に設定します。

HOSTおよびPORT

これらの句は、プロキシPDBから参照するPDBを作成する場合にのみ役立ちます。このタイプのPDBは、参照先PDBと呼ばれます。

参照先PDBを作成する場合:

  • リスナーの名前がPDBのホスト名と異なる場合は、HOST句を指定する必要があります。hostnameには、リスナーの完全修飾ドメイン名を指定します。hostnameは一重引用符で囲みます。たとえば、'myhost.example.com'です。

    Oracle Real Application Clusters (Oracle RAC)環境では、PDBのいずれかのホストをhostnameに指定できます。

  • リスナーのポート番号が1521でない場合は、PORT句を指定する必要があります。numberには、リスナーのポート番号を指定します。

プロキシPDBは、データベース・リンクを使用して、その参照先PDBとの通信を確立します。通信が確立した後、プロキシPDBでは、データベース・リンクを使用しないで参照先PDBと直接通信します。プロキシPDBが正常に機能するためには、参照先PDBのリスナーのホスト名およびポート番号が正しい必要があります。

関連項目:

プロキシPDBの作成の詳細は、create_pdb_clone「AS PROXY FROM」句を参照してください。

create_pdb_clone

この句を使用すると、ソースとターゲットPDBのクローニングによって、新しいPDBを作成できます。ソースは、ローカルCDBのPDB、リモートCDBのPDB、非CDBのいずれでもかまいません。ターゲットPDBはソースのクローンです。

ソースがローカルCDBのPDBである場合、ソースPDBを接続または切断できます。ソースがリモートCDBのPDBである場合、ソースPDBを接続する必要があります。

ソースがCDB以外またはリモートCDBのPDBである場合、ソースおよびターゲットPDBを含むCDBは次の要件を満たす必要があります。

  • エンディアン形式が同じであること。

  • 互換性のある文字セットおよび各国語文字セットが設定されていること。これは次のことを意味します。

    • ソース文字セット内の各文字がローカルCDBの文字セットで使用可能であること。

    • ソースの文字セット内の各文字のコード・ポイント値がローカルCDBの文字セットのコード・ポイント値と同じであること。

  • これらには、同じセットのデータベース・オプションがインストールされている必要があります。

ソース非CDBまたはPDBのデフォルト一時表領域を使用していたPDBのユーザーは、新しいPDBのデフォルト一時表領域を使用します。非CDBまたはPDB内のデフォルト以外の一時表領域を使用していたユーザーは、新しいPDB内の同じローカル一時表領域を引き続き使用します。

同じコマンドを使用して、統合されたPDBまたは分離されたPDBをクローニングできます。唯一異なる点は、指定する必要のあるキーストア・パスワードが複数のキーストアのパスワードであることです。

PDBのホット・クローニング: 例

   CREATE PLUGGABLE DATABASE CDB1_PDB2_CLONE FROM CDB1_PDB2
    KEYSTORE IDENTIFIED BY keystore_password

統合されたPDBの場合:

  • keystore_passwordは、ROOTキーストアのパスワードです。

  • ウォレットがROOTでオープンしている必要があります。

分離されたPDBの場合:

  • keystore_passwordは、PDB CDB1_PDB2_CLONE新しいキーストアのパスワードです。

  • ウォレットがCDB1_PDB2_CLONEでオープンしている必要があります。

PDBのクローニング: 例

統合されたPDB

   CREATE PLUGGABLE DATABASE CDB1_PDB1_C AS CLONE USING '/tmp/cdb1_pdb3.pdb'
    KEYSTORE IDENTIFED BY keystore_password DECRYPT USING transport_secret
  • TDEが使用されている場合はウォレットがROOTでオープンしている必要があります。

  • .pdbファイルにTDEキーが含まれている場合、KEYSTORE IDENTIFED BYtransport_secretを指定する必要があります。

  • keystore_passwordは、ROOTキーストアのパスワードです。

分離されたPDB

CREATE PLUGGABLE DATABASE CDB1_PDB2_C AS CLONE USING '/tmp/cdb1_pdb2.pdb'
  • KEYSTORE IDENTIFED BYまたはtransport_secretを指定する必要はありません。指定されている場合は無視されます。

  • ウォレットはROOT内で開いている必要はありません

関連項目:

既存のPDBのクローニングによるPDBの作成ステップの詳細は、『Oracle Database管理者ガイド』を参照してください。

FROM

この句を使用して、ソースPDBまたはCDB以外を指定します。ソースに関連付けられた各ファイルが新しい場所にコピーされ、その後これらのファイルが新しいPDBに関連付けられます。

ソースPDB または非CDBはクローズできません。次のようにオープンできます。

  • ソースPDB (ソースCDB)またはソース非CDBを含むCDBがARCHIVELOGモードおよびローカルUNDOモードの場合、ソースPDBまたはソース非CDBはREAD WRITEモードでオープンでき、クローニング操作中に完全に機能します。このことは、ホットPDBクローニングと呼ばれます。

  • ソースCDBまたはソース非CDBがARCHIVELOGモードでない場合、ソースPDBまたは非CDBはREAD ONLYでオープンする必要があります。

ソースPDBまたは非CDBを次のように指定します。

  • ソースがローカルCDBのPDBである場合、src_pdb_nameを使用して、ソースPDBの名前を指定します。src_pdb_nameにはPDB$SEEDは指定できません。かわりに、create_pdb_from_seed句を使用することによって、シードをテンプレートとして使用してPDBを作成します。

  • ソースがリモートCDBのPDBである場合、src_pdb_nameを使用してソースPDBの名前を指定し、dblinkを使用してリモートCDBに接続するために使用するデータベース・リンクの名前を指定します。

  • ソースがCDB以外の場合、NON$CDB@dblinkを指定します。dblinkは、CDB以外に接続するために使用するデータベース・リンクの名前です。

AS PROXY FROM

この句を使用すると、参照PDBと呼ばれる別のPDBを参照してプロキシPDBを作成できます。参照先PDBは、プロキシPDBと同じCDBまたは別のCDBに存在できます。ローカル・プロキシPDBは参照PDBと同じCDBに含まれており、リモート・プロキシPDBは参照PDBとは異なるCDBに含まれています。

src_pdb_name@dblinkに、参照PDBを指定します。

関連項目:

プロキシPDBの作成ステップの詳細は、『Oracle Database管理者ガイド』を参照してください。

default_tablespace

この句を使用すると、PDBのデフォルトの永続表領域を指定できます。デフォルトの表領域は、Oracle Databaseによって、別の永続表領域が指定されていないSYSTEM以外のユーザーに割り当てられます。ソースPDBまたは非CDBにtablespaceがすでに存在している必要があります。この表領域はすでに存在するため、create_pdb_clone句でPDBを作成する場合は、DATAFILE句またはextent_management_clauseを指定できません。

pdb_storage_clause

この句を使用して、新規PDBの記憶域制限値を指定します。この句のセマンティクスの詳細は、「pdb_storage_clause」を参照してください。

file_name_convert

この句を使用して、新しいPDBのファイルの名前をデータベースでどのように作成するかを決定できます。この句のセマンティクスの詳細は、「file_name_convert」を参照してください。

service_name_convert

この句を使用して、データベースで新しいPDBのサービス名を変更する方法を決定します。この句のセマンティクスの詳細は、「service_name_convert::=」を参照してください。

path_prefix_clause

この句を使用して、PDBに関連付けられたすべてのディレクトリ・オブジェクト・パスを、指定したディレクトリまたはそのサブディレクトリに確実に制限できます。この句のセマンティクスの詳細は、「path_prefix_clause」を参照してください。

tempfile_reuse_clause

TEMPFILE REUSEを指定すると、新しいPDBに関連付けられている一時ファイルがすでに存在する場合は、それをフォーマットして再利用できます。このセマンティクスの詳細は、「tempfile_reuse_clause」を参照してください。

SNAPSHOT COPY

PDBをクローニングする場合のみ、SNAPSHOT COPYを指定できます。CDB以外をクローニングする場合、この句はサポートされていません。ソースPDBは、ローカルCDBとリモートCDBのどちらに存在してもかまいません。SNAPSHOT COPY句は、記憶域スナップショットを使用してソースPDBをクローニングするようデータベースに指示します。これにより、ソース・データファイルの完全なコピーを作成する必要がなくなるため、クローンを作成する時間が削減されます。

SNAPSHOT COPY句を使用してソースPDBのクローンを作成し、CLONEDB初期化パラメータをFALSEに設定する場合、ソースPDBのファイルの基になるファイル・システムが記憶域スナップショットをサポートしている必要があります。そのようなファイル・システムとして、Oracle Automatic Storage Management Cluster File System (Oracle ACFS)およびDirect NFS Client記憶域などがあります。

SNAPSHOT COPY句を使用してソースPDBのクローンを作成し、CLONEDB初期化パラメータをTRUEに設定する場合、ソースPDBのファイルの基になるファイル・システムはローカル・ファイル・システム、ネットワーク・ファイル・システム(NFS)またはDirect NFSを有効化したクラスタ・ファイル・システムの可能性があります。ただし、クローンが存在するかぎり、ソースPDBは読取り専用オープン・モードのままである必要があります。

Direct NFSクライアントにより、Oracle Databaseは、オペレーティング・システム・カーネルのNFSクライアントを使用するかわりに、ネットワーク接続記憶域(NAS)デバイスに直接アクセスできます。PDBファイルがDirect NFSクライアント記憶域に格納されている場合は、次の追加の要件が満たされている必要があります。

  • ソースPDBファイルはNFSボリューム上に存在する必要があります。

  • 記憶域の資格証明は、透過的データ暗号化キーストアに格納されている必要があります。

  • 記憶域ユーザーは、ソースPDBファイルをホストするボリューム上でスナップショットを作成および破棄するのに必要な権限を持っている必要があります。

  • 資格証明は、ADMINISTER KEY MANAGEMENT ADD SECRET SQL文を使用してキーストアに格納されている必要があります。

SNAPSHOT COPY句を使用してソースPDBのクローンを作成する場合は、クローンが存在するかぎり、次の制限がソースPDBに適用されます。

  • 切断できません。

  • 削除できません。

SNAPSHOT COPY句を使用して作成したPDBのクローンは、切断できません。削除のみ可能です。SNAPSHOT COPY句を使用して作成したクローンを切断しようとすると、エラーが発生します。

Oracle Real Application Clusters (Oracle RAC)環境でSNAPSHOT COPY句を使用して作成されたPDBの場合、PDBのファイルにアクセスする必要がある各ノードは、マウントされている必要があります。LinuxまたはUNIXプラットフォームで実行されているOracle RACデータベースには、基礎となるNFSボリュームがマウントされている必要があります。Oracle RACデータベースがWindowsプラットフォームで実行され、かつ、共有記憶域にDirect NFSを使用している場合は、作成したボリュームexportおよびmountのエントリを含むすべてのノード上のoranfstabファイルを更新する必要があります。

記憶域クローンには、新しいPDBのGUIDを使用して名前およびタグが付けられます。DBA_PDB_HISTORYビューのCLONETAG列を問い合せて、記憶域クローンのクローン・タグを表示できます。

keystore_clause

ソース・データベースに暗号化データまたはキーストア・セットがある場合は、この句を指定します。

別のPDBをクローニングしてPDBを作成する場合に、ソース・データベースに暗号化されたデータがある場合は、keystore_passwordにターゲット・キーストアのキーストア・パスワードを指定する必要があります。

ソース・データベースに暗号化データがあるかどうかを確認するには、DBA_ENCRYPTED_COLUMNSデータ・ディクショナリ・ビューまたはV$ENCRYPTED_TABLESPACES動的パフォーマンス・ビューを問い合せます。

keystore_passwordのかわりにEXTERNAL STORE句を使用して、統合されたキーストアを使用しているPDBをクローニングできます。このオプションを使用する前に、最初にTDE SEPSウォレットを構成する必要があります。

分離されたキーストアを使用しているPDBには、EXTERNAL STORE句を使用できません。

pdb_refresh_mode_clause

REFRESH MODE句は、PDBをクローニングする場合にのみ適用されます。ソースPDBはリモートCDBに含まれている必要があります。つまり、FROM src_pdb_name@dblink句を使用してソースPDBを指定する必要があります。

この句を使用すると、PDBのリフレッシュ・モードを指定できます。この句を使用すると、リフレッシュ可能PDBを作成できます。ソースPDBの変更は、リフレッシュ可能PDBに手動または自動で伝播できます。この操作はリフレッシュと呼ばれます。次のリフレッシュ・モードを指定できます。

  • MANUAL - このモードでは、ALTER PLUGGABLE DATABASE REFRESH文を発行してリフレッシュ可能PDBをいつでも手動でリフレッシュできます。

  • EVERY refresh_interval MINUTESまたはHOURS – このモードでは、データベースに対し、選択した時間単位(分または時間)でのrefresh_intervalごとに、リフレッシュ可能なPDBをリフレッシュするように指示します。MINUTESを選択した場合、refresh_intervalが3000未満である必要があります。HOURSを選択した場合、refresh_intervalが2000未満である必要があります。このモードでは、ALTER PLUGGABLE DATABASE REFRESH文を発行していつでもPDBを手動でリフレッシュすることもできます。

  • NONE - このモードを指定した場合、クローンPDBはリフレッシュ可能PDBではありません。データベースでPDBを自動的にリフレッシュすることはできず、PDBを手動でリフレッシュすることもできません。このモードを指定した場合、後からPDBをリフレッシュ可能PDBに変更できません。これはデフォルトです。

リフレッシュ可能PDBは、READ ONLYモードでのみオープンできます。リフレッシュが発生するには、リフレッシュ可能PDBをクローズする必要があります。クローズされていない場合、手動リフレッシュを実行しようとするとエラーが発生します。クローズされていない場合、データベースで自動リフレッシュが試行されると、リフレッシュは次回のスケジュール・リフレッシュまで延期されます。

関連項目:

RELOCATE

この句を使用すると、CDB間でPDBを再配置できます。データベースはソースPDBをターゲットPDBにクローニングした後で、ソースPDBを削除します。また、データベースはPDBに関連付けられているファイルを新しい場所に移動させます。この操作によって、最小の停止時間で最も迅速にPDBを再配置できます。PDBの停止時間はほとんど、PDBのファイルを古い場所から新しい場所にコピーするのに要する時間です。再配置操作中、ソースPDBはREAD WRITEモードでオープンでき、すべての機能を利用できます。

AVAILABILITYキーワードを使用して可用性レベルを指定できます。デフォルトの可用性はNORMALです。AVAILABILITY MAXを指定すると、ソースとターゲットの間の永続接続でワークロードを円滑に移行するための追加の操作が実行されます。

create_pdb_clone句では、FROM src_pdb_name@dblink構文を使用して、ソースPDBの場所を指定する必要があります。src_pdb_nameには、ソースPDBの名前を指定します。dblinkには、ソースPDBの場所を示すデータベース・リンクを指定します。データベース・リンクは、PDBが再配置されるCDBに作成する必要があります。これは、リモートCDBのルートまたはリモートPDBのいずれかに接続できます。

関連項目:

PDBを再配置するステップの詳細は、『Oracle Database管理者ガイド』を参照してください。

NO DATA

PDBをクローニングする場合のみ、NO DATA句が適用されます。この句は、PDBのデータではなくソースPDBのデータ・モデル定義のクローニングを指定します。ソースPDBのディクショナリ・データはクローニングされますが、ソースPDBのユーザーが作成した表および索引データはすべて破棄されます。

NO DATA句の制限事項

NO DATA句には、次の制限事項があります。

  • NO DATA句を使用してPDBをクローニングする場合は、ソースPDBを読取り専用モードでオープンする必要があります。

  • CDB以外をクローニングする場合、NO DATAを指定できません。

  • ソースPDBにクラスタ表、クラスタ化表、アドバンスト・キューイング(AQ)表、索引構成表または抽象データ型列が含まれる場合、NO DATAを指定できません。

HOSTおよびPORT

これらの句は、プロキシPDBから参照するPDBを作成する場合にのみ役立ちます。このタイプのPDBは、参照先PDBと呼ばれます。これらの句のセマンティクスの詳細は、「HOSTおよびPORT」を参照してください。

create_pdb_from_xml

この句を使用すると、切断されたPDBまたは非CDB(ソース・データベース)をCDB(ターゲットCDB)に接続することによって、PDBを作成できます。ソース・データベースが切断されたPDBである場合は、ターゲットCDBから切断されたものでも、別のCDBから切断されたものでもかまいません。

ソース・データベースとターゲットCDBが次の要件を満たしている必要があります。

  • エンディアン形式が同じであること。

  • 互換性のある文字セットおよび各国語文字セットが設定されていること。これは次のことを意味します。

    • ソース・データベースの文字セット内の各文字がターゲットCDBの文字セットで使用可能であること。

    • ソース・データベースの文字セット内の各文字のコード・ポイント値がターゲットCDBの文字セットのコード・ポイント値と同じであること。

  • これらには、同じセットのデータベース・オプションがインストールされている必要があります。

関連項目:

AS CLONE

この句は、同じデータファイル・セットを使用して作成されたPDBがターゲットCDBにすでに含まれている場合にのみ指定します。ソース・ファイルは切断されたPDBとして維持され、再使用可能です。また、AS CLONE句を指定すると、DBIDやGUIDなどの新しい識別子が新しいPDB用に確実に生成されるようになります。

USING

この句を使用すると、接続しているソース・データベースに関する情報を含むファイルを指定できます。filenameには、ファイルのフルパス名を指定します。次のいずれかの方法でこのファイルを取得できます。

  • ソース・データベースが切断されたPDBである場合、ファイルはALTER PLUGGABLE DATABASEpdb_unplug_clauseによって次のように作成されています。

    • ファイル名が拡張子.xmlで終わる場合は、PDBに関するメタデータを含むXMLファイルです。この場合、XMLメタデータ・ファイルとPDBのデータファイルはCDBにアクセスできる場所にある必要があります。

    • ファイル名が拡張子.pdbで終わる場合は、PDBアーカイブ・ファイルです。これは、PDBに関するメタデータを含むXMLファイルとPDBのデータファイルを含む、圧縮されたファイルです。PDBアーカイブ・ファイルは、CDBにアクセスできる場所に存在する必要があります。.pdbアーカイブ・ファイルを使用する場合は、PDBの接続時にこのファイルが抽出され、PDBのファイルは.pdbアーカイブ・ファイルと同じディレクトリに配置されます。したがって、source_file_directory句は必要ありません。

  • ソース・データベースが非CDBの場合、DBMS_PDBパッケージを使用してXMLメタデータ・ファイルを作成する必要があり、XMLメタデータ・ファイルとソース非CDBのデータファイルがCDBにアクセスできる場所にある必要があります。

関連項目:

source_file_name_convert

XMLファイルの内容がソース・ファイルの場所を正確に記述していない場合にのみ、この句を指定してください。ソース・データベースを接続するために使用する必要があるファイルが、XMLファイルに指定されている場所に今ではもう存在しない場合は、この句を使用して、指定されているファイル名を実際のファイル名にマップします。

  • filename_patternには、XMLファイルで指定されたファイルの場所の文字列を指定します。

  • replacement_filename_patternには、PDBを作成するために使用する必要のあるファイルが含まれる実際の場所の文字列を指定します。

ソース・データベース・ファイルの検索時に、filename_patternreplacement_filename_patternに置換されます。

Oracle Managed Filesで管理されているファイルまたはディレクトリと一致するファイル名のパターンは指定できません。

PDBの作成に使用する必要のあるファイルが、XMLファイルで指定された場所に存在するときには、この句を省略してもかまいません。また、SOURCE_FILE_NAME_CONVERT=NONEを指定することもできます。

source_file_directory

XMLファイルの内容がソース・ファイルの場所を正確に記述しておらず、かつソース・ファイルがすべて単一ディレクトリに存在する場合にのみ、この句を指定してください。この句は、大量のデータ・ファイルがあり、source_file_name_convert句を使用した各ファイルの置換ファイル名パターンの指定が現実的でない場合に便利です。

  • directory_path_nameには、ソース・ファイルを含むディレクトリの絶対パスを指定します。切断されたPDBのXMLファイルに基づいて適切なファイルを検索するためにディレクトリがスキャンされます。

この句は、Oracle Managed Filesを使用する構成とOracle Managed Filesを使用しない構成に対して指定できます。

PDBの作成に使用する必要のあるファイルが、XMLファイルで指定された場所に存在するときには、この句を省略してもかまいません。また、SOURCE_FILE_DIRECTORY=NONEを指定することもできます。

COPY

XMLファイルにリストされたファイルを新しい場所にコピーして、新規PDB用に使用する場合は、COPYを指定します。これはデフォルトです。オプションのfile_name_convert句を使用して、新しいファイル名でパターンの置換を使用することができます。この句のセマンティクスの詳細は、「file_name_convert」を参照してください。

MOVE

XMLファイルにリストされたファイルを新しい場所にコピーではなく移動して、新規PDB用に使用する場合は、MOVEを指定します。オプションのfile_name_convert句を使用して、新しいファイル名でパターンの置換を使用することができます。この句のセマンティクスの詳細は、「file_name_convert」を参照してください。

NOCOPY

PDBのファイルを現在の場所に残す場合は、NOCOPYを指定します。PDBを接続するために、ファイルをコピーしたり移動したりする必要がない場合は、この句を使用してください。

service_name_convert

この句を使用して、データベースで新しいPDBのサービス名を変更する方法を決定します。この句のセマンティクスの詳細は、「service_name_convert::=」を参照してください。

default_tablespace

この句を使用すると、PDBのデフォルトの永続表領域を指定できます。デフォルトの表領域は、Oracle Databaseによって、別の永続表領域が指定されていないSYSTEM以外のユーザーに割り当てられます。tablespaceがすでにソース・データベースに存在している必要があります。この表領域はすでに存在するため、create_pdb_from_xml句でPDBを作成する場合は、DATAFILE句またはextent_management_clauseを指定できません。

pdb_storage_clause

この句を使用して、新規PDBの記憶域制限値を指定します。この句のセマンティクスの詳細は、「pdb_storage_clause」を参照してください。

path_prefix_clause

この句を使用して、PDBに関連付けられたすべてのディレクトリ・オブジェクト・パスを、指定したディレクトリまたはそのサブディレクトリに確実に制限できます。この句のセマンティクスの詳細は、「path_prefix_clause」を参照してください。

tempfile_reuse_clause

TEMPFILE REUSEを指定すると、新しいPDBに関連付けられている一時ファイルがすでに存在する場合は、それをフォーマットして再利用できます。このセマンティクスの詳細は、「tempfile_reuse_clause」を参照してください。

HOSTおよびPORT

これらの句は、プロキシPDBから参照するPDBを作成する場合にのみ役立ちます。このタイプのPDBは、参照先PDBと呼ばれます。これらの句のセマンティクスの詳細は、「HOSTおよびPORT」を参照してください。

create_pdb_from_mirror_copy

ミラー・コピー mirror_nameの準備ファイルを使用してプラガブル・データベースnew_pdb_nameを作成するには、この句を指定します。prepare_clauseによって作成された準備ファイルを使用して、ソース・データベースから新しいPDBが分割されます。

  • この句はルート・コンテナから実行する必要があります。

  • その他のオプション・パラメータの意味がこの句によって変更されることはありません。

  • 準備済ミラー・コピーからは1つのデータベースのみを分割できます。追加の分割を作成する場合は、新しいミラー・コピーを準備する必要があります。

using_snapshot_clause

名前、SCNまたはタイムスタンプで識別できる既存のPDBスナップショットを使用してPDBを作成する場合は、この句を指定します。

SNAPSHOT COPYを指定してPDBを作成する場合、新しいPDBはPDBスナップショットの有無に応じて異なります。これは、ユーザーがPDBを削除またはパージできるかどうかに影響します。

container_map_clause

新しいPDBに対する変更が発生するたびに動的に変更を更新するには、この句をCDBルートとアプリケーション・ルートのいずれかまたは両方に指定します。

コンテナ・マップについて次の点に注意する必要があります。

  • container_map_clauseはオプションです。

  • add_partition_clauseは、新しいPDBのルート(CDBルートまたはアプリケーション・ルート(あるいはその両方))で定義されているコンテナ・マップに新しいパーティションを追加します。

  • split_partition_clauseは、新しいPDBのルート(CDBルートまたはアプリケーション・ルート(あるいはその両方))で定義されているコンテナ・マップの既存のパーティションを分割します。

  • add_partition_clausesplit_partition_clauseがない場合は、新しいPDBのルートで定義されているコンテナ・マップは更新されません。

  • PDBの再配置では、ソースPDBのルート(CDBルートまたはアプリケーション・ルート(あるいはその両方))で定義されているコンテナ・マップが自動的に更新され、ソースPDBの「削除」が反映されます。

  • ハッシュ・パーティション化を使用して定義されたコンテナ・マップの動的なメンテナンスはサポートされていません

レンジ・パーティション・コンテナ・マップへの新規パーティションの追加: 例

  CREATE PLUGGABLE DATABASE cdb1_pdb3
    ADMIN USER IDENTIFIED BY manager
    FILE_NAME_CONVERT=('cdb1_pdb0, cdb1_pdb3')
    CONTAINER_MAP UPDATE (ADD PARTITION cdb1_pdb3 VALUES LESS THAN (100));
    ALTER PLUGGABLE DATABASE cdb1_pdb3 OPEN

レンジ・パーティション・コンテナ・マップの既存のパーティションを分割して新規パーティションを作成: 例

  CREATE PLUGGABLE DATABASE cdb1_pdb4
    ADMIN USER IDENTIFIED BY manager
    FILE_NAME_CONVERT=('cdb1_pdb0, cdb1_pdb4')
    CONTAINER_MAP UPDATE (SPLIT PARTITION cdb1_pdb3 
                            AT (50) 
                            INTO
                            (PARTITION cdb1_pdb3, PARTITION cdb1_pdb3)
    ALTER PLUGGABLE DATABASE cdb1_pdb4 OPEN

レンジ・パーティション・コンテナ・マップでの更新の確認: 例

  SELECT partition_name, high_value
    FROM dba_tab_partitions
    WHERE table_name='MAP' AND table_owner='SYS'

pdb_snapshot_clause

PDBスナップショットを作成できるようにする場合は、この句を指定します。

  • デフォルトはNONEです。これは、PDBのスナップショットを作成できないことを意味します。

  • MANUALは、PDBスナップショットが手動でのみ作成可能であることを意味します。

  • スナップショット間隔が指定されている場合、PDBスナップショットは指定した間隔で自動的に作成されます。また、ユーザーがPDBスナップショットを手動で作成できるようにもなります。

  • 分単位で表される場合、snapshot_intervalは3000未満である必要があります。

  • 時間単位で表される場合、snapshot_intervalは2000未満である必要があります。

create_pdb_decrypt_from_xml

このコマンドを実行するにはSYSKM権限が必要です。

統合モードのPDBの場合、次の制限事項が適用されます。

  • TDEで保護されているデータベースを使用している場合は、この句を指定する必要があります。それ以外の場合はオプションです。

  • 分離されたPDBの場合はこの句を指定する必要はありません。

  • ウォレットがROOTでオープンしている必要があります。

  • ウォレット・ファイルは、すべてのケース(NOCOPYCOPYおよびMOVE)でコピーされます。

XMLメタデータ・ファイルからPDBの接続: 例

CREATE PLUGGABLE DATABASE CDB1_PDB2 USING '/tmp/cdb1_pdb2.xml' NOCOPY
KEYSTORE IDENTIFIED BY keystore_password DECRYPT USING transport_secret

アーカイブ・ファイルからのPDBの接続: 例

CREATE PLUGGABLE DATABASE CDB1_PDB1_1_C USING '/tmp/cdb1_pdb3.pdb' DECRYPT USING transport_secret

分離モードのPDBの場合、DECRYPT USING transport_secretを指定する必要はありません。切断されたPDBをXMLファイルから作成するときにウォレット・ファイルがコピーされるため、これは必須ではありません。.pdb拡張子が付いたアーカイブ・ファイルからPDBを作成する場合、PDBのウォレット・ファイルがzip圧縮アーカイブに含まれます。

ewallet.p12ファイルがすでに宛先に存在している場合、バックアップが自動的に開始されます。バックアップ・ファイルの形式はewallet_PLGDB_2017090517455564.p12です。

シードを使用したPDBの作成: 例

次の文は、CDBのシードをテンプレートとして使用することで、PDB salespdbを作成します。管理ユーザーsalesadmが作成され、このユーザーにdbaロールが付与されます。永続表領域が割り当てられていないSYSTEM以外のユーザーには、デフォルト表領域salesが割り当てられます。新しいPDBのファイル名は、シードのファイル名の/disk1/oracle/dbs/pdbseed//disk1/oracle/dbs/salespdb/に置換することによって構成されます。salesに属するすべての表領域は2Gを超えてはいけません。salespdbに関連付けられているすべてのディレクトリ・オブジェクト・パスの場所が、/disk1/oracle/dbs/salespdb/ディレクトリに制限されます。

CREATE PLUGGABLE DATABASE salespdb
  ADMIN USER salesadm IDENTIFIED BY password
  ROLES = (dba)
  DEFAULT TABLESPACE sales
    DATAFILE '/disk1/oracle/dbs/salespdb/sales01.dbf' SIZE 250M AUTOEXTEND ON
  FILE_NAME_CONVERT = ('/disk1/oracle/dbs/pdbseed/',
                       '/disk1/oracle/dbs/salespdb/')
  STORAGE (MAXSIZE 2G)
  PATH_PREFIX = '/disk1/oracle/dbs/salespdb/';

既存のPDBからのPDBのクローニング: 例

次の文は、PDB salespdbをクローニングすることによって、PDB newpdbを作成します。PDB newpdbsalespdbは同じCDB内に存在します。記憶域の制限値を明示的に指定していないため、newpdbの容量には制限がなくなります。ファイルは/disk1/oracle/dbs/salespdb/から/disk1/oracle/dbs/newpdb/にコピーされます。newpdbに関連付けられているすべてのディレクトリ・オブジェクト・パスの場所が、/disk1/oracle/dbs/newpdb/ディレクトリに制限されます。

CREATE PLUGGABLE DATABASE newpdb FROM salespdb
  FILE_NAME_CONVERT = ('/disk1/oracle/dbs/salespdb/', '/disk1/oracle/dbs/newpdb/')
  PATH_PREFIX = '/disk1/oracle/dbs/newpdb';

CDBへのPDBの接続: 例

次の文は、以前に切断されたPDB salespdbをCDBに接続します。salespdbについて記述するメタデータの詳細は、XMLファイル/disk1/usr/salespdb.xmlに格納されています。XMLファイルでは、ファイルの現在の場所が正確に記述されていません。したがって、SOURCE_FILE_NAME_CONVERT句は、ファイルが/disk1/oracle/dbs/salespdb/ではなく/disk2/oracle/dbs/salespdb/にあることを示すために使用されます。NOCOPY句は、ファイルがすでに適切な場所に存在することを示します。salesに属するすべての表領域は2Gを超えてはいけません。ターゲットの場所に、XMLファイルで指定されている一時ファイルと同じ名前のファイルがあります。したがって、TEMPFILE REUSE句が必要です。

CREATE PLUGGABLE DATABASE salespdb
  USING '/disk1/usr/salespdb.xml'
  SOURCE_FILE_NAME_CONVERT =
    ('/disk1/oracle/dbs/salespdb/', '/disk2/oracle/dbs/salespdb/')
  NOCOPY
  STORAGE (MAXSIZE 2G)
  TEMPFILE REUSE;