プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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の作成は、Oracle Database 12cリリース1(12.1.0.2)より使用可能です。

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

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


注意:

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

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



関連項目:

  • PDBの概要は、『Oracle Database概要』を参照してください。

  • PDBの管理の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • PDBの変更および削除の詳細は、「ALTER PLUGGABLE DATABASE」および「DROP PLUGGABLE DATABASE」を参照してください。


前提条件

CDBに接続している必要があります。また、現在のコンテナがルートである必要があります。

システム権限のCREATE PLUGGABLE DATABASEが必要になります。

PDBの作成先のCDBがREAD WRITEモードになっている必要があります。

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システム権限を、リモート・ユーザーが保有している必要があります。

構文

create_pluggable_database::=

create_pluggable_database.gifの説明が続きます。
「図create_pluggable_database.gif」の説明

(create_pdb_from_seed::=create_pdb_clone::=create_pdb_from_xml::=を参照)

create_pdb_from_seed::=

create_pdb_from_seed.gifの説明が続きます。
「図create_pdb_from_seed.gif」の説明

(pdb_dba_roles::=default_tablespace::=file_name_convert::=pdb_storage_clause::=path_prefix_clause::=tempfile_reuse_clause::=user_tablespaces_clause::=standbys_clause::=logging_clause::=create_file_dest_clause::=)

pdb_dba_roles::=

pdb_dba_roles.gifの説明が続きます。
「図pdb_dba_roles.gif」の説明

default_tablespace::=

default_tablespace.gifの説明が続きます。
「図default_tablespace.gif」の説明

(datafile_tempfile_spec::=extent_management_clause::=を参照)

file_name_convert::=

file_name_convert.gifの説明が続きます。
「図file_name_convert.gif」の説明

pdb_storage_clause::=

pdb_storage_clause.gifの説明が続きます。
「図pdb_storage_clause.gif」の説明

(size_clause::=を参照)

path_prefix_clause::=

path_prefix_clause.gifの説明が続きます。
「図path_prefix_clause.gif」の説明

tempfile_reuse_clause::=

tempfile_reuse_clause.gifの説明が続きます。
「図tempfile_reuse_clause.gif」の説明

user_tablespaces_clause::=

user_tablespaces_clause.gifの説明が続きます。
「図user_tablespaces_clause.gif」の説明

standbys_clause::=

standbys_clause.gifの説明が続きます。
「図standbys_clause.gif」の説明

logging_clause::=

logging_clause.gifの説明が続きます。
「図logging_clause.gif」の説明

create_file_dest_clause::=

create_file_dest_clause.gifの説明が続きます。
「図create_file_dest_clause.gif」の説明

create_pdb_clone::=

create_pdb_clone.gifの説明が続きます。
「図create_pdb_clone.gif」の説明

(pdb_storage_clause::=file_name_convert::=path_prefix_clause::=tempfile_reuse_clause::=user_tablespaces_clause::=standbys_clause::=logging_clause::=create_file_dest_clause::=)

create_pdb_from_xml::=

create_pdb_from_xml.gifの説明が続きます。
「図create_pdb_from_xml.gif」の説明

(source_file_name_convert::=, source_file_directory::=, file_name_convert::=, pdb_storage_clause::=, path_prefix_clause::=, tempfile_reuse_clause::=, user_tablespaces_clause::=, standbys_clause::=, logging_clause::=, create_file_dest_clause::=)

source_file_name_convert::=

source_file_name_convert.gifの説明が続きます。
「図source_file_name_convert.gif」の説明

source_file_directory::=

source_file_directory.gifの説明が続きます。
「図source_file_directory.gif」の説明

セマンティクス

pdb_name

作成するPDBの名前を指定します。PDB名の最初の文字は英数字にする必要があります。残りの文字には英数字またはアンダースコア(_)を使用できます。

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

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上で管理タスクを実行できます。

default_tablespace

この句を指定すると、PDBのデフォルトの永続表領域を作成できます。default_tablespace句のセマンティクスは、CREATE DATABASE文と同じです。詳細は、「CREATE DATABASE」の「default_tablespace」を参照してください。

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初期化パラメータを使用してファイル名が生成されます。このパラメータが設定されていないと、エラーが発生します。

pdb_storage_clause

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

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

  • MAX_SHARED_TEMP_SIZEを使用すると、PDBに接続したセッションで使用可能にする共有一時表領域の記憶域の容量を、size_clauseで指定した値に制限できます。MAX_SHARED_TEMP_SIZE UNLIMITEDを指定すると、容量は無制限になります。

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

path_prefix_clause

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

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

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

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

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

tempfile_reuse_clause

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

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

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

user_tablespaces_clause


注意:

user_tablespaces_clauseは、Oracle Database 12cリリース1(12.1.0.2)から使用可能です。

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

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

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

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

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

PDBで使用できない表領域はPDBでオフラインです。それらの表領域に属するすべてのデータファイルは名前がなく、PDBでオフラインです。

standbys_clause


注意:

standbys_clauseは、Oracle Database 12cリリース1(12.1.0.2)から使用可能です。

この句を使用して、新しいPDBがスタンバイCDBに含まれるかどうかを指定します。

  • ALLを指定して、すべてのスタンバイCDBの新しいPDBを含めます。スタンバイ・リカバリ中に、スタンバイCDBはPDBのデータファイルを検索します。データファイルが見つからない場合、スタンバイ・リカバリが停止するため、リカバリが再開する前にデータファイルを正しい場所にコピーする必要があります。これはデフォルトです。

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

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

logging_clause


注意:

logging_clauseは、Oracle Database 12cリリース1(12.1.0.2)から使用可能です。

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

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

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

create_file_dest_clause


注意:

create_file_dest_clauseは、Oracle Database 12cリリース1(12.1.0.2)から使用可能です。

デフォルトでは、新しく作成された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初期化パラメータを暗黙的に設定します。

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の作成手順の詳細は、『Oracle Database管理者ガイド』を参照してください。

FROM句

この句を使用して、ソースPDBまたはCDB以外を指定します。ソースはオープン・モードREAD ONLYでオープンしている必要があります。ソースに関連付けられた各ファイルが新しい場所にコピーされ、その後これらのファイルが新しいPDBに関連付けられます。

  • ソースがローカル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以外に接続するために使用するデータベース・リンクの名前です。

pdb_storage_clause

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

file_name_convert

この句を使用して、新しいPDBのファイルの名前をデータベースでどのように作成するかを決定できます。この句のセマンティクスの詳細は、「file_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列を問い合せて、記憶域クローンのクローン・タグを表示できます。

NO DATA


注意:

NO DATA句は、Oracle Database 12cリリース1(12.1.0.2)から使用可能です。

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

NO DATA句の制限事項 次の制限事項がNO DATA句に適用されます。

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

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

create_pdb_from_xml

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

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

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

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

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

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

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


関連項目:

  • CDBへの切断されたPDBの接続によるPDBの作成手順および非CDBを使用したPDBの作成手順の詳細は、『Oracle Database管理者ガイド』を参照してください。

  • DBMS_PDBパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


AS CLONE句

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

USING句

filenameを使用して、接続するソース・データベースについて記述しているメタデータを含むXMLファイルの名前を指定できます。このXMLファイルと、ソース・データベースに関連付けられたファイルは、CDBにアクセスできる場所に存在している必要があります。このファイルは次のように取得できます。

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

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

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


注意:

source_file_directory句は、Oracle Database 12cリリース1 (12.1.0.2)以降で使用可能です。

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を接続するために、ファイルをコピーしたり移動したりする必要がない場合は、この句を使用してください。

pdb_storage_clause

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

path_prefix_clause

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

tempfile_reuse_clause

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

シードを使用した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 pdb1をクローニングすることによって、PDB pdb2を作成します。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;