9 切断されたPDBの接続
切断されたPDBをCDBに接続することで、PDBを作成できます。
この章のトピックは、次のとおりです:
- 切断されたPDBの接続について
CREATE PLUGGABLE DATABASE
文のUSING
句で、XMLメタデータ・ファイルまたは.pdb拡張子のある圧縮されたアーカイブ・ファイルを指定します。 - PDBとしての非CDBの適用について
非CDBを記述するXMLファイルを生成するには、DBMS_PDB.DESCRIBE
プロシージャを使用します。その後、切断されたPDBを接続するのと同じように、非CDBに接続します。 - 切断されたPDBの接続
CREATE PLUGGABLE DATABASE ... USING
文を使用してPDBを接続します。 - PDBとしての非CDBの適用
DBMS_PDB.DESCRIBE
プロシージャを使用して非CDBをPDBに適用(移動)できます。 - 切断されたPDBの接続後
切断されたPDBの接続後に、ユーザーと表領域に関する特定のルールが適用されます。 - 切断されたPDBの接続: 例
次の例では、様々な要因に基づき、/disk1/usr/salespdb.xml
ファイルまたは/disk1/usr/sales.pdb
ファイルを使用して、salespdb
という名前の切断されたPDBを接続します。
親トピック: PDBおよびアプリケーション・コンテナの作成および削除
切断されたPDBの接続について
CREATE PLUGGABLE DATABASE
文のUSING
句で、XMLメタデータ・ファイルまたは.pdb拡張子のある圧縮されたアーカイブ・ファイルを指定します。
この項では、次の項目について説明します。
- XMLファイルとアーカイブ・ファイルについて
XMLメタデータ・ファイルには、切断されたPDBおよびPDBに関連付けられているファイル(データファイルやウォレット・ファイルなど)について記述します。アーカイブ・ファイルには、XMLメタデータ・ファイルとPDBのファイルの両方が含まれます。 - 切断されたPDBをプラグインする場合のソース・ファイルの場所
CREATE PLUGGABLE DATABASE ... USING
文を使用して、切断されたPDBをCDBに接続します。
親トピック: 切断されたPDBの接続
XMLファイルとアーカイブ・ファイルについて
XMLメタデータ・ファイルには、切断されたPDBおよびPDBに関連付けられているファイル(データファイルやウォレット・ファイルなど)について記述します。アーカイブ・ファイルには、XMLメタデータ・ファイルとPDBのファイルの両方が含まれます。
XMLメタデータ・ファイルが指定されている場合、XMLファイルにはPDBのファイルのフル・パスが含まれます。.pdbアーカイブ・ファイルが指定されている場合、XMLメタデータ・ファイルには、相対ファイル名のみが含まれます。
次の図は、切断されたPDBの接続方法を示しています。
次に図は、この手法で新しいアプリケーションPDBをアプリケーション・コンテナに作成する方法を示しています。
ノート:
PDBの自動ダウングレードはサポートされていません。したがって、ソースCDBがターゲットCDBより上位のOracle Databaseリリースである場合は、PDBを接続できません。切断されたPDBに接続する場合は、表5-3の切断されたPDBの接続に適用される質問に対処する必要があります。この表では、様々な要因に基づいて指定する必要があるCREATE PLUGGABLE DATABASE
の句について説明しています。
関連項目:
親トピック: 切断されたPDBの接続について
切断されたPDBをプラグインする場合のソース・ファイルの場所
CREATE PLUGGABLE DATABASE ... USING
文を使用して、切断されたPDBをCDBに接続します。
PDBの接続時に.pdbアーカイブ・ファイルを使用する場合、Oracle DatabaseはPDBの接続時にこのファイルを抽出し、PDBのファイルを.pdbアーカイブ・ファイルと同じディレクトリに配置します。したがって、ソース・ファイルの場所を指定する句は、.pdbアーカイブ・ファイルを使用するときには必要ありません。
PDBの接続時にXMLメタデータ・ファイルを指定する場合、このファイルは切断されたPDBソース・ファイルの名前と場所を記述します。切断されているファイルをあるストレージ・システムから異なるストレージ・システムにトランスポートした場合は、これらのファイルの場所がXMLファイルに正確に記述されていない可能性があります。これらのファイルは新しい場所にありますが、XMLファイル内のファイル・パスは依然として古い場所を示しています。
XMLメタデータ・ファイル(.pdbアーカイブ・ファイルではない)を使用して、切断されたPDBを接続する場合は、SOURCE_FILE_NAME_CONVERT
句またはSOURCE_FILE_DIRECTORY
句のいずれかを使用します。これらの句は相互に排他的です。
この項では、次の項目について説明します。
- SOURCE_FILE_NAME_CONVERT句
SOURCE_FILE_NAME_CONVERT
句は、PDBファイルがXMLファイルの指定とは異なる場所に存在する場合にPDBファイルを検索する方法を指定します。 - SOURCE_FILE_DIRECTORY句
SOURCE_FILE_DIRECTORY
句は、新しいPDBの作成に使用されるファイルのソース・ディレクトリを指定します。
親トピック: 切断されたPDBの接続について
SOURCE_FILE_NAME_CONVERT句
SOURCE_FILE_NAME_CONVERT
句は、PDBファイルがXMLファイルの指定とは異なる場所に存在する場合にPDBファイルを検索する方法を指定します。
この句を使用して、次のいずれかのオプションを指定できます。
-
1つ以上のファイル名パターンおよび置換ファイル名パターンを次の形式で指定します。
'string1' , 'string2' , 'string3' , 'string4' , ...
string1ファイル名パターンがstring2ファイル名パターンによって置き換えられ、string3ファイル名パターンがstring4ファイル名パターンによって置き換えられます。ファイル名パターン文字列と置換ファイル名パターン文字列のペアを必要な数だけ使用できます。
この句を使用する場合は、PDBに使用するファイルが、置換ファイル名パターンに存在することを確認してください。必要な場合は、ファイルをこれらの場所にコピーまたは移動します。
-
PDBのXMLファイルでファイル名が正確に記述されているためにファイル名を検索する必要がない場合は
NONE
。SOURCE_FILE_NAME_CONVERT
句の省略は、NONE
の指定と同じです。
SOURCE_FILE_NAME_CONVERT
句は、XMLメタデータ・ファイルを指定するUSING
句とともにCREATE
PLUGGABLE
DATABASE
文でのみ使用できます。したがって、この句は、切断されているPDBをXMLメタデータ・ファイルで接続する場合にのみ使用できます。PDBを.pdbアーカイブ・ファイルで接続する場合は、この句を使用できません。
例9-1 SOURCE_FILE_NAME_CONVERT句
次のSOURCE_FILE_NAME_CONVERT
句では、/disk1/oracle/pdb7ディレクトリではなく、/disk2/oracle/pdb7ディレクトリのファイルを使用します。この場合、PDBを記述しているXMLファイルでは、/disk1/oracle/pdb7ディレクトリを指定していますが、PDBでは/disk2/oracle/pdb7ディレクトリのファイルを使用する必要があります。
SOURCE_FILE_NAME_CONVERT = ('/disk1/oracle/pdb7/', '/disk2/oracle/pdb7/')
関連項目:
-
SOURCE_FILE_NAME_CONVERT
句の構文は、『Oracle Database SQL言語リファレンス』を参照してください。
SOURCE_FILE_DIRECTORY句
SOURCE_FILE_DIRECTORY
句は、新しいPDBの作成に使用されるファイルのソース・ディレクトリを指定します。
句では、XMLファイルにリストされているすべてのファイルを含むディレクトリを指定します。この句は、多数のデータファイルがあり、各ファイルのSOURCE_FILE_NAME_CONVERT
パターンの指定が現実的でない場合に使用すると便利です。
PDBを接続する際に、ソース・ファイルがすべて単一ディレクトリに存在する場合は、この句でディレクトリ名を指定できます。切断されたPDBのXMLファイルに基づいて適切なファイルを検索するためにディレクトリがスキャンされます。
この句を使用して、次のいずれかのオプションを指定できます。
-
ソース・ファイル・ディレクトリの絶対パス。
-
PDBの作成時にいずれのファイルもコピーまたは移動しない場合は
NONE
を指定します。SOURCE_FILE_DIRECTORY
句の省略は、NONE
の指定と同じです。
SOURCE_FILE_DIRECTORY
句は、XMLメタデータ・ファイルを指定するUSING
句とともにCREATE PLUGGABLE DATABASE
文でのみ使用できます。したがって、この句は、切断されているPDBをXMLメタデータ・ファイルで接続する場合にのみ使用できます。PDBを.pdbアーカイブ・ファイルで接続する場合は、この句を使用できません。
この句は、Oracle Managed Filesを使用する構成とOracle Managed Filesを使用しない構成に対して指定できます。
例9-2 SOURCE_FILE_DIRECTORY句
このSOURCE_FILE_DIRECTORY
句は、/oracle/pdb5/ディレクトリ内のソース・ファイルを使用して新しいPDBのファイル名を生成します。
SOURCE_FILE_DIRECTORY = '/oracle/pdb5/'
関連項目:
-
SOURCE_FILE_DIRECTORY
句の構文は、『Oracle Database SQL言語リファレンス』を参照してください
PDBとしての非CDBの適用について
非CDBを記述するXMLファイルを生成するには、DBMS_PDB.DESCRIBE
プロシージャを使用します。その後、切断されたPDBを接続するのと同じように、非CDBに接続します。
CREATE PLUGGABLE DATABASE ... USING
文を使用してPDBを作成します。非CDBがCDBに接続された場合、その非CDBはPDBになります。
アプリケーション・コンテナに新しいアプリケーションPDBを作成するのと同じ手法を使用できます。
ノート:
この手法を使用するには、非CDBがリリースOracle Database 12c以降である必要があります。
関連項目:
親トピック: 切断されたPDBの接続
切断されたPDBの接続
CREATE PLUGGABLE DATABASE ... USING
文を使用してPDBを接続します。
一般的な前提条件
切断されたPDBを接続するには、次の要件が満たされている必要があります。
-
「PDB作成の一般的な前提条件」で説明している前提条件を満たします。
-
PDBを記述しているXMLファイルまたは.pdbアーカイブ・ファイルは、CDBにアクセスできる場所に存在する必要があります。
USING
句でXMLファイルまたは.pdbアーカイブ・ファイルを指定する必要があります。PDBのXMLファイルが使用できないか見つからない場合は、DBMS_PDB.RECOVER
プロシージャを使用して、PDBのデータファイルでXMLファイルを生成できます。 -
USING
句にXMLファイル(.pdbファイルではなく)を指定する場合は、PDBに関連付けられたファイル(データファイルやウォレット・ファイルなど)が、CDBにアクセスできる場所に存在している必要があります。 -
接続操作のターゲット・データベースがOracle Data Guard構成内のプライマリ・データベースの場合は、接続されるPDBのファイルの場所をスタンバイ・データベースで特定できることを確認します。
スタンバイ・データベースで、
STANDBY_PDB_SOURCE_FILE_DIRECTORY
初期化パラメータを、PDBをインスタンス化するためのソース・データファイルが含まれている場所に設定します。ファイルが見つからない場合、スタンバイ・データベースはOMFの場所でファイルを探します。OMFの場所で見つからない場合は、データファイルをスタンバイ・データベースのOMFの場所にコピーし、スタンバイ・データベースに対するREDO適用を再起動する必要があります。 -
ソースCDBとターゲットCDBのプラットフォームは、次の要件を満たしている必要があります。
-
endiannessが同じである必要があります。
-
ソース・プラットフォームにインストールされているデータベース・オプションは、ターゲット・プラットフォームにインストールされているデータベース・オプションと同じか、サブセットである必要があります。
-
-
アプリケーションPDBを作成している場合、切断されたPDBのアプリケーション名およびバージョンは、アプリケーションPDBを接続するアプリケーション・コンテナのアプリケーション名およびバージョンと一致する必要があります。
文字セットの前提条件
文字セットを一致させるために、次の前提条件を満たす必要があります。
-
PDBが接続されるCDBの文字セットがAL32UTF8でない場合、切断されたPDBを含んでいたCDBとターゲットCDBには互換性のある文字セットおよび各国語文字セットが必要です。互換性を確保するには、文字セットと各国語文字セットが、『Oracle Databaseグローバリゼーション・サポート・ガイド』で指定されている要件を満たしている必要があります。
PDBが接続されるCDBの文字セットがAL32UTF8である場合、この要件は適用されません。
-
アプリケーションPDBを作成している場合、アプリケーションPDBはアプリケーション・コンテナと同じ文字セットおよび各国語文字セットである必要があります。
CDBのデータベース文字セットがAL32UTF8の場合、アプリケーション・コンテナの文字セットおよび各国語文字セットはCDBと異なっていても構いません。ただし、アプリケーション・コンテナ内のすべてのアプリケーションPDBには、アプリケーション・コンテナと同じ文字セットおよび各国語文字セットが必要です。
前提条件が満たされているかどうかを判断するには、DBMS_PDB.CHECK_PLUG_COMPATIBILITY
関数を使用します。次の手順のステップ2では、このファンクションの使用方法を示しています。
PDBをプラグインするには:
-
SQL*Plusで、現在のコンテナがCDBルートまたはターゲットCDBのアプリケーション・ルートであることを確認します。
現在のコンテナがCDBルートの場合、PDBはCDBに作成されます。現在のコンテナがアプリケーション・ルートの場合、アプリケーションPDBはアプリケーション・コンテナ内に作成されます。
-
(オプション)
DBMS_PDB.CHECK_PLUG_COMPATIBILITY
ファンクションを実行して、切断されたPDBがCDBと互換性があるかどうかを確認します。-
PDBがまだ切断されていない場合は、
DBMS_PDB.DESCRIBE
プロシージャを実行して、そのPDBを記述するXMLファイルを作成します。PDBがすでに切断されている場合は、ステップ2bに進みます。
たとえば、
salespdb.xml
という名前のXMLファイルを/disk1/oracleディレクトリに生成し、次のプロシージャを実行します。BEGIN DBMS_PDB.DESCRIBE( pdb_descr_file => '/disk1/oracle/salespdb.xml', pdb_name => 'SALESPDB'); END; /
PDBがリモートCDBに存在している場合は、
pdb_name
パラメータに@
database_link_name
を含めることができます。database_link_name
は、リモートCDBまたはPDBへの有効なデータベース・リンクの名前です。たとえば、リモートCDBへのデータベース・リンクの名前がrcdb
の場合、pdb_name
値にSALESPDB@rcdb
と設定します。 -
DBMS_PDB.CHECK_PLUG_COMPATIBILITY
ファンクションを実行します。このファンクションを実行する場合は、次のパラメータを設定します。
-
pdb_descr_file
- パラメータをXMLファイルへのフルパスに設定します。 -
pdb_name
: 新しいPDBの名前を指定します。このパラメータを省略した場合は、XMLファイル内のPDB名が使用されます。
たとえば、
/disk1/usr/salespdb.xml
ファイルで記述されているPDBが現在のCDBと互換性があるかどうかを確認するには、次のPL/SQLブロックを実行します。SET SERVEROUTPUT ON DECLARE compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file => '/disk1/usr/salespdb.xml', pdb_name => 'SALESPDB') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
出力が
YES
の場合はPDBに互換性があり、次のステップに進むことができます。出力がNO
の場合はPDBに互換性がなく、PDB_PLUG_IN_VIOLATIONS
ビューをチェックして、互換性がない理由を確認します。 -
ノート:
.pdbアーカイブ・ファイルはpdb_descr_file
パラメータで指定できます。 -
-
PDBが切断されていない場合は、切断します。
-
CREATE PLUGGABLE DATABASE ... USING
文を実行し、USING
句でXMLファイルまたは.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がUNUSABLE
状態である可能性があります。CDB_PDBS
またはDBA_PDBS
ビューを問い合せてPDBの状態を確認したり、アラート・ログをチェックしてPDBの作成エラーについてさらに学習できます。使用不可のPDBは削除することのみができ、使用不可のPDBと同じ名前のPDBを作成できるようにするには、その前に削除する必要があります。
関連項目:
- 詳細は、「1つ以上のPDBのオープン・モードの変更」を参照してください。
-
PDBのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。
-
Oracle Data Guard環境でのPDBの接続についてさらに学習するには、『Oracle Data Guard概要および管理』を参照してください
-
PDB_FILE_NAME_CONVERT
初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください -
このプロシージャの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
親トピック: 切断されたPDBの接続
PDBとしての非CDBの適用
DBMS_PDB.DESCRIBE
プロシージャを使用して非CDBをPDBに適用(移動)できます。
DBMS_PDB
パッケージを使用して非CDBをPDBとして適用するには:
-
CDBが存在しない場合は作成します。
-
非CDBがトランザクション上一貫した状態にあることを確認してください。
-
非CDBを読取り専用モードにします。
-
非CDBに接続し、
DBMS_PDB.DESCRIBE
プロシージャを実行して、非CDBを記述するXMLファイルを作成します。現行ユーザーには、
SYSDBA
管理権限が必要です。ユーザーは、接続時にAS SYSDBA
を使用して権限を行使する必要があります。たとえば、
ncdb.xml
という名前のXMLファイルを/disk1/oracle
ディレクトリに生成し、次のプロシージャを実行します。BEGIN DBMS_PDB.DESCRIBE( pdb_descr_file => '/disk1/oracle/ncdb.xml'); END; /
このプロシージャが正常に完了した後、XMLファイルおよび非CDBデータベース・ファイルを使用して、非CDBをCDBに接続できます。
-
DBMS_PDB.CHECK_PLUG_COMPATIBILITY
ファンクションを実行して、非CDBがCDBと互換性があるかどうかを確認します。このファンクションを実行する場合は、次のパラメータを設定します。
-
pdb_descr_file
- パラメータをXMLファイルへのフルパスに設定します。 -
pdb_name
: 新しいPDBの名前を指定します。このパラメータを省略した場合は、XMLファイル内のPDB名が使用されます。
たとえば、
/disk1/oracle/ncdb.xml
ファイルで記述されている非CDBが現在のCDBと互換性があるかどうかを確認するには、次のPL/SQLブロックを実行します。SET SERVEROUTPUT ON DECLARE compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY( pdb_descr_file => '/disk1/oracle/ncdb.xml', pdb_name => 'NCDB') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
出力が
YES
の場合は非CDBに互換性があり、次のステップに進むことができます。出力がNO
の場合は非CDBに互換性がなく、PDB_PLUG_IN_VIOLATIONS
ビューをチェックして、互換性がない理由を確認できます。続行するには、すべての違反を修正する必要があります。たとえば、アップグレード・ユーティリティまたはデータパッチ・ユーティリティを実行して、すべてのバージョン不一致またはパッチ不一致を解決する必要があります。違反を修正してから、DBMS_PDB.CHECK_PLUG_COMPATIBILITY
を再度実行して、非CDBがCDBと互換性があることを確認します。 -
-
非CDBを停止します。
-
非CDBを接続します。
たとえば、次のSQL文は非CDBをプラグインし、そのファイルを新しい場所にコピーして、非CDBから
tbs3
ユーザー表領域のみを含めます。CREATE PLUGGABLE DATABASE ncdb USING '/disk1/oracle/ncdb.xml' COPY FILE_NAME_CONVERT = ('/disk1/oracle/dbs/', '/disk2/oracle/ncdb/') USER_TABLESPACES=('tbs3');
違反がない場合は、新しいPDBをオープンしないでください。次のステップでオープンします。
USER_TABLESPACES
句を使用すると、非CDB内の複数のテナントに使用されたデータを異なるPDBに分けることができます。この句を指定したCREATE PLUGGABLE DATABASE
文を複数使用して、非CDBに存在する他の表領域のデータを含む別のPDBを作成できます。 -
ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
スクリプトを実行します。このスクリプトは、PDBを初めてオープンする前に実行する必要があります。PDBが非CDBでない場合、
noncdb_to_pdb.sql
スクリプトを実行する必要はありません。noncdb_to_pdb.sql
スクリプトを実行するには、次のステップを実行します。-
PDBにアクセスします。
現在のユーザーには
SYSDBA
管理権限が必要であり、その権限は共通で付与されているか、またはPDBでローカルに付与されている必要があります。ユーザーは、接続時にAS SYSDBA
を使用して権限を行使する必要があります。 -
noncdb_to_pdb.sql
スクリプトを次のように実行します。@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
スクリプトによって、PDBのオープン、変更の実行、および変更の完了時にPDBのクローズが行われます。
-
-
新しいPDBを読取り/書込みモードでオープンします。
Oracle Databaseで新しいPDBをCDBに統合するには、PDBを読取り/書込みモードでオープンする必要があります。PDBを読取り専用モードでオープンしようとすると、エラーが返されます。PDBが読取り/書込みモードでオープンされると、そのステータスは
NORMAL
になります。 -
PDBをバックアップします。
PDBは、バックアップしないとリカバリできません。
ノート:
PDBの作成時にエラーが返された場合は、作成されたPDBがUNUSABLE
状態である可能性があります。CDB_PDBS
またはDBA_PDBS
ビューを問い合せてPDBの状態を確認したり、アラート・ログをチェックしてPDBの作成エラーについてさらに学習できます。使用不可のPDBは削除することのみができ、使用不可のPDBと同じ名前のPDBを作成できるようにするには、その前に削除する必要があります。
親トピック: 切断されたPDBの接続
切断されたPDBの接続後
切断されたPDBの接続後に、ユーザーと表領域に関する特定のルールが適用されます。
切断されたPDBの接続後、次の内容が適用されます。
-
ソースPDBのデフォルト一時表領域を使用していたPDBのユーザー・アカウントは、ターゲットPDBのデフォルト一時表領域を使用します。ソースPDB内のデフォルト以外の一時表領域を使用していたユーザー・アカウントは、ターゲットPDB内の同じローカル一時表領域を引き続き使用します。
-
ソースCDBに存在するが、ターゲットには存在しない、手動で作成された共通ユーザー・アカウントには、権限は共通して付与されていません。ただし、ターゲットCDBに共通ユーザーが存在し、PDBの共通ユーザーと同じ名前である場合、後者は前者にリンクされ、ターゲットCDBの共通ユーザーに付与された権限を持ちます。
クローニングまたは接続されたPDBにターゲットCDBに存在しない共通ユーザー・アカウントが存在し、このユーザーがPDB内のオブジェクトを所有していない場合、Oracle Databaseでは同期ステップ中にユーザーが削除されます。それ以外の場合、ユーザー・アカウントはターゲットPDBでロックされます。ロックされたアカウントに関して、次のオプションがあります。
-
PDBをクローニングし、ルートに接続し、同じ名前で共通ユーザー・アカウントを作成します。PDBを読取り/書込みモードでオープンすると、ユーザー・アカウントに共通して付与されているロールや権限の相違点が解決され、アカウントをロック解除できます。ユーザー・アカウントに対してローカルに付与されている権限やロールは、このプロセス中も変更されません。
-
PDBに新しいローカル・ユーザー・アカウントを作成し、データ・ポンプを使用して、ロックされたユーザーのデータを新しいローカル・ユーザーのスキーマにエクスポート/インポートします。
-
ユーザー・アカウントはロックされたままにします。
-
ユーザー・アカウントを削除します。
-
関連項目:
-
共通ユーザーおよびローカル・ユーザーの詳細は、『Oracle Database概要』を参照してください
-
CDBにおける共通ユーザーおよびローカル・ユーザーの作成方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください
-
CDBでのOracle Data Pumpの使用の詳細は、『Oracle Databaseユーティリティ』を参照してください
親トピック: 切断されたPDBの接続
切断されたPDBの接続: 例
次の例では、様々な要因に基づき、/disk1/usr/salespdb.xml
ファイルまたは/disk1/usr/sales.pdb
ファイルを使用して、salespdb
という名前の切断されたPDBを接続します。
各例で、新しいPDBが属するルートはCREATE PLUGGABLE DATABASE
文の実行時の現在のコンテナによって決まります。
-
現在のコンテナがCDBルートの場合、新しいPDBはCDBに作成されます。
-
現在のコンテナがアプリケーション・ルートの場合、新しいアプリケーションPDBはアプリケーション・ルートのアプリケーション・コンテナ内に作成されます。
例9-3 NOCOPY句を使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
PATH_PREFIX
句は必要ありません。 -
XMLファイルにファイルの現在の場所が正確に記述されています。したがって、
SOURCE_FILE_NAME_CONVERT
またはSOURCE_FILE_DIRECTORY
句は不要です。 -
ファイルは、正しい場所に存在します。したがって、
NOCOPY
が含まれています。 -
PDBにはストレージ制限は必要ありません。したがって、
STORAGE
句は必要ありません。 -
ターゲットの場所に、XMLファイルで指定されている一時ファイルと同じ名前のファイルがあります。したがって、
TEMPFILE REUSE
句が必要です。
前述の要因に基づき、次の文によってPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/salespdb.xml'
NOCOPY
TEMPFILE REUSE;
例9-4 AS CLONE句およびNOCOPY句を使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBに基づいています。したがって、
AS
CLONE
句が必要です。AS
CLONE
句は、新しいPDBに一意の識別子があることを保証します。 -
PATH_PREFIX
句は必要ありません。 -
XMLファイルにファイルの現在の場所が正確に記述されています。したがって、
SOURCE_FILE_NAME_CONVERT
またはSOURCE_FILE_DIRECTORY
句は不要です。 -
ファイルは、正しい場所に存在します。したがって、
NOCOPY
が含まれています。 -
PDBにはストレージ制限は必要ありません。したがって、
STORAGE
句は必要ありません。 -
ターゲットの場所に、XMLファイルで指定されている一時ファイルと同じ名前のファイルがあります。したがって、
TEMPFILE REUSE
句が必要です。
前述の要因に基づき、次の文によってPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb AS CLONE USING '/disk1/usr/salespdb.xml'
NOCOPY
TEMPFILE REUSE;
例9-5 SOURCE_FILE_NAME_CONVERT、NOCOPYおよびSTORAGEの各句を使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
PATH_PREFIX
句は必要ありません。 -
XMLファイルでは、ファイルの現在の場所が正確に記述されていません。したがって、
SOURCE_FILE_NAME_CONVERT
句またはSOURCE_FILE_DIRECTORY
句が必要です。この例では、ファイルが/disk1/oracle/salesに存在することがXMLファイルで示されていますが、ファイルは/disk2/oracle/salesにあり、SOURCE_FILE_NAME_CONVERT
句が使用されています。 -
ファイルは、正しい場所に存在します。したがって、
NOCOPY
が含まれています。 -
PDBにストレージ制限を強制する必要があります。したがって、
STORAGE
句が必要です。特に、PDBに属する表領域はいずれも2GBを超えることはできません。 -
ターゲットの場所に、XMLファイルで指定されている一時ファイルと同じ名前のファイルがあります。したがって、
TEMPFILE REUSE
句が必要です。
前述の要因に基づき、次の文によってPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/salespdb.xml'
SOURCE_FILE_NAME_CONVERT = ('/disk1/oracle/sales/', '/disk2/oracle/sales/')
NOCOPY
STORAGE (MAXSIZE 2G)
TEMPFILE REUSE;
例9-6 COPY、PATH_PREFIXおよびFILE_NAME_CONVERTの各句を使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
パス接頭辞をPDBのディレクトリ・パスに追加する必要があります。したがって、
PATH_PREFIX
句が必要です。この例では、パス接頭辞/disk2/oracle/sales/をPDBのディレクトリ・オブジェクト・パスに追加しています。 -
XMLファイルにファイルの現在の場所が正確に記述されています。したがって、
SOURCE_FILE_NAME_CONVERT
またはSOURCE_FILE_DIRECTORY
句は不要です。 -
ファイルは、正しい場所に存在しません。したがって、
COPY
またはMOVE
が含まれている必要があります。この例では、ファイルはコピーされます。CREATE_FILE_DEST
句が使用されておらず、Oracle Managed Filesが有効になっておらず、PDB_FILE_NAME_CONVERT
初期化パラメータが設定されていません。したがって、FILE_NAME_CONVERT
句が必要です。この例では、ファイルは/disk1/oracle/salesから/disk2/oracle/salesにコピーされます。 -
PDBにはストレージ制限は必要ありません。したがって、
STORAGE
句は必要ありません。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因に基づき、次の文によってPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/salespdb.xml'
COPY
PATH_PREFIX = '/disk2/oracle/sales/'
FILE_NAME_CONVERT = ('/disk1/oracle/sales/', '/disk2/oracle/sales/');
例9-7 SOURCE_FILE_NAME_CONVERT、MOVE、FILE_NAME_CONVERTおよびSTORAGEの各句を使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
PATH_PREFIX
句は必要ありません。 -
XMLファイルでは、ファイルの現在の場所が正確に記述されていません。したがって、
SOURCE_FILE_NAME_CONVERT
句またはSOURCE_FILE_DIRECTORY
句が必要です。この例では、ファイルが/disk1/oracle/salesに存在することがXMLファイルで示されていますが、ファイルは/disk2/oracle/salesにあり、SOURCE_FILE_NAME_CONVERT
句が使用されています。 -
ファイルは、PDBの正しい最終的な場所に存在しません。したがって、
COPY
またはMOVE
が含まれている必要があります。この例では、MOVE
を指定してファイルを移動します。CREATE_FILE_DEST
句が使用されておらず、Oracle Managed Filesが有効になっておらず、PDB_FILE_NAME_CONVERT
初期化パラメータが設定されていません。したがって、FILE_NAME_CONVERT
句が必要です。この例では、ファイルは/disk2/oracle/salesから/disk3/oracle/salesにコピーされます。 -
PDBにストレージ制限を強制する必要があります。したがって、
STORAGE
句が必要です。特に、PDBに属する表領域はいずれも2GBを超えることはできません。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因に基づき、次の文によってPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/salespdb.xml'
SOURCE_FILE_NAME_CONVERT = ('/disk1/oracle/sales/', '/disk2/oracle/sales/')
MOVE
FILE_NAME_CONVERT = ('/disk2/oracle/sales/', '/disk3/oracle/sales/')
STORAGE (MAXSIZE 2G);
例9-8 SOURCE_FILE_DIRECTORY、MOVE、FILE_NAME_CONVERTおよびSTORAGEの各句を使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
PATH_PREFIX
句は必要ありません。 -
XMLファイルでは、ファイルの現在の場所が正確に記述されていません。したがって、
SOURCE_FILE_NAME_CONVERT
句またはSOURCE_FILE_DIRECTORY
句が必要です。この例では、ファイルが/disk1/oracle/salesに存在することがXMLファイルで示されていますが、ファイルは/disk2/oracle/salesにあり、SOURCE_FILE_DIRECTORY
句が使用されています。 -
ファイルは、PDBの正しい最終的な場所に存在しません。したがって、
COPY
またはMOVE
が含まれている必要があります。この例では、MOVE
を指定してファイルを移動します。CREATE_FILE_DEST
句が使用されておらず、Oracle Managed Filesが有効になっておらず、PDB_FILE_NAME_CONVERT
初期化パラメータが設定されていません。したがって、FILE_NAME_CONVERT
句が必要です。この例では、ファイルは/disk2/oracle/salesから/disk3/oracle/salesにコピーされます。 -
PDBにストレージ制限を強制する必要があります。したがって、
STORAGE
句が必要です。特に、PDBに属する表領域はいずれも2GBを超えることはできません。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因に基づき、次の文によってPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/salespdb.xml'
SOURCE_FILE_DIRECTORY = '/disk2/oracle/sales/'
MOVE
FILE_NAME_CONVERT = ('/disk2/oracle/sales/', '/disk3/oracle/sales/')
STORAGE (MAXSIZE 2G);
例9-9 アーカイブ・ファイルを使用して切断されたPDBを接続する方法
この例では、次の要因を想定しています。
-
切断されたPDBは、
sales.pdb
という名前の.pdbアーカイブ・ファイルにあります。アーカイブ・ファイルには、XMLメタデータ・ファイルおよびPDBのファイル(データファイルやウォレット・ファイルなど)が圧縮形式で含まれ、これらのファイルはCREATE PLUGGABLE DATABASE
文の実行時に.pdbアーカイブ・ファイルの現在のディレクトリに抽出されます。 -
新しいPDBは、CDB内に既存のPDBを作成するために使用された同じ切断されたPDBには基づいていません。したがって、
AS
CLONE
句は必要ありません。 -
PATH_PREFIX
句は必要ありません。 -
PDBにストレージ制限を強制する必要があります。したがって、
STORAGE
句が必要です。特に、PDBに属する表領域はいずれも2GBを超えることはできません。 -
ターゲットの場所に、作成される新しい一時ファイルと同じ名前のファイルはありません。したがって、
TEMPFILE REUSE
句は必要ありません。
前述の要因に基づき、次の文によってアーカイブ・ファイルを使用してPDBを接続します。
CREATE PLUGGABLE DATABASE salespdb USING '/disk1/usr/sales.pdb'
STORAGE (MAXSIZE 2G);
親トピック: 切断されたPDBの接続