用途
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内のユーザー作成サービス名である場合は、そのサービスを削除し、そのサービスのかわりに、競合しない名前を使用して、同じプロパティを持つ同じ用途のサービスを別に作成します。 |
関連項目:
|
前提条件
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_pdb_from_seed::=、create_pdb_clone::=、create_pdb_from_xml::=を参照)
(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::=)
(datafile_tempfile_spec::=、extent_management_clause::=を参照)
(size_clause::=を参照)
(pdb_storage_clause::=、file_name_convert::=、path_prefix_clause::=、tempfile_reuse_clause::=、user_tablespaces_clause::=、standbys_clause::=、logging_clause::=、create_file_dest_clause::=)
(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::=)
セマンティクス
pdb_name
作成するPDBの名前を指定します。PDB名の最初の文字は英数字にする必要があります。残りの文字には英数字またはアンダースコア(_
)を使用できます。
PDB名はCDB内で一意にする必要があります。また、そのインスタンスが特定のリスナーを介してアクセスされるすべてのCDBのスコープ内で一意にする必要があります。
この句を使用すると、CDB内のシードをテンプレートとして使用して、PDBを作成できます。
関連項目: シードを使用したPDBの作成手順の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
この句を使用して、PDBに対する管理タスクを実行するために必要な権限を持つ管理ユーザーを作成できます。admin_user_name
に、作成するユーザーの名前を指定します。IDENTIFIED BY
句を使用すると、admin_user_name
のパスワードを指定できます。PDBにローカル・ユーザーが作成され、このユーザーにPDB_DBA
ローカル・ロールが付与されます。
この句を使用すると、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」
を参照してください。
この句を使用して、PDBのファイル(データファイルやウォレット・ファイルなど)の名前をデータベースでどのように作成するかを決定できます。
filename_pattern
には、シードに関連付けられたファイル名(シードを使用してPDBを作成する場合)、ソースPDBに関連付けられたファイル名(PDBをクローニングする場合)またはXMLファイル内にリストされたファイル名(PDBをCDBに接続する場合)に含まれる文字列を指定します。
replacement_filename_pattern
には、置換文字列を指定します。
新規PDBに関連付けられたファイル名の生成時に、filename_pattern
がreplacement_filename_pattern
で置換されます。
Oracle Managed Filesで管理されているファイルまたはディレクトリと一致するファイル名のパターンは指定できません。
FILE_NAME_CONVERT
=
NONE
を指定できます。これは、この句を省略した場合と同じになります。この句を省略すると、データベースはまずOracle管理ファイルを使用してファイル名を生成しようとします。Oracle Managed Filesを使用している場合は、PDB_FILE_NAME_CONVERT
初期化パラメータを使用してファイル名が生成されます。このパラメータが設定されていないと、エラーが発生します。
この句を使用して、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で使用可能な表領域を指定できます。SYSTEM
、SYSAUX
およびTEMP
表領域はすべてのPDBで使用可能であり、この句に指定することはできません。
tablespace
を指定して、新しいPDBで表領域を使用可能にします。表領域を複数指定する場合は、カンマ区切りのリストにします。
NONE
を指定して、SYSTEM
、SYSAUX
および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
初期化パラメータを暗黙的に設定します。
この句を使用すると、ソースとターゲット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管理者ガイド』を参照してください。 |
この句を使用して、ソース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
を指定できません。
この句を使用すると、切断されたPDBまたは非CDB(ソース・データベース)をCDB(ターゲットCDB)に接続することによって、PDBを作成できます。ソース・データベースが切断されたPDBである場合は、ターゲットCDBから切断されたものでも、別のCDBから切断されたものでもかまいません。
ソース・データベースとターゲットCDBが次の要件を満たしている必要があります。
エンディアン形式が同じであること。
互換性のあるキャラクタ・セットおよび各国語キャラクタ・セットが設定されていること。これは次のことを意味します。
ソース・データベースのキャラクタ・セット内の各文字がターゲットCDBのキャラクタ・セットで使用可能であること。
ソース・データベースのキャラクタ・セット内の各文字のコード・ポイント値がターゲットCDBのキャラクタ・セットのコード・ポイント値と同じであること。
これらには、同じセットのデータベース・オプションがインストールされている必要があります。
関連項目:
|
この句は、同じデータファイル・セットを使用して作成されたPDBがターゲットCDBにすでに含まれている場合にのみ指定します。ソース・ファイルは切断されたPDBとして維持され、再使用可能です。また、AS
CLONE
句を指定すると、DBIDやGUIDなどの新しい識別子が新しいPDB用に確実に生成されるようになります。
filename
を使用して、接続するソース・データベースについて記述しているメタデータを含むXMLファイルの名前を指定できます。このXMLファイルと、ソース・データベースに関連付けられたファイルは、CDBにアクセスできる場所に存在している必要があります。このファイルは次のように取得できます。
ソース・データベースが切断されたPDBである場合、このXMLメタデータ・ファイルはALTER PLUGGABLE
DATABASE
のpdb_unplug_clause
によって生成されています。
ソース・データベースが非CDBである場合は、DBMS_PDB
パッケージを使用して、このXMLメタデータ・ファイルを作成する必要があります。
XMLファイルの内容がソース・ファイルの場所を正確に記述していない場合にのみ、この句を指定してください。ソース・データベースを接続するために使用する必要があるファイルが、XMLファイルに指定されている場所に今ではもう存在しない場合は、この句を使用して、指定されているファイル名を実際のファイル名にマップします。
filename_pattern
には、XMLファイルで指定されたファイルの場所の文字列を指定します。
replacement_filename_pattern
には、PDBを作成するために使用する必要のあるファイルが含まれる実際の場所の文字列を指定します。
ソース・データベース・ファイルの検索時に、filename_pattern
がreplacement_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
を指定することもできます。
XMLファイルにリストされたファイルを新しい場所にコピーして、新規PDB用に使用する場合は、COPY
を指定します。これはデフォルトです。オプションのfile_name_convert
句を使用して、新しいファイル名でパターンの置換を使用することができます。この句のセマンティクスの詳細は、「file_name_convert」を参照してください。
XMLファイルにリストされたファイルを新しい場所にコピーではなく移動して、新規PDB用に使用する場合は、MOVE
を指定します。オプションのfile_name_convert
句を使用して、新しいファイル名でパターンの置換を使用することができます。この句のセマンティクスの詳細は、「file_name_convert」を参照してください。
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 newpdb
とsalespdb
は同じ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;