5 PDB作成の概要
CDBは、複数のPDB作成方法をサポートしています。
作成されたPDBでは、メタデータとシステム提供オブジェクトへの内部リンクをはじめとする完全なデータ・ディクショナリが、CDBルートに自動的に含まれます。すべてのPDBを単一のルート(CDBルートまたはアプリケーション・ルート)から定義する必要があります。
各PDBにはグローバル一意識別子(GUID)があります。PDB GUIDは、PDBのファイルを格納するディレクトリ(Oracle Managed Filesディレクトリおよび非Oracle Managed Filesディレクトリの両方を含む)の名前を生成するために主に使用されます。
この章のトピックは、次のとおりです:
- PDBを作成する手法
様々な手法でPDBを作成できますが、すべてCREATE PLUGGABLE DATABASE文が必要です。 - PDB記憶域
どのような方法を選択してPDBを作成する場合も、データを格納する表領域およびファイルを決定する必要があります。 - サービス名変換
PDBの作成には、データベース・サービス名の変更を管理する重要な側面があります。 - PDB作成のための句の概要
CREATE PLUGGABLE DATABASE文を使用してPDBを作成する場合は、様々な要因に基づいて多様な句を使用できます。 - PDB作成の一般的な前提条件
PDBを作成する前に、特定の前提条件を満たす必要があります。
親トピック: PDBおよびアプリケーション・コンテナの作成および削除
PDBを作成する手法
様々な手法でPDBを作成できますが、すべてCREATE PLUGGABLE DATABASE文が必要です。
PDBの作成は、PDBをCDBまたはアプリケーション・コンテナに関連付けるプロセスです。
次の図に、PDB作成のオプションを示します。
次の表は、作成方法を示しています。このマニュアルには説明されていないその他の手法として、Recovery ManagerのDUPLICATEコマンドを使用して、あるCDBから別のCDBにPDBをコピーする方法があります。
表5-1 PDBを作成する手法
| 手法 | 説明 | 詳細情報 |
|---|---|---|
|
PDBを最初から作成します |
PDBシードまたはアプリケーション・シードのファイルを使用して、PDBをCDBに作成します。この手法では、シードに関連付けられているファイルを新しい場所にコピーし、コピーしたファイルを新しいPDBに関連付けます。これは、デフォルトの作成メカニズムです。他の手法は、ソース・データベース(PDBまたは非CDB)またはXMLのいずれかが必要です。 |
|
|
既存のPDBまたは非CDBをクローニングします |
ソースPDBまたは非CDBをクローニングしてPDBを作成します。ソースは、ローカルCDB内のPDB、リモートCDB内のPDB、ローカルまたはリモート・アプリケーション・コンテナ内のPDBまたは非CDBにすることができます。この手法では、ソースに関連付けられているファイルを新しい場所にコピーし、コピーしたファイルを新しいPDBに関連付けます。 |
|
|
PDBを異なるCDBに再配置します |
あるCDBから別のCDBに再配置することでPDBを作成します。この手法は、PDBに関連付けられているファイルを新しい場所に移動します。 |
|
|
切断されたPDBをCDBに接続します |
PDBを記述しているXMLメタデータ・ファイルを使用してPDBを作成し、これらのファイルをPDBに関連付けてPDBをCDBに接続します。 |
|
|
PDBをプロキシPDBとして参照します |
データベース・リンクで別のPDBを参照することで、PDBをプロキシPDBとして作成します。参照先PDBは、プロキシPDBと同じCDBまたは別のCDBに存在できます。 |
|
|
非CDBからPDBを作成し、PDBをCDBに接続します |
PDBに非CDBを適用して、PDBを作成します。 |
PDBを異なるCDBに接続する必要がある場合は、そのPDBを切断します。PDBが必要なくなった場合は、そのPDBを切断または削除できます。切断されたPDBは、CDBに接続されるまで使用できません。
この項では、次の項目について説明します。
- 現在のコンテナおよびPDB作成
CREATE PLUGGABLE DATABASE文を使用してPDB、アプリケーション・コンテナ、アプリケーション・シードおよびアプリケーションPDBを作成できます。 - 非CDBからPDBを作成するためのオプション
非CDBをPDBに移動するための複数のオプションがあります。
関連項目:
-
DUPLICATEコマンドを使用してPDBを複製する方法を学習するには、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください -
CREATE PLUGGABLE DATABASE文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください
親トピック: PDB作成の概要
現在のコンテナおよびPDB作成
CREATE PLUGGABLE DATABASE文を使用してPDB、アプリケーション・コンテナ、アプリケーション・シードおよびアプリケーションPDBを作成できます。
PDBを作成すると、現在のコンテナ(CDBルートまたはアプリケーション・ルート)によってPDBの関連付けが決定されます。PDBおよびアプリケーションPDBを作成するSQL文は同じです。たとえば、CREATE PLUGGABLE DATABASE文をCDBルートで実行した場合、PDBはCDBルートに属します。CREATE PLUGGABLE DATABASE文をアプリケーション・ルートで実行した場合、アプリケーションPDBはアプリケーション・ルートに属します。
CDBルートが現在のコンテナであるときに、アプリケーション・ルートを作成するには、AS APPLICATION CONTAINER句を指定したCREATE PLUGGABLE DATABASE文を実行します。PDBをアプリケーション・コンテナにクローニング、再配置または接続する場合は、PDBのアプリケーション名およびバージョンが、アプリケーション・コンテナのアプリケーション名およびバージョンと一致する必要があります。
親トピック: PDBを作成する手法
非CDBからPDBを作成するためのオプション
非CDBをPDBに移動するには複数のオプションがあります。
このタスクは、次の方法で実行できます。
-
非CDBをクローニングします
これは、非CDBを使用してPDBを作成する最も簡単な方法ですが、非CDBのファイルを新しい場所にコピーする必要があります。
CDBと非CDBの両方でOracle Database 12cリリース1 (12.1.0.2)以上が実行されている必要があります。現在の非CDBでOracle Database 12cリリース1 (12.1.0.2)よりも前のOracle Databaseリリースを使用している場合、この手法を使用するには、非CDBを最新のリリースにアップグレードする必要があります。
-
DBMS_PDBパッケージを使用してXMLメタデータ・ファイルを生成しますXMLメタデータ・ファイルで非CDBのデータベース・ファイルを記述しているため、その非CDBをCDBに接続できます。
この方法は、非CDBをクローニングしてPDBを作成するよりもステップが多くなりますが、場合によっては、非CDBファイルを移動せずに非CDBを使用してPDBを作成することが可能になります。
この手法を使用するには、非CDBがOracle Database 12c以降で実行されている必要があります。現在の非CDBでOracle Database 12cより前のリリースを使用している場合は、新しいリリースにアップグレードする必要があります。
-
非CDBからデータをエクスポートし、Oracle Data Pumpを使用して、PDBにインポートします
インポート時に、ユーザー名の後にPDBの接続識別子を指定します。たとえば、PDBの接続識別子が
hrpdbである場合は、Oracle Data Pumpインポート・ユーティリティを実行するとき、次のように入力します。impdp user_name@hrpdb ...非CDBのOracle DatabaseリリースがOracle Database 11g リリース2 (11.2.0.3)以上である場合、完全なトランスポータブル・エクスポート/インポートを使用して、データを移動できます。Oracle Database 11g リリース2 (11.2.0.3)またはOracle Database 11g以上のデータベースからOracle Database 12c以降に非CDBをトランスポートする場合、
VERSIONデータ・ポンプ・エクスポート・パラメータを12.0.0.0.0以上に設定する必要があります。非CDBのOracle DatabaseリリースがOracle Database 11g リリース2 (11.2.0.3)より前である場合、トランスポータブル表領域を使用してデータを移動するか、または完全なデータベース・エクスポート/インポートを実行できます。
-
GoldenGateを使用してデータを非CDBからPDBにレプリケートします
PDBが非CDBに追い付いている場合は、そのPDBにフェイルオーバーします。
Oracle GoldenGateのドキュメントを参照してください。
関連項目:
-
アップグレードについては、『Oracle Databaseアップグレード・ガイド』を参照してください
-
データのトランスポートの詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: PDBを作成する手法
PDB記憶域
どのような方法を選択してPDBを作成する場合も、データを格納する表領域およびファイルを決定する必要があります。
この項では、次の項目について説明します。
- ストレージ制限
CREATE PLUGGABLE DATABASE文のオプションのSTORAGE句では、PDBに対してストレージ制限を指定します。 - デフォルト表領域
CREATE PLUGGABLE DATABASE文のDEFAULT TABLESPACE句では、新しいPDBのデフォルト表領域を指定します。 - ユーザー表領域
CREATE PLUGGABLE DATABASE文のUSER_TABLESPACES句では、新しいPDBで使用できる表領域を指定します。 - PDBファイルの場所
CREATE PLUGGABLE DATABASE文で、新しいPDBで使用するファイルの場所を指定できます。
親トピック: PDB作成の概要
ストレージ制限
CREATE PLUGGABLE DATABASE文のオプションのSTORAGE句では、PDBに対してストレージ制限を指定します。
STORAGE句では、次の制限を指定します。
-
PDBに属するすべての表領域が使用できる記憶域の量
MAXSIZEおよびsize句を使用して制限を指定するか、またはMAXSIZEをUNLIMITEDに設定して制限がないことを指定します。 -
PDB内の統合監査OSスピルオーバー(.bin形式)ファイルに使用できるストレージ量
MAX_AUDIT_SIZEおよびsize句を使用して制限を指定するか、またはMAX_AUDIT_SIZEをUNLIMITEDに設定して制限がないことを指定します。 -
PDBが使用できる自動診断リポジトリ(ADR)の診断(トレース・ファイルおよびインシデント・ダンプ)の量
MAX_DIAG_SIZEおよびsize句を使用して制限を指定するか、またはMAX_DIAG_SIZEをUNLIMITEDに設定して制限がないことを指定します。
STORAGE UNLIMITEDが設定されている場合、またはSTORAGE句がない場合は、PDBのストレージ制限はありません。
次に、STORAGE句の使用例を示します。
例5-1 ストレージ制限を指定するSTORAGE句
次のSTORAGE句では、PDBに属するすべての表領域が使用する記憶域が2GBを超えない必要があることを指定しています。
STORAGE (MAXSIZE 2G)
例5-2 無制限の記憶域を指定するSTORAGE句
次のSTORAGE句では、PDBに属するすべての表領域の記憶域に制限がないことを指定しています。
STORAGE (MAXSIZE UNLIMITED)
関連項目:
STORAGE句の構文は、『Oracle Database SQL言語リファレンス』を参照してください
親トピック: PDB記憶域
デフォルト表領域
CREATE PLUGGABLE DATABASE文のDEFAULT TABLESPACE句では、新しいPDBのデフォルト表領域を指定します。
Oracle Databaseによって、別の永続表領域が指定されていないSYSTEM以外のユーザーに対してデフォルト表領域が割り当てられます。
PDBをPDBシードまたはアプリケーション・シードから作成し、DEFAULT TABLESPACE句を指定する場合、Oracle Databaseはsmallfile表領域を作成し、それをPDBのデフォルト表領域として設定します。PDBのクローニングや切断されたPDBの接続など、PDBシードまたはアプリケーション・シード以外の方法を使用してPDBを作成する場合、デフォルト表領域はソースPDBにすでに存在する表領域である必要があります。
例5-3 DEFAULT TABLESPACE句
DEFAULT TABLESPACE sales親トピック: PDB記憶域
ユーザー表領域
CREATE PLUGGABLE DATABASE文のUSER_TABLESPACES句では、新しいPDBで使用できる表領域を指定します。
この句を使用すると、複数のスキーマのデータを異なるPDBに分けることができます。たとえば、非CDBをPDBに移動する際、非CDBに様々なアプリケーションでそれぞれサポートされている複数のスキーマがある場合は、この句を使用して、各スキーマに属するデータを別個のPDBに分離できます。この手法では、各スキーマが非CDBの個別の表領域を使用するものとします。
この句を使用して、次のいずれかのオプションを指定できます。
-
含める1つ以上の表領域をリストします。
-
すべての表領域を含める場合は
ALL(デフォルト)を指定します。 -
リストした表領域を除くすべての表領域を含める場合は
ALLEXCEPTを指定します。 -
すべての表領域を除外する場合は
NONEを指定します。 -
ユーザー表領域の作成モードがオラクル社提供の表領域(
SYSTEMやSYSAUXなど)の作成モードと異なる必要がある場合は、USER_TABLESPACES句に次のいずれかを指定します。-
COPY: 表領域のファイルは新しい場所にコピーされます。 -
MOVE: 表領域のファイルは新しい場所に移動されます。 -
NOCOPY: 表領域のファイルはコピーまたは移動されません。 -
SNAPSHOT COPY: 表領域は記憶域スナップショットにクローニングされます。 -
NO DATA: 表領域のデータ・モデル定義はクローニングされますが、表領域のデータはクローニングされません。
-
CDBの互換性レベルが12.2.0以上の場合、この句によって除外される表領域は新しいPDBにオフラインで作成され、データファイルは関連付けられません。CDBの互換性レベルが12.2.0未満の場合、この句で除外される表領域は新しいPDBでオフラインとなり、このような表領域に属するデータファイルはすべて無名でオフラインとなります。
この句は、SYSTEM、SYSAUXまたはTEMPの各表領域には適用されません。これらの表領域は、この句の表領域リストに含めないでください。
次に、USER_TABLESPACES句の使用例を示します。
例5-4 1つの表領域が含まれるUSER_TABLESPACES句
PDBの作成元となる非CDBまたはPDBにはtbs1、tbs2およびtbs3の各表領域があるとします。このUSER_TABLESPACES句には、tbs2表領域は含まれますが、tbs1表領域およびtbs3表領域は含まれません。
USER_TABLESPACES=('tbs2')
例5-5 表領域のリストが含まれるUSER_TABLESPACES句
PDBの作成元となる非CDBまたはPDBにはtbs1、tbs2、tbs3、tbs4およびtbs5の各表領域があるとします。このUSER_TABLESPACES句には、tbs1、tbs4およびtbs5の各表領域は含まれますが、tbs2表領域およびtbs3表領域は含まれません。
USER_TABLESPACES=('tbs1','tbs4','tbs5')例5-6 リストした表領域を除くすべての表領域が含まれるUSER_TABLESPACES句
PDBの作成元となる非CDBまたはPDBにはtbs1、tbs2、tbs3、tbs4およびtbs5の各表領域があるとします。このUSER_TABLESPACES句には、tbs2表領域およびtbs3表領域は含まれますが、tbs1、tbs4およびtbs5の各表領域は含まれません。
USER_TABLESPACES=ALL EXCEPT('tbs1','tbs4','tbs5')例5-7 異なる作成モードのUSER_TABLESPACES
この例は、非CDBを接続し、非CDBからtbs3ユーザー表領域のみ含める完全なCREATE PLUGGABLE DATABASE文を示します。例では、オラクル社が提供する表領域(SYSTEMやSYSAUXなど)のファイルは新しい場所にコピーしますが、tbs3ユーザー表領域のファイルは移動します。
CREATE PLUGGABLE DATABASE ncdb USING '/disk1/oracle/ncdb.xml'
COPY
FILE_NAME_CONVERT = ('/disk1/oracle/dbs/', '/disk2/oracle/ncdb/')
USER_TABLESPACES=('tbs3') MOVE;親トピック: PDB記憶域
PDBファイルの場所
CREATE PLUGGABLE DATABASE文で、新しいPDBで使用するファイルの場所を指定できます。
「ファイル名」という用語は、ファイルの名前と場所の両方を意味します。CREATE PLUGGABLE DATABASE文には、作成される新しいPDBのファイル名を示す次の句が含まれています。
-
FILE_NAME_CONVERT句では、PDBが作成された後のPDBのファイル名を指定します。ファイルが最終保存先にまだない場合にこの句を使用して、PDBの作成時にこれらのファイルをコピーまたは移動します。この句は、任意の
CREATE PLUGGABLE DATABASE文で使用できます。 -
CREATE_FILE_DEST句には、PDBのファイル用のデフォルトのOracle Managed Filesファイル・システム・ディレクトリまたはOracle ASMディスク・グループを指定します。この句を使用して、CDB用にルートで指定したOracle Managed Filesのデフォルトの場所に関係なく、新しいPDBに対してOracle Managed Filesを有効にします。この句は、任意の
CREATE PLUGGABLE DATABASE文で使用できます。
必要な場合は、この両方の句を同じCREATE PLUGGABLE DATABASE文で使用できます。さらに、次の初期化パラメータによって新しいPDBファイルの場所を制御できます。
-
ルートに設定した
DB_CREATE_FILE_DEST初期化パラメータこの初期化パラメータでは、CDB用のOracle Managed Filesのデフォルトの場所を指定します。このパラメータをPDBで設定する場合、そのPDB用のOracle Managed Filesのデフォルトの場所を指定します。
-
PDB_FILE_NAME_CONVERT初期化パラメータこの初期化パラメータは、
CREATE PLUGGABLE DATABASE文の処理時に、既存ファイルの名前と新しいファイルの名前をマップします。
次の表に、同じCREATE PLUGGABLE DATABASE文で両方の句を使用し、初期化パラメータをどちらも設定した場合の優先順位を示します。各句と初期化パラメータについて、表ではCREATE PLUGGABLE DATABASE文で作成されたファイルがOracle Managed Filesを使用するかどうかも示します。
表5-2 ファイルの場所の句および初期化パラメータのサマリー
| 句または初期化パラメータ | 優先順位 | CREATE PLUGGABLE DATABASEによって作成されたファイルがOracle Managed Filesを使用するか。 |
|---|---|---|
FILE_NAME_CONVERT句
|
1 | いいえ |
CREATE_FILE_DEST句
|
2 | はい |
DB_CREATE_FILE_DEST初期化パラメータ
|
3 | はい |
PDB_FILE_NAME_CONVERT初期化パラメータ
|
4 | いいえ |
Oracle Managed Filesの使用について、表はCREATE PLUGGABLE DATABASE文で作成されるファイルにのみ適用されます。PDBが作成された後にPDBに対して作成されたファイルは、Oracle Managed Filesを使用する場合と使用しない場合があります。
また、CREATE PLUGGABLE DATABASE文でFILE_NAME_CONVERTとCREATE_FILE_DESTの両方を指定した場合、PDBの作成時、配置されるファイルにはFILE_NAME_CONVERT設定が使用され、PDBでのDB_CREATE_FILE_DEST初期化パラメータの設定にはCREATE_FILE_DEST設定が使用されます。この場合、PDBの作成後、Oracle Managed FilesによってPDBのファイルの場所が制御されます。
ノート:
PATH_PREFIX句は、Oracle Managed Filesによって作成されたファイルには影響しません。
この項では、次の項目について説明します。
- FILE_NAME_CONVERT句
PDBでOracle Managed Filesを使用しない場合、CREATE PLUGGABLE DATABASE文のFILE_NAME_CONVERT句では、既存ファイルの名前を使用してファイル(データファイルなど)の名前を生成する方法を指定します。 - CREATE_FILE_DEST句
CREATE PLUGGABLE DATABASE文のCREATE_FILE_DEST句は、PDBでOracle Managed Filesを有効にして、PDBファイル用のデフォルトのファイル・システム・ディレクトリまたはOracle ASMディスク・グループを指定します。 - PDBファイルの場所に対する制限
CREATE PLUGGABLE DATABASE文のPATH_PREFIX句は、PDBと関連付けられているすべてのディレクトリ・オブジェクト・パスが、指定したディレクトリまたはそのサブディレクトリに制限されるようにします。
関連項目:
DB_CREATE_FILE_DESTおよびPDB_FILE_NAME_CONVERTについてさらに学習するには、Oracle Databaseリファレンスを参照してください。
親トピック: PDB記憶域
FILE_NAME_CONVERT句
PDBでOracle Managed Filesを使用しない場合、CREATE PLUGGABLE DATABASE文のFILE_NAME_CONVERT句では、既存ファイルの名前を使用してファイル(データファイルなど)の名前を生成する方法を指定します。
この句を使用して、次のいずれかのオプションを指定できます。
-
1つ以上のファイル名パターンおよび置換ファイル名パターンを次の形式で指定します。
'string1' , 'string2' , 'string3' , 'string4' , ...string1ファイル名パターンがstring2ファイル名パターンによって置き換えられ、string3ファイル名パターンがstring4ファイル名パターンによって置き換えられます。ファイル名パターン文字列と置換ファイル名パターン文字列のペアを必要な数だけ使用できます。
奇数の文字列を指定した(最終文字列に対応する置換文字列が存在しない)場合、エラーが返されます。1つのファイル名またはディレクトリと一致する複数のパターン/置換文字列を指定しないでください。
-
PDBの作成時にいずれのファイルもコピーまたは移動しない場合は
NONEを指定します。FILE_NAME_CONVERT句の省略は、NONEの指定と同じです。
FILE_NAME_CONVERT句は、任意のCREATE PLUGGABLE DATABASE文で使用できます。
FILE_NAME_CONVERT句がCREATE PLUGGABLE DATABASE文で指定されていない場合は、Oracle Managed FilesまたはPDB_FILE_NAME_CONVERT初期化パラメータのいずれかによって、ファイルの名前を生成する方法が指定されます。Oracle Managed FilesおよびPDB_FILE_NAME_CONVERT初期化パラメータの両方を使用する場合は、Oracle Managed Filesが優先されます。FILE_NAME_CONVERT句が指定されている場合はこれが優先されます。
FILE_NAME_CONVERT句で指定するファイル名パターンをOracle Managed Filesで管理されているファイルやディレクトリと一致させることはできません。
例5-8 FILE_NAME_CONVERT句
次のFILE_NAME_CONVERT句では、/oracle/dbsディレクトリ内のファイル名を使用して、/oracle/pdb5ディレクトリの新しいPDBのファイル名を生成します。
FILE_NAME_CONVERT = ('/oracle/dbs/', '/oracle/pdb5/')
関連項目:
-
FILE_NAME_CONVERT句の構文は、『Oracle Database SQL言語リファレンス』を参照してください。 -
PDB_FILE_NAME_CONVERT初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください
親トピック: PDBファイルの場所
CREATE_FILE_DEST句
CREATE PLUGGABLE DATABASE文のCREATE_FILE_DEST句は、PDBでOracle Managed Filesを有効にして、PDBファイル用のデフォルトのファイル・システム・ディレクトリまたはOracle ASMディスク・グループを指定します。
PDBデータファイルおよび一時ファイルは、指定されたディレクトリおよびそのサブディレクトリに制限されます。ファイル・システム・ディレクトリをデフォルトの場所としてこの句に指定する場合、そのディレクトリは存在している必要があります。また、CREATE PLUGGABLE DATABASE文を実行するユーザーには、指定ディレクトリでファイルを作成するために適切な権限が必要です。または、CDBルート(CDB$ROOT)に存在するディレクトリ・オブジェクトの名前を指定できます。ディレクトリ・オブジェクトは、CREATE_FILE_DESTにより使用されるファイル・システム・ディレクトリを指します。
CDB用のOracle Managed Filesのデフォルトの場所がCDBルートに設定されている場合、CREATE_FILE_DEST設定によってCDBルートの設定が上書きされ、指定したCREATE_FILE_DEST設定がPDBに使用されます。
CREATE_FILE_DEST=NONEを指定すると、PDBに対してOracle Managed Filesは無効になります。
CREATE_FILE_DEST句をNONE以外の値に設定すると、DB_CREATE_FILE_DEST初期化パラメータはPDBでSCOPE=SPFILEと暗黙的に設定されます。
CDBルートでOracle Managed Filesを使用し、この句を指定しない場合、PDBはOracle Managed Filesのデフォルトの場所をCDBルートから継承します。
ノート:
この機能は、Oracle Database 12cリリース1 (12.1.0.2)以降で使用可能です。
例5-9 CREATE_FILE_DEST句
このCREATE_FILE_DEST句では、新しいPDB用のデフォルトのOracle Managed Filesファイル・システム・ディレクトリとして/oracle/pdb2/を指定しています。
CREATE_FILE_DEST = '/oracle/pdb2/'
関連項目:
親トピック: PDBファイルの場所
PDBファイルの場所に対する制限
CREATE PLUGGABLE DATABASE文のPATH_PREFIX句は、PDBと関連付けられているすべてのディレクトリ・オブジェクト・パスが、指定したディレクトリまたはそのサブディレクトリに制限されるようにします。
また、この句により、PDBに関連付けられているファイル(CREATE PFILE文で作成されたファイル)は指定されたディレクトリ(PDBのOracle XMLリポジトリ)およびOracleウォレットのエクスポート・ディレクトリに制限されます。PDBのファイルが特定のディレクトリおよびそのサブディレクトリに確実に存在するようにする場合は、この句を使用します。
この句を使用して、次のいずれかのオプションを指定できます。
-
PDBに関連付けられたすべてのファイル・パスのプリフィックスとして使用される絶対パス。
-
CDBルート(
CDB$ROOT)に存在するディレクトリ・オブジェクトの名前。ディレクトリ・オブジェクトは、PATH_PREFIXに使用される絶対パスを指しています。 -
NONE。ファイル・パスに制限がないことを示します。PATH_PREFIX句の省略は、NONEの指定と同じです。
PDBが作成された後は、そのPATH_PREFIX設定を変更できなくなります。
PATH_PREFIX句は、CREATE PLUGGABLE DATABASE文で使用できます。
例5-10 PATH_PREFIX句
このPATH_PREFIX句では、PDBと関連付けられているすべてのファイル・パスが/disk1/oracle/dbs/salespdb/ディレクトリに制限されるようにします。
PATH_PREFIX = '/disk1/oracle/dbs/salespdb/'
ファイル名が付加された際に正しい形式となるよう、パス名は指定してください。たとえば、UNIXシステムでは、パス名はフォワード・スラッシュ(/)で終わるようにします。
ノート:
-
PDBに
PATH_PREFIX句を指定すると、既存のディレクトリ・オブジェクトが予期したとおりに動作しないことがあります。これは、PATH_PREFIX文字列がPDB内のすべてのローカル・ディレクトリ・オブジェクトの接頭辞として常に追加されるためです。 -
PATH_PREFIX句は、Oracle Managed Filesによって作成されたファイルには影響しません。 -
PATH_PREFIX句は、ユーザーが作成したディレクトリ・オブジェクトにのみ適用されます。これは、Oracleが提供するディレクトリ・オブジェクトには適用されません。 -
PATH_PREFIX句は、データファイルまたは一時ファイルには適用されません。Oracle Managed Filesを使用している場合は、CREATE_FILE_DEST句を使用してデータファイルおよび一時ファイルの場所を制限します。
親トピック: PDBファイルの場所
サービス名変換
PDBの作成には、データベース・サービス名の変更を管理する重要な側面があります。
新しいPDBのサービス名がCDB内の既存のサービス名と競合する場合は、プラグイン違反が発生することがあります。CREATE PLUGGABLE DATABASE文のSERVICE_NAME_CONVERT句は、ソースPDBのサービス名に基づいて新しいPDBのユーザー定義サービスを名前変更します。この句を使用すると、サービス名を変更してプラグイン違反を回避できます。
この句を使用して、次のいずれかのオプションを指定できます。
-
次の形式の1つ以上のサービス名と置換サービス名:
'string1' , 'string2' , 'string3' , 'string4' , ...string2サービス名はstring1サービス名を置換し、string4サービス名はstring3サービス名を置換します。サービス名と置換サービス名のペアは、必要に応じていくつでも使用できます。
奇数の文字列を指定した(最終文字列に対応する置換文字列が存在しない)場合、エラーが返されます。
-
サービス名を変更する必要がない場合は
NONE。SERVICE_NAME_CONVERT句の省略は、NONEの指定と同じです。
SERVICE_NAME_CONVERT句は、PDBシードからPDBを作成するCREATE PLUGGABLE DATABASE文を除く任意のCREATE PLUGGABLE DATABASE文で使用できます。PDBシードはユーザー定義サービスを持つことができません。ただし、アプリケーション・コンテナ内のアプリケーション・シードからアプリケーションPDBを作成するCREATE PLUGGABLE DATABASE文にはこの文を使用できます。
ノート:
この句は、PDBのデフォルト・サービスに適用されません。デフォルト・サービスの名前はPDBと同じになります。例5-11 SERVICE_NAME_CONVERT句
このSERVICE_NAME_CONVERT句は、salesrepサービスの名前をsalespersonに変更します。
SERVICE_NAME_CONVERT = ('salesrep','salesperson')
親トピック: PDB作成の概要
PDB作成のための句の概要
CREATE PLUGGABLE DATABASE文を使用してPDBを作成する場合は、様々な要因に基づいて多様な句を使用できます。
1つの要因は、PDBを作成するために使用している手法です。一連の質問に回答することで、使用する句を判断できます。
次の表では、様々な要因に基づいて指定するCREATE PLUGGABLE DATABASEの句について説明しています。
表5-3 PDBを作成する場合の句
| 質問 | はい | いいえ | 句を使用可能な場合 |
|---|---|---|---|
|
PDBのかわりにアプリケーション・コンテナを作成しますか。 |
|
|
CDBでのアプリケーション・コンテナの作成 |
|
同じPDBを接続して作成した1つ以上のPDBを含むCDBにPDBを接続しますか。 |
|
|
切断されたPDBの接続 |
|
アプリケーション・コンテナにアプリケーション・シードを作成しますか。 |
|
|
アプリケーション・コンテナでのアプリケーション・シードの作成 |
|
PDBシードまたはアプリケーション・シードからPDBを作成する場合、ソース・ファイルは、シードに関連付けられたファイルです。 |
PDBのファイル用のデフォルトのファイル・システム・ディレクトリまたはOracle ASMディスク・グループを指定する |
次のいずれかの手法を使用して、ファイルのターゲットの場所を指定します。
「PDBファイルの場所」を参照してください。 |
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
PDBのデフォルト・パラメータ表領域を指定しますか。 |
適切な制限を使用して この表領域には、Oracle Databaseによって、別の永続表領域が指定されていない PDBをPDBシードまたはアプリケーション・シードから作成する場合、Oracle Databaseはsmallfile表領域を作成し、それをデフォルト表領域として設定します。PDBシードまたはアプリケーション・シードからの作成以外の手法を使用する場合は、指定した表領域がソースPDBに存在する必要があります。 |
この句を指定しない場合、 |
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
PDBシードまたはアプリケーション・シードからPDBを作成する場合、ソース・ファイルは、シードに関連付けられたファイルです。 |
ソース・ファイルの名前に基づいてファイルのターゲットの場所を指定する |
次のいずれかの手法を使用して、ファイルのターゲットの場所を指定します。
「PDBファイルの場所」を参照してください。 |
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 プロキシPDBの作成( 切断されたPDBの接続 |
|
PDBは依存するプロキシPDBを持つ参照PDBですか? リスナーのホスト名を変更しますか? |
たとえば、物理ホスト名およびデフォルトのポートのリスナー・ネットワークがあり、デフォルト以外のポート番号を使用した仮想ホスト名および仮想IPアドレスのための2番目のリスナーが構成されている場合があります。 |
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
新しいPDBに表領域のロギング属性を指定しますか。 |
logging_clauseを含めます。 |
logging_clauseを省略します。 |
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング 切断されたPDBの接続 |
|
ファイルを新しい場所にコピーまたは移動しますか。 |
「PDBファイルの場所」を参照してください。 |
|
切断されたPDBの接続 |
|
ソースPDBのデータ・モデル定義をクローニングするが、ソースPDBのデータをクローニングしないことを指定しますか。 |
|
|
PDBのクローニング |
|
複数のパラレル実行サーバーを使用してPDBの作成を並列化しますか。 |
CDBで並列度を選択するには、 並列度を指定するには、 |
PARALLEL 0またはPARALLEL 1を指定します。
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング |
|
ディレクトリ・オブジェクト、PDBのOracle XML リポジトリ、
|
絶対パスを指定する |
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
PDBは依存するプロキシPDBを持つ参照PDBですか? リスナーのポート番号を1521以外の値に変更しますか? |
たとえば、物理ホスト名およびデフォルトのポートのリスナー・ネットワークがあり、デフォルト以外のポート番号を使用した仮想ホスト名および仮想IPアドレスのための2番目のリスナーが構成されている場合があります。 |
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
ソースPDBからクローンPDBに変更を伝播するためにPDBをリフレッシュできるようにしますか。 リフレッシュ可能PDBは読取り専用モードでオープンする必要があります。 |
|
|
PDBのクローニング |
|
Oracleの事前定義されているロールをPDBでローカルに PDBの新しい管理者には、 |
|
|
PDBシードまたはアプリケーション・シードからのPDBの作成 プロキシPDBの作成 |
|
|
サービスの新しい名前とそれが置換するサービス名を指定する |
|
PDBシードではなくアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 プロキシPDBの作成( 切断されたPDBの接続 |
|
記憶域スナップショットを使用してPDBをクローニングしますか。 |
記憶域スナップショットを使用したPDBクローンの作成は、ソースPDBのデータファイルをコピーする必要がないため、ほぼ瞬間的に行われます。 |
|
PDBのクローニング |
|
新しいPDBのPDBスナップショットを有効化しますか。 |
|
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 プロキシPDBの作成( 切断されたPDBの接続 |
|
単一ディレクトリ内のすべてのソース・ファイルが新しいファイル名を持ち、複数の |
ソース・ファイルへの完全絶対パスで |
|
XMLファイル・ディレクトリを使用して切断されたPDBを接続します。 この句は、.pdbアーカイブ・ファイルによる切断されたPDBの接続には適用されません。 |
|
XMLファイルの内容は、ソース・ファイルの場所を正確に記述していますか。 |
|
|
XMLファイル・ディレクトリを使用して切断されたPDBを接続します。 この句は、.pdbアーカイブ・ファイルによる切断されたPDBの接続には適用されません。 |
|
1つ以上のスタンバイCDBに新しいPDBを含めますか。 |
リモート・クローンを作成する場合は、初期化パラメータ |
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
PDBが使用できる記憶域の量を制限しますか。 |
適切な制限を使用して |
|
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
ターゲットの場所に一時ファイルがある場合、それを再利用しますか。 |
|
ターゲットの場所に新しい一時ファイルと同じ名前のファイルがないことを確認します。 |
PDBシードまたはアプリケーション・シードからのPDBの作成 PDBのクローニング PDBの再配置 切断されたPDBの接続 |
|
新しいPDBに含める表領域および新しいPDBから除外する表領域を指定しますか。 |
|
|
非CDBのクローニング 切断されたPDBの接続 |
|
切断されたPDBをCDBに接続しますか。 |
Data GuardシナリオでPDBをプライマリCDBに接続している場合は、 |
|
切断されたPDBの接続 |
|
PDBスナップショットに基づいて新しいPDBを作成しますか。 |
|
|
PDBスナップショットのクローニング |
|
ミラーを分割することでOracle ASMに存在するPDBをクローニングしますか。 |
|
|
Oracle ASM記憶域を使用するPDBのクローニング |
親トピック: PDB作成の概要
PDB作成の一般的な前提条件
PDBを作成する前に、特定の前提条件を満たす必要があります。
PDBを作成する前に、次の前提条件が満たされていることを確認してください。
表5-4 PDBを作成するための前提条件
| 前提条件 | 関連項目 |
|---|---|
|
CDBが存在していることが必要です。 |
|
|
CDBは、読取り/書込みモードである必要があります。 |
|
|
現行ユーザーは、現在のコンテナがCDBルートまたはアプリケーション・コンテナである共通ユーザーである必要があります。 |
|
|
現行ユーザーには |
|
|
各コンテナに対して一意のコンテナ名を決定する必要があります。各コンテナ名は、1つのCDB内で一意である必要があり、特定のリスナーからアクセスされるインスタンスを持つCDBのスコープ内で一意である必要があります。 PDB名は、PDBをCDB内のその他のPDBと区別します。PDB名のルールは、大文字と小文字が区別されるなど、サービス名のルールと同じです。 |
サービス名のルールを学習するには、『Oracle Database Net Servicesリファレンス』を参照してください |
|
フィジカル・スタンバイ・データベースがあるOracle Data Guard構成にPDBを作成する場合は、PDBを作成する前に追加のタスクを完了する必要があります。 |
詳細は、『Oracle Data Guard概要および管理』を参照してください |
|
透過的データ暗号化で暗号化されたデータを含むPDBを作成している場合は、追加のタスクを完了する必要があります。 |
手順は、『Oracle Database Advanced Securityガイド』を参照してください |
|
Database Vaultに対応したPDBを作成している場合は、追加のタスクを完了する必要があります。 |
手順は、『Oracle Database Vault管理者ガイド』を参照してください |
|
非CDBをクローニングしてPDBを作成する場合に、ソースの非CDBのバックアップを使用して新しいPDBをリカバリする必要があるときは、クローニングの前に 別のCDBにPDBを再配置する場合は、 |
手順は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください |
関連項目:
-
DBMS_PDB.EXPORTRMANBACKUPについてさらに学習するには、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください
親トピック: PDB作成の概要
