6 PDBを最初から作成
CREATE PLUGGABLE DATABASE
文により、PDBシード(PDB$SEED
)のファイルを使用してCDBにPDBを作成します。
この文を使用すると、アプリケーション・シードまたはPDBシードのファイルを使用して、アプリケーション・コンテナにアプリケーションPDBを作成することもできます。
- PDBを最初から作成する方法について
CREATE PLUGGABLE DATABASE
文により、PDBシードのファイルを使用して新しいPDBを作成したり、アプリケーション・シードまたはPDBシードのファイルからアプリケーションPDBを作成します。 - PDBの作成
CREATE PLUGGABLE DATABASE
文を使用すると、PDBシードからPDBを作成したり、アプリケーション・シードまたはPDBシードからアプリケーションPDBを作成したりできます。 - PDBの作成: 例
次の例では、様々な要因に基づき、salespdb
という名前の新しいPDBおよびsalesadm
ローカル管理者を作成します。
関連項目:
CREATE PLUGGABLE DATABASE
文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください
親トピック: PDBおよびアプリケーション・コンテナの作成および削除
PDBを最初から作成する方法について
CREATE PLUGGABLE DATABASE
文により、PDBシードのファイルを使用して新しいPDBを作成したり、アプリケーション・シードまたはPDBシードのファイルからアプリケーションPDBを作成します。
この文では、これらのファイルを新しい場所にコピーし、新しいPDBに関連付けます。次の図は、この手法でCDBルートを現在のコンテナとして使用して、新しいPDBをCDBに作成する方法を示しています。
次の図は、この手法でアプリケーション・ルートを現在のコンテナとして使用して、新しいアプリケーションPDBをアプリケーション・コンテナに作成する方法を示しています。
関連項目:
アプリケーション・コンテナにアプリケーション・シードが含まれ、シードからアプリケーションPDBを作成するためにCREATE PLUGGABLE DATABASE
文がアプリケーション・ルートで実行されている場合、アプリケーションPDBはそのアプリケーション・シードを使用して作成されます。ただし、アプリケーション・コンテナにアプリケーション・シードが含まれず、シードからアプリケーションPDBを作成するためにCREATE PLUGGABLE DATABASE
文がアプリケーション・ルートで実行されている場合、アプリケーションPDBはPDBシード(PDB$SEED
)を使用して作成されます。
シードから新しいPDBまたはアプリケーションPDBを作成する場合、CREATE PLUGGABLE DATABASE
文でPDBまたはアプリケーションPDBの管理者を指定する必要があります。この文では、管理者をPDBのローカル・ユーザーとして作成し、PDB_DBA
ロールを管理者にローカルに付与します。
PDBシードまたはアプリケーション・シードを使用してPDBを作成する前に、表5-3のシードからのPDBの作成に適用される質問に対処します。この表では、様々な要因に基づいて指定する必要があるCREATE PLUGGABLE DATABASE
の句について説明しています。
関連項目:
親トピック: PDBを最初から作成
PDBの作成
CREATE PLUGGABLE DATABASE
文を使用すると、PDBシードからPDBを作成したり、アプリケーション・シードまたはPDBシードからアプリケーションPDBを作成したりできます。
前提条件
PDBシード(PDB$SEED
)からPDBを作成するか、アプリケーション・シードまたはPDBシードからアプリケーションPDBを作成する前に、「PDB作成の一般的な前提条件」で説明している前提条件を満たす必要があります。
PDBを作成するには:
-
SQL*Plusで、現在のコンテナがCDBルートまたはアプリケーション・ルートであることを確認します。
現在のコンテナがCDBルートの場合、PDBはPDBシードのファイルを使用してCDBに作成されます。
現在のコンテナがアプリケーション・ルートの場合、アプリケーションPDBはアプリケーション・シードのファイルを使用してアプリケーション・コンテナに作成されます。アプリケーション・コンテナにアプリケーション・シードがない場合、アプリケーションPDBはPDBシードのファイルを使用してアプリケーション・コンテナに作成されます。
-
CREATE PLUGGABLE DATABASE
文を実行し、PDBのローカル管理者を指定します。他の句が必要な場合はそれらを指定します。作成したPDBはマウント・モードになり、そのステータスは
NEW
です。PDBのオープン・モードは、V$PDBS
ビューのOPEN_MODE
列を問い合せることで確認できます。CDB_PDBS
またはDBA_PDBS
ビューのSTATUS
列を問い合せて、PDBのステータスを表示できます。PDBの新しいデフォルト・サービスが作成されます。サービスの名前はPDBと同じになり、このサービスを使用してPDBにアクセスできます。このサービスにアクセスするクライアントには、Oracle Net Serviceが正しく構成されている必要があります。
-
新しいPDBを読取り/書込みモードでオープンします。
Oracle Databaseで新しいPDBをCDBに統合するには、PDBを読取り/書込みモードでオープンする必要があります。PDBを読取り専用モードでオープンしようとすると、エラーが返されます。PDBが読取り/書込みモードでオープンされると、そのステータスは
NORMAL
になります。 -
PDBをバックアップします。
PDBは、バックアップしないとリカバリできません。
指定されたローカル管理者の名前を持つローカル・ユーザーが作成され、このユーザーにPDBでローカルにPDB_DBA
共通ロールが付与されます。PDBの作成時にユーザーに管理者権限が付与されなかった場合は、SYS
およびSYSTEM
共通ユーザーを使用してPDBを管理します。
ノート:
PDBの作成時にエラーが返された場合は、作成されたPDBがUNUSABLE
状態である可能性があります。CDB_PDBS
またはDBA_PDBS
ビューを問い合せてPDBの状態を確認したり、アラート・ログをチェックしてPDBの作成エラーについてさらに学習できます。使用不可のPDBは削除することのみができ、使用不可のPDBと同じ名前のPDBを作成できるようにするには、その前に削除する必要があります。
関連項目:
-
詳細は、「PDBのオープン・モードの変更」を参照してください。
-
PDBのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください
親トピック: PDBを最初から作成
PDBの作成: 例
次の例では、様々な要因に基づき、salespdb
という名前の新しいPDBおよびsalesadm
ローカル管理者を作成します。
salespdb
PDBの作成に加えて、この文では、PDB_DBA
ロールをPDB管理者であるsalesadm
に付与し、指定したOracleの事前定義済ロールをPDB_DBA
ロールにPDBでローカルに付与します。
各例で、新しいPDBが属するルートはCREATE PLUGGABLE DATABASE
文の実行時の現在のコンテナによって決まります。
-
現在のコンテナがCDBルートの場合、新しいPDBはCDBルートに作成されます。
-
現在のコンテナがアプリケーション・コンテナ内のアプリケーション・ルートの場合、新しいPDBはアプリケーション・ルート内にアプリケーションPDBとして作成されます。
- 句を使用しないPDBの作成: 例
この例は、PDBを作成する最も簡単な方法を示しています。 - PDBの作成、およびPDB管理者へのOracleの事前定義されたロールの付与: 例
この例では、ROLES
パラメータを使用して、事前定義済のロールを付与します。 - 複数の句を使用したPDBの作成: 例
この例では、STORAGE
、DEFAULT TABLESPACE
、PATH_PREFIX
およびFILE_NAME_CONVERT
の各句を使用してPDBを作成します。
親トピック: PDBを最初から作成
句を使用しないPDBの作成: 例
この例は、PDBを作成する最も簡単な方法を示しています。
この例では、次の要因を想定しています。
-
PDBにはストレージ制限は必要ありません。したがって、
STORAGE
句は必要ありません。 -
PDBにはデフォルトの表領域は必要ありません。
-
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 salespdb ADMIN USER salesadm IDENTIFIED BY pwd;
関連項目:
-
Oracle Managed Filesの使用の詳細は、『Oracle Database管理者ガイド』を参照してください
-
PDB_FILE_NAME_CONVERT
初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください -
パスワード選択のガイドラインは、『Oracle Databaseセキュリティ・ガイド』を参照してください
親トピック: PDBの作成: 例
PDBの作成、およびPDB管理者へのOracleの事前定義されたロールの付与: 例
この例では、ROLES
パラメータを使用して、事前定義済のロールを付与します。
この例では、次の要因を想定しています。
-
PDBにはストレージ制限は必要ありません。したがって、
STORAGE
句は必要ありません。 -
PDBにはデフォルトの表領域は必要ありません。
-
PATH_PREFIX
句は必要ありません。 -
FILE_NAME_CONVERT
句およびCREATE_FILE_DEST
句は必要ありません。Oracle Managed Filesが有効であるか、または
PDB_FILE_NAME_CONVERT
初期化パラメータが設定されています。PDBシードまたはアプリケーション・シードに関連付けられているファイルは、Oracle Managed Files構成または初期化パラメータ設定に基づいて新しい場所にコピーされます。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。 -
PDB_DBA
ロールには、事前定義されたDBA
Oracleロールがローカルで付与されている必要があります。
次の文は、PDBを作成します。
CREATE PLUGGABLE DATABASE salespdb
ADMIN USER salesadm IDENTIFIED BY password
ROLES=(DBA);
関連項目:
-
Oracle Managed Filesの使用の詳細は、『Oracle Database管理者ガイド』を参照してください
-
PDB_FILE_NAME_CONVERT
初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください -
パスワード選択のガイドラインは、『Oracle Databaseセキュリティ・ガイド』を参照してください
親トピック: PDBの作成: 例
複数の句を使用したPDBの作成: 例
この例では、STORAGE
、DEFAULT TABLESPACE
、PATH_PREFIX
およびFILE_NAME_CONVERT
の各句を使用してPDBを作成します。
この例では、次の要因を想定しています。
-
PDBにストレージ制限を強制する必要があります。したがって、
STORAGE
句が必要です。特に、PDBに属する表領域はいずれも2GBを超えることはできません。 -
非管理者ユーザーに対してそれぞれ異なる永続表領域を指定しない場合は、デフォルトの永続表領域が必要となります。特に、この例では次の特性を備えた
sales
という名前のデフォルト永続表領域を作成します。-
この表領域の単一データファイルは
sales01.dbf
であり、文では、このファイルが/disk1/oracle/dbs/salespdb
ディレクトリに作成されます。 -
SIZE
句では、表領域の初期サイズが250MBであることを指定します。 -
AUTOEXTEND
句により、ファイルを自動拡張できます。
-
-
パス接頭辞をPDBのディレクトリ・オブジェクト・パスに追加する必要があります。したがって、
PATH_PREFIX
句が必要です。この例では、パス接頭辞/disk1/oracle/dbs/salespdb/
をPDBのディレクトリ・オブジェクト・パスに追加しています。 -
CREATE_FILE_DEST
句が使用されず、Oracle Managed Filesが有効になっておらず、PDB_FILE_NAME_CONVERT
初期化パラメータが設定されていません。したがって、FILE_NAME_CONVERT
句が必要です。システムにおけるPDBシードまたはアプリケーション・シードのデータファイルの場所を指定します。この例では、Oracle Databaseは/disk1/oracle/dbs/pdbseed
のファイルを/disk1/oracle/dbs/salespdb
にコピーします。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。 -
Oracleの事前定義されたロールを
PDB_DBA
ロールに付与する必要はありません。
次の文は、PDBを作成します。
CREATE PLUGGABLE DATABASE salespdb
ADMIN USER salesadm IDENTIFIED BY password
STORAGE (MAXSIZE 2G)
DEFAULT TABLESPACE sales
DATAFILE '/disk1/oracle/dbs/salespdb/sales01.dbf' SIZE 250M
AUTOEXTEND ON
PATH_PREFIX = '/disk1/oracle/dbs/salespdb/'
FILE_NAME_CONVERT = ('/disk1/oracle/dbs/pdbseed/',
'/disk1/oracle/dbs/salespdb/');
関連項目:
-
PDBシードまたはアプリケーション・シードのデータファイルの場所を表示する方法を学習するには、「例19-7」を参照してください
-
DEFAULT TABLESPACE
句の詳細は、『Oracle Database SQL言語リファレンス』を参照してください -
パスワード選択のガイドラインは、『Oracle Databaseセキュリティ・ガイド』を参照してください
親トピック: PDBの作成: 例