この章では、Oracle Data Pump Import(impdp)ユーティリティについて説明します。この章の内容は、次のとおりです。
データ・ポンプ・インポート(以降、インポート・ユーティリティと呼びます)は、エクスポート・ダンプ・ファイル・セットをターゲット・システムにロードするためのユーティリティです。ダンプ・ファイル・セットは、表データ、データベース・オブジェクトのメタデータ、制御情報を含む1つ以上のディスク・ファイルで構成されています。これらのファイルは独自のバイナリ形式で書き込まれています。データ・ポンプ・インポート・ユーティリティは、インポート操作中、これらのファイルを使用してダンプ・ファイル・セット内の各データベース・オブジェクトの位置を特定します。
また、ダンプ・ファイルを介さずに、ソース・データベースから直接ターゲット・データベースをロードするために使用することもできます。これはネットワーク・インポートと呼ばれます。
データ・ポンプ・インポート・ユーティリティでは、インポート・モードで設定されているとおりにジョブによって、データおよびメタデータのサブセットが、ダンプ・ファイル・セットまたはソース・データベース(ネットワーク・インポートの場合)から移動されるように指定できます。この指定は、インポート・ユーティリティのコマンドによって実装されるデータ・フィルタおよびメタデータ・フィルタを使用して行います。詳細は、「インポート操作中のフィルタ処理」を参照してください。
インポートを使用できる様々な方法の例については、「データ・ポンプ・インポートの使用例」を参照してください。
データ・ポンプ・インポート・ユーティリティは、impdp
コマンドを使用して起動します。インポート操作の特性は、指定するインポート・パラメータによって決定されます。これらのパラメータは、コマンドラインまたはパラメータ・ファイルのいずれかで指定できます。
注意: NOLOGGING 句を有効にして作成された表または表領域に対してデータ・ポンプ・インポートを実行する場合でも、REDOログ・ファイルが生成される場合があることに注意してください。このような場合に生成されるREDOは、通常、マスター表のメンテナンスを目的としているか、または基礎となる再帰的領域トランザクション、データ・ディクショナリの変更、およびロギングを必要とする表の索引メンテナンスに関係しています。 |
インポート・ユーティリティの起動の詳細は、次の項を参照してください。
データ・ポンプ・インポートは、コマンドライン、パラメータ・ファイルまたは対話方式コマンド・モードを使用して実行できます。
コマンドライン・インタフェース: 直接コマンドラインでインポートのパラメータを指定できます。コマンドライン・インタフェースで使用可能なパラメータの詳細は、「インポート・ユーティリティのコマンドライン・モードで使用可能なパラメータ」を参照してください。
パラメータ・ファイル・インタフェース: パラメータ・ファイルでコマンドラインのパラメータを指定できます。パラメータ・ファイルはネストできないため、PARFILE
パラメータのみが例外となります。値の指定に引用符が必要なパラメータを指定する場合は、パラメータ・ファイルを使用することをお薦めします。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。
対話方式コマンド・インタフェース: 端末へのロギングを中止してインポート・ユーティリティのプロンプトを表示します。対話方式コマンド・モード固有のコマンドも含めて、様々なコマンドが入力できます。このモードは、コマンドライン・インタフェースまたはパラメータ・ファイル・インタフェースで開始されたインポート操作中に[Ctrl]キーを押しながら[C]キーを押すと使用可能になります。対話方式コマンド・モードは、実行中のジョブまたは停止されたジョブに接続した場合も使用可能になります。
対話方式コマンド・モードで使用可能なコマンドの詳細は、「インポート・ユーティリティの対話方式コマンド・モードで使用可能なコマンド」を参照してください。
インポート・モードで、何をインポートするかを決定します。指定したモードは、操作のソース(ダンプ・ファイル・セットまたはNETWORK_LINK
パラメータが指定されている場合は別のデータベース)に適用されます。
インポート操作のソースがダンプ・ファイル・セットの場合、モードの指定はオプションです。モードを指定していない場合、インポート・ユーティリティは、エクスポート操作実行時のモードでダンプ・ファイル・セット全体をロードしようとします。
モードは、適切なパラメータを使用してコマンドラインで指定します。使用可能なモードについては、次の項で説明します。
注意: 全体モード・エクスポートによって作成されたダンプ・ファイルをインポートする場合、インポート操作はSYS アカウントのパスワードをソース・データベースからコピーしようとします。これは、失敗する場合があります(パスワードが共有パスワード・ファイル内にある場合など)。失敗した場合は、インポートの完了後に、ターゲット・データベース上のSYS アカウントのパスワードを任意のパスワードに設定する必要があります。 |
全体インポートは、FULL
パラメータを使用して指定します。全体インポート・モードでは、ソース(ダンプ・ファイル・セットまたは別のデータベース)の全内容がターゲット・データベースにロードされます。これは、ファイル・ベース・インポートのデフォルトです。ソースが別のデータベースの場合は、DATAPUMP_IMP_FULL_DATABASE
ロールが必要です。
権限のないユーザーの場合、相互スキーマ参照はインポートされません。たとえば、インポートを実行するユーザーのスキーマ内の表にトリガーが定義されていても、そのトリガーが別のユーザーのスキーマに存在している場合はインポートされません。
NETWORK_LINK
パラメータを完全インポートに使用する場合は、ターゲット・データベースではDATAPUMP_IMP_FULL_DATABASE
ロールが必要で、ソース・データベースではDATAPUMP_EXP_FULL_DATABASE
ロールが必要です。
スキーマ・インポートは、SCHEMAS
パラメータを使用して指定します。スキーマ・インポートでは、指定されたスキーマが所有しているオブジェクトのみがロードされます。ソースは、全体インポート・モード、表モード、表領域モードまたはスキーマ・モードのエクスポート・ダンプ・ファイル・セット、または別のデータベースです。DATAPUMP_IMP_FULL_DATABASE
ロールを所有している場合は、スキーマ・リストを指定できます。これにより、スキーマ内のオブジェクトに加えてスキーマ自体(システム権限を含む)もデータベース内に作成されます。
相互スキーマ参照は、残りのスキーマが現行のスキーマに再マップされないかぎり、権限のないユーザーに対してインポートされません。たとえば、インポートを実行するユーザーのスキーマ内の表にトリガーが定義されていても、そのトリガーが別のユーザーのスキーマに存在している場合はインポートされません。
表モード・インポートは、TABLES
パラメータを使用して指定します。表モードでは、指定した表、パーティションおよびそれらの依存オブジェクトのみがロードされます。ソースは、全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、または別のデータベースです。自分のスキーマに存在しない表を指定するには、DATAPUMP_IMP_FULL_DATABASE
ロールが必要です。
TRANPORTABLE=ALWAYS
パラメータをTABLES
パラメータと組み合せて指定することで、表モードのインポート中にトランスポータブル・オプションを使用できます。これには、NETWORK_LINK
パラメータも使用する必要があることに注意してください。
表領域モードのインポートは、TABLESPACES
パラメータを使用して指定します。表領域モードでは、指定した表領域内のすべてのオブジェクトが、依存オブジェクトとともにロードされます。ソースは、全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、または別のデータベースです。権限のないユーザーの場合、現行のスキーマに再マッピングされていないオブジェクトは処理されません。
トランスポータブル表領域インポートは、TRANSPORT_TABLESPACES
パラメータを使用して指定します。トランスポータブル表領域モードでは、(NETWORK_LINK
パラメータで指定された)データベース・リンクを使用して、別のデータベースからメタデータがロードされます。ダンプ・ファイルは含まれません。TRANSPORT_DATAFILES
パラメータで指定した実際のデータ・ファイルは、ターゲット・データベースで使用するために、通常は、データ・ファイルをターゲット・システムにコピーすることによって、ソース・システムで使用可能にする必要があります。
暗号化された列は、トランスポータブル表領域モードではサポートされていません。
このモードには、DATAPUMP_IMP_FULL_DATABASE
ロールが必要です。
注意: トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。ターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。 |
トランスポータブル表領域モードでのタイムゾーン・ファイルのバージョンに関する考慮点
トランスポータブル表領域モードで実行されるジョブには、タイムゾーン・ファイルのバージョンに関連する次の要件があります。
ソースがOracle Database 11g リリース2(11.2.0.2)以降で、TIMESTAMP WITH TIMEZONE(TSTZ)列を使用するトランスポータブル・セット内に表がある場合、ターゲット・データベースのタイムゾーン・ファイルのバージョンは、ソース・データベースのタイムゾーン・ファイルのバージョンと完全に一致する必要があります。
ソースがOracle Database 11g リリース2(11.2.0.2)よりも前の場合、トランスポータブル・セットがTSTZ列を使用するかどうかに関係なく、タイムゾーン・ファイルのバージョンはすべてのトランスポータブル・ジョブのソースおよびターゲット・データベースで同じである必要があります。
これらの要件が満たされない場合、インポートが実行される前にインポート・ジョブが中断されます。これは、インポート・ジョブによるオブジェクトのインポートを許可すると、TSTZ列を含む表を読み込む際に、結果に不整合が生じる可能性があるためです。
データベースのタイムゾーン・ファイルのバージョンを識別するには、次のSQL文を実行します。
SQL> SELECT VERSION FROM V$TIMEZONE_FILE;
参照:
|
データ・ポンプ・インポート・ユーティリティの起動時、接続文字列には接続識別子を指定できます。接続識別子では、現行のOracleシステム識別子(SID)によって指定した現行のインスタンスとは別のデータベース・インスタンスを指定できます。接続識別子には、Oracle*Net接続記述子または接続記述子にマップするネット・サービス名(通常、tnsnames.ora
ファイルで定義される)を指定できます。接続識別子を使用するには、Oracle Net Listenerが実行中であることが必要です(デフォルト・リスナーを起動するには、lsnrctl
start
と入力します)。次に、inst1
が接続識別子である場合のこのタイプの接続の例を示します。
impdp hr@inst1 DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp TABLES=employees
インポートによってパスワードの入力を要求されます。
Password: password
ローカル・インポート・クライアントは接続識別子inst1
(ネット・サービス名)によって識別されるデータベース・インスタンスに接続し、ダンプ・ファイルhr.dmp
からinst1
にデータをインポートします。
インポート・ユーティリティの起動時に接続識別子を指定することと、NETWORK_LINK
パラメータを使用してインポート操作を実行することは異なります。インポート操作を開始して接続識別子を指定すると、接続識別子によって識別されるデータベース・インスタンスにローカルのインポート・クライアントが接続され、コマンドラインで指定されるダンプ・ファイルからそのデータベース・インスタンスにデータがインポートされます。
一方、NETWORK_LINK
パラメータを使用してインポートを実行すると、インポートはデータベース・リンクを使用して実行され、ダンプ・ファイルは含まれません。(データベース・リンクとは2つの物理データベース・サーバー間の接続で、データベース・リンクによってクライアントは2つの物理データベース・サーバーに1つの論理データベースとしてアクセスできます。)
参照:
|
データ・ポンプ・インポート・ユーティリティでは、データとメタデータのフィルタ処理機能を使用して、インポートする情報の種類を効果的に制限できます。
データ固有のフィルタ処理は、QUERY
およびSAMPLE
パラメータによって実装されます。このパラメータは、表のインポートされる行に対する制限を指定します。メタデータのフィルタ処理のため、間接的にデータのフィルタ処理が実行される場合もあります。この処理では、表オブジェクトおよび関連付けられた行データを含めたり、除外することができます。
各データ・フィルタは、表およびジョブごとにそれぞれ1回指定できます。同じ名前を使用する異なるフィルタが特定の表とジョブ全体の両方に適用された場合は、特定の表に対して提供されたフィルタ・パラメータが優先されます。
データ・ポンプ・インポート・ユーティリティで提供されるメタデータのフィルタ処理機能は、オリジナルのインポート・ユーティリティと比較すると大幅に拡張されています。メタデータのフィルタ処理は、EXCLUDE
およびINCLUDE
パラメータによって実装されます。EXCLUDE
およびINCLUDE
は、相互に排他的なパラメータです。
メタデータ・フィルタは、データ・ポンプ操作に含めるか、またはその操作から除外するオブジェクトを識別します。たとえば、パッケージ仕様またはパッケージ本体を含まない全体インポートを要求できます。
フィルタを正しく使用して必要な結果を得た場合は、識別されたオブジェクトの依存オブジェクトも、識別されたオブジェクトとともに処理されます。たとえば、パッケージを操作に含めるようにフィルタで指定すると、そのパッケージに対する権限も含まれます。同様に、フィルタで表を除外すると、その表に対する索引、制約、権限およびトリガーも除外されます。
1つのオブジェクト型に対して複数のフィルタが指定されている場合は、それらのフィルタに対して暗黙的なAND
処理が適用されます。つまり、ジョブに関連するオブジェクトは、オブジェクト型に適用されるすべてのフィルタで処理される必要があります。
1つのジョブ内で同一のフィルタ名を複数回指定できます。
DATABASE_EXPORT_OBJECTS
(全体モードの場合)、SCHEMA_EXPORT_OBJECTS
(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS
(表および表領域モードの場合)ビューを問い合せて、有効なオブジェクト・タイプ値の一覧を表示できます。OBJECT_PATH
列にリストされる値が有効なオブジェクト・タイプです。完全なオブジェクト・パス名は、インポート・モードでなくエクスポート・モードによって決定されます。
この項では、データ・ポンプ・インポート・ユーティリティのコマンドライン・モードで使用可能なパラメータについて説明します。インポート・パラメータを使用する前に、必ず次の項を読んでください。
ここで説明する内容の多くは、パラメータの使用例を含みます。使用例を実行するために必要な環境の設定の詳細は、次の項を参照してください。
インポート・パラメータの指定
値を複数個指定できるパラメータでは、カンマまたは空白で値を区切ることができます。たとえば、TABLES=employees,jobs
またはTABLES=employees jobs
のように指定できます。
入力するパラメータごとに、等号(=)と値を入力する必要があります。それ以外の方法では、1つ前のパラメータ指定がどこで完了し、新しいパラメータ指定がどこから始まるかをデータ・ポンプに伝えることができません。たとえば、次のコマンドラインの場合、NOLOGFILE
は有効なパラメータですが、DUMPFILE
パラメータに対するダンプ・ファイル名がもう1つあると解釈されます。
impdp DIRECTORY=dpumpdir DUMPFILE=test.dmp NOLOGFILE TABLES=employees
その結果、test.dmp
およびnologfile.dmp
という2つのダンプ・ファイルが作成されることになります。
これを回避するには、NOLOGFILE=YES
またはNOLOGFILE=NO
のいずれかを指定します。
一部のオペレーティング・システムでは引用符が特殊文字として処理されるため、バックスラッシュ(\)などのエスケープ文字を前に付けないと、アプリケーションに正しく渡されません。これは、コマンドラインとパラメータ・ファイル内の両方に当てはまります。また、オペレーティング・システムによっては、コマンドラインで、特殊文字を含むパラメータ値全体を一重引用符または二重引用符で囲む必要があります。
次の例では、これらの概念を説明します。特定のオペレーティング・システムに該当しない場合があること、および各ユーザーに固有の運用環境は想定していないことに注意してください。
次のように、パラメータ・ファイルでTABLES
パラメータを指定するとします。
TABLES = \"MixedCaseTableName\"
これをコマンドラインで指定するとき、一部のオペレーティング・システムでは、次のように一重引用符で囲む必要があります。
TABLES = '\"MixedCaseTableName\"'
コマンドラインで追加の引用符を指定せずに手順を続行するには、パラメータ・ファイルを使用することをお薦めします。また、パラメータ・ファイルを使用し、指定するパラメータ値の文字列の最初の文字に引用符を使用しない場合(たとえば、TABLES=scott."EmP"
)は、エスケープ文字の使用が不要になるシステムがあることに注意してください。
参照:
|
インポート・パラメータの使用例
各項に示す例を試行する場合は、次の内容に注意してください。
例に示すようにユーザー名およびパラメータを入力した後、インポート・ユーティリティが起動され、パスワードの入力が要求されます。データベース接続が行われる前に、パスワードを入力する必要があります。
ここに示す例の多くは、Oracle Databaseのインストール時にデフォルトでインストールされるシード・データベースのサンプル・スキーマを使用しています。特に、人事管理(hr
)スキーマを頻繁に使用します。
インポートするダンプ・ファイルを指定する例では、そのダンプ・ファイルが存在するものとします。可能なかぎり、第2章でExportの例を実行すると生成されるダンプ・ファイルを使用します。
この例では、ディレクトリ・オブジェクトdpump_dir1
およびdpump_dir2
がすでに存在し、これらのディレクトリ・オブジェクトについてのREAD
権限およびWRITE
権限が、hr
ユーザーに付与されているものとします。ディレクトリ・オブジェクトの作成および権限の割当ての詳細は、「ダンプ・ファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置」を参照してください。
一部の例では、DATAPUMP_EXP_FULL_DATABASE
ロールおよびDATAPUMP_IMP_FULL_DATABASE
ロールが必要です。その例では、hr
ユーザーにこれらのロールが付与されているものとします。
必要に応じて、これらのディレクトリ・オブジェクトの作成と、必要な権限やロールの割当てをDBAに依頼します。
これらのパラメータの構文図は、「データ・ポンプ・インポートの構文図」を参照してください。
特に指定がないかぎり、これらのパラメータはパラメータ・ファイルでも指定できます。
デフォルト: NULL
用途
ジョブの初期化後に、そのジョブを停止する場合に使用します。これによって、データがインポートされる前に、マスター表への問合せが可能となります。
構文および説明
ABORT_STEP=[n | -1]
指定可能な値は、マスター表内のプロセス・オーダー番号と対応しています。各番号の使用結果は次のとおりです。
n: 値が0以上の場合は、インポート操作が開始され、対応するプロセス・オーダー番号を持つ、マスター表に格納されているオブジェクトでジョブが中断されます。
-1およびジョブがNETWORK_LINK
を使用するインポートの場合: ジョブの設定後(ただし、いずれかのオブジェクトのインポート前)に中断します。
-1およびジョブがNETWORK_LINK
を使用しないインポートの場合: マスター表をロードしてフィルタを適用した後に、ジョブを中断します。
制限事項
なし
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log DUMPFILE=expdat.dmp ABORT_STEP=-1
デフォルト: AUTOMATIC
用途
インポート・ユーティリティで特定のメソッドを使用してデータをロードするように指定します。
構文および説明
ACCESS_METHOD=[AUTOMATIC | DIRECT_PATH | EXTERNAL_TABLE | CONVENTIONAL]
デフォルトのメソッドがなんらかの理由で動作しない場合に別のネイティブ・メソッドを試行できるように、ACCESS_METHOD
パラメータが提供されます。できるだけデフォルトのオプション(AUTOMATIC
)を使用することをお薦めします(このオプションによって、データ・ポンプは最も効果的なメソッドを自動的に選択できるようになります)。
制限事項
NETWORK_LINK
パラメータも指定した場合、ACCESS_METHOD
パラメータは無視されます。
Data Pump ImportのACCESS_METHOD
パラメータは、トランスポータブル表領域のジョブに対して有効ではありません。
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log DUMPFILE=expdat.dmp ACCESS_METHOD=CONVENTIONAL
デフォルト: ユーザーのスキーマで現在実行されているジョブ(実行中のジョブが1つのみの場合)
用途
クライアント・セッションを既存のインポート・ジョブに接続し、自動的に対話方式コマンド・モードにします。
構文および説明
ATTACH [=[schema_name.]job_name]
schema_name
は、接続しているスキーマが、自分のスキーマにない場合に指定します。このパラメータを指定するには、DATAPUMP_IMP_FULL_DATABASE
ロールが必要です。
job_name
は、スキーマに対応する実行中ジョブが1つのみで、そのジョブがアクティブな場合、指定する必要はありません。停止しているジョブに接続する場合は、このジョブ名を指定する必要があります。DBA_DATAPUMP_JOBS
ビューまたはUSER_DATAPUMP_JOBS
ビューを問い合せて、データ・ポンプ・ジョブ名の一覧を表示できます。
ジョブに接続している場合、インポート・ユーティリティでは、ジョブの説明が表示され、次にインポート・プロンプトが表示されます。
制限事項
ATTACH
パラメータを指定する場合、コマンドラインで他に指定できるデータ・ポンプ・パラメータは、ENCRYPTION_PASSWORD
のみです。
接続するジョブが最初に暗号化パスワードを使用して起動している場合、そのジョブへの接続時に、コマンドライン上のENCRYPTION_PASSWORD
パラメータを再入力してそのパスワードを再指定する必要があります。唯一の例外は、ジョブが最初にENCRYPTION=ENCRYPTED_COLUMNS_ONLY
パラメータを使用して開始されている場合です。この場合、ジョブへの接続時に暗号化パスワードは必要ありません。
そのジョブが実行中でなければ、別のスキーマのジョブに接続することはできません。
ジョブのダンプ・ファイル・セットまたはマスター表が削除されている場合、接続操作は失敗します。
マスター表を変更すると、それがどのような変更であっても、予期しない結果になる場合があります。
例
次に、ATTACH
パラメータの使用例を示します。
> impdp hr ATTACH=import_job
この例では、import_job
というジョブが、hr
スキーマに存在するとします。
デフォルト: Y
ES
用途
データ・ポンプでOracle Real Application Clusters(Oracle RAC)リソースを使用できるかどうかと、ワーカーを他のOracle RACインスタンス上で開始できるかどうかを決定します。
構文および説明
CLUSTER=[YES | NO]
データ・ポンプ・インポートで、ジョブが開始されたインスタンスのみを使用し、Oracle Database 11g リリース2(11.2)より前の動作と同じにするには、CLUSTER=NO
を指定します。
特定の既存サービスを指定し、そのサービスに定義されたインスタンスでのみ実行されるようにワーカー・プロセスを制限するには、SERVICE_NAME
パラメータとCLUSTER=YES
パラメータとともに使用します。
CLUSTER
パラメータを使用すると、インポート・ジョブをOracle RACインスタンス全体に分散させるための追加のオーバーヘッドが発生するため、パフォーマンスに影響する場合があります。ジョブが小さいときは、CLUSTER=NO
を指定して、ジョブが開始されたインスタンス上のみでジョブを実行した方がよい場合もあります。CLUSTER
パラメータを使用してジョブのパフォーマンスが最もよくなるのは、ジョブのデータ量が多い場合です。
例
> impdp hr DIRECTORY=dpump_dir1 SCHEMAS=hr CLUSTER=NO PARALLEL=3 NETWORK_LINK=dbs1
この例では、hr
スキーマのスキーマ・モード・インポートを実行します。CLUSTER=NO
が使用されているため、ジョブでは起動時のインスタンスのみが使用されます。最大3つまでのパラレル処理を使用できます。dbs1
のNETWORK_LINK
値は、データのインポート元であるソース・データベース名に置き換えます。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)
NETWORK_LINK
パラメータは、単にこの例の一部として使用されています。CLUSTER
パラメータの使用時は必須ではありません。
デフォルト: ALL
用途
インポート操作でロードする内容をフィルタ処理できます。
構文および説明
CONTENT=[ALL | DATA_ONLY | METADATA_ONLY]
ALL
を指定すると、ソースに含まれているすべてのデータおよびメタデータがロードされます。これがデフォルトです。
DATA_ONLY
を指定すると、表の行データのみが既存の表にロードされます。データベース・オブジェクトは作成されません。
METADATA_ONLY
を指定すると、データベース・オブジェクト定義のみがロードされ、表の行データはロードされません。CONTENT=METADATA_ONLY
を指定した場合、ダンプ・ファイルからインポートされる任意の索引または表の統計は、インポート操作の完了後にロックされることに注意してください。
制限事項
CONTENT=METADATA_ONLY
パラメータおよび値は、TRANSPORT_TABLESPACES
(トランスポータブル表領域モード)パラメータまたはQUERY
パラメータと組み合せて使用することはできません。
CONTENT=ALL
およびCONTENT=DATA_ONLY
パラメータおよび値は、SQLFILE
パラメータと組み合せて使用することはできません。
例
次に、CONTENT
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp CONTENT=METADATA_ONLY
このコマンドは、expfull.dmp
ダンプ・ファイルのメタデータのみをロードする全体インポートを実行します。全体インポートが実行されるのは、インポート・モードを指定しないファイル・ベースのインポートでは、全体インポートがデフォルトであるためです。
デフォルト: デフォルト値は設定されていません。このパラメータが使用されていない場合、このパラメータが提供する特別なデータ処理オプションは無効になります。
用途
DATA_OPTIONS
パラメータは、インポート操作時に特定のタイプのデータをどのように処理するかを指定します。
構文および説明
DATA_OPTIONS = [DISABLE_APPEND_HINT | SKIP_CONSTRAINT_ERRORS]
DISABLE_APPEND_HINT
: インポート操作で、データ・オブジェクトのロード時にAPPEND
ヒントを使用しないことを指定します。ロードするデータ・オブジェクトの一部がすでにデータベースに存在し、1つ以上のデータ・オブジェクトに対して他のアプリケーションから同時にアクセスされる可能性がある場合は、APPEND
ヒントを無効にしたほうが効果的な場合があります。
DISABLE_APPEND_HINT
を設定しない場合は、デフォルトの動作によりデータ・オブジェクトのロード中にAPPEND
ヒントが使用されます。
SKIP_CONSTRAINT_ERRORS
: データ・オブジェクト(表、パーティションまたはサブパーティション)をロードする際の、非遅延制約違反の処理方法に適用されます。遅延制約違反が発生しても、ロードへの影響はありません。遅延制約違反は常に、ロード全体のロール・バックの原因となります。
SKIP_CONSTRAINT_ERRORS
オプションでは、非遅延の制約違反が発生した場合もインポート操作を続行することを指定します。非遅延の制約違反の原因となっているすべての行はログに記録されますが、違反が発生しているデータ・オブジェクトのロードは停止されません。
SKIP_CONSTRAINT_ERRORS
が設定されていない場合のデフォルトの動作では、非遅延の制約違反が発生しているデータ・オブジェクトのロード全体がロール・バックされます。
制限事項
DISABLE_APPEND_HINT
を使用すると、データ・オブジェクトのロードにかかる時間が長くなる場合があります。
SKIP_CONSTRAINT_ERRORS
が使用され、データ・オブジェクトがロード時にそのデータ・オブジェクトに対して定義された一意の索引または制約を持つ場合、そのデータ・オブジェクトのロードにAPPEND
ヒントは使用されません。したがって、SKIP_CONSTRAINT_ERRORS
オプションを使用した場合、このようなデータ・オブジェクトのロードにはより時間がかかります。
データ・オブジェクトが外部表によるアクセス方法を使用せずにロードされている場合、SKIP_CONSTRAINT_ERRORS
は、たとえ指定されていても使用されません。
例
この例では、SKIP_CONSTRAINT_ERRORS
が有効化されているデータのみの表モード・インポートを示します。
> impdp hr TABLES=employees CONTENT=DATA_ONLY DUMPFILE=dpump_dir1:table.dmp DATA_OPTIONS=skip_constraint_errors
このインポート操作中に非遅延の制約違反が発生した場合、それはログに記録されますが、インポートは完了するまで続行されます。
デフォルト: DATA_PUMP_DIR
用途
インポート・ジョブがダンプ・ファイル・セットを検出し、ログ・ファイルおよびSQLファイルが作成されるデフォルトの位置を指定します。
構文および説明
DIRECTORY=directory_object
directory_object
は、データベースのディレクトリ・オブジェクトの名前です(実際のディレクトリのファイル・パスではありません)。インストール時に、特権ユーザーにDATA_PUMP_DIR
という名前のデフォルトのディレクトリ・オブジェクトへのアクセス権が付与されます。デフォルトのDATA_PUMP_DIR
ディレクトリ・オブジェクトにアクセス可能なユーザーは、DIRECTORY
パラメータを使用する必要はまったくありません。
DUMPFILE
パラメータ、LOGFILE
パラメータまたはSQLFILE
パラメータで指定したディレクトリ・オブジェクトは、DIRECTORY
パラメータに指定したディレクトリ・オブジェクトよりも優先されます。ダンプ・ファイル・セット用に使用するディレクトリに対する読取り権限と、ログ・ファイルおよびSQLファイルの作成に使用するディレクトリに対する書込み権限が必要です。
例
次に、DIRECTORY
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=dpump_dir2:expfull.log
このコマンドによって、インポート・ジョブが、dpump_dir1
ディレクトリ・オブジェクトに示されたディレクトリのexpfull.dmp
ダンプ・ファイルを検索します。LOGFILE
パラメータに指定したdpump_dir2
ディレクトリ・オブジェクトは、DIRECTORY
パラメータよりも優先されるため、ログ・ファイルは、dpump_dir2
に書き込まれます。
参照:
|
デフォルト: expdat
.dmp
用途
Exportによって作成されたダンプ・ファイル・セットの名前を指定します。オプションで、これらのディレクトリ・オブジェクトを指定します。
構文および説明
DUMPFILE=[directory_object:]file_name [, ...]
DIRECTORY
パラメータで指定されている場合、directory_object
はオプションです。ここで値を指定する場合は、すでに存在しアクセス権があるディレクトリ・オブジェクトを指定します。DUMPFILE
パラメータの一部に指定されるデータベース・ディレクトリ・オブジェクトは、DIRECTORY
パラメータで指定された値よりも優先されます。
file_name
には、ダンプ・ファイル・セット内のファイルの名前を指定します。ファイル名には、置換変数%U
を含むテンプレートを指定することもできます。%U
を使用した場合、インポート・ユーティリティは、テンプレートと一致する各ファイルを一致するファイルが検出されなくなるまで調べ、ダンプ・ファイル・セットの一部となるすべてのファイルの位置を特定します。%U
は、01から始まる2桁の整数に変換されます。
DUMPFILE
パラメータでのファイル指定にセット全体が含まれている場合は、インポート・ユーティリティでセット全体の位置を特定するための十分な情報がファイルに含まれます。ファイルの名前、位置または順序は、エクスポート時と同じである必要はありません。
例
次に、インポートのDUMPFILE
パラメータの使用例を示します。この例では、ExportのDUMPFILE
パラメータで示した例を実行して、ダンプ・ファイルを作成できます。詳細は、「DUMPFILE」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=dpump_dir2:exp1.dmp, exp2%U.dmp
exp1.dmp
ダンプ・ファイルに、ディレクトリ・オブジェクト(dpump_dir2
)が指定されているため、インポート・ジョブは、そのファイルを検索します。また、dpump_dir1
にある、exp2
nn
.dmp
の形式のダンプ・ファイルも検索します。ログ・ファイルは、dpump_dir1
に書き込まれます。
デフォルト: デフォルト値は設定されていません。ユーザーが値を指定します。
用途
ダンプ・ファイル・セット内の暗号化列のデータにアクセスするためのパスワードを指定します。これにより、暗号化されたダンプ・ファイル・セットへの不正なアクセスを防ぎます。
構文および説明
ENCRYPTION_PASSWORD = password
このパラメータは、エクスポート操作で暗号化パスワードが指定された場合に、インポート操作で必要になります。このパスワードは、エクスポート操作で指定されたものと同じものを指定する必要があります。
制限事項
このパラメータは、Oracle Database 11gのEnterprise Editionでのみ有効です。
データ・ポンプの暗号化機能を使用するには、Oracle Advanced Securityオプションが有効である必要があります。Oracle Advanced Securityオプションのライセンス要件の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
ダンプ・ファイル・セットが暗号化の透過モードを使用して作成されている場合、ENCRYPTION_PASSWORD
パラメータは無効です。
ENCRYPTION_PASSWORD
パラメータは、ネットワーク・インポート・ジョブには無効です。
すべての列に対する暗号化属性は、エクスポートされた表の定義とターゲット表で一致している必要があります。たとえば、EMP
表にEMPNO
という列があるとします。次のいずれの場合も、ソース表のEMP
列の暗号化属性が、ターゲット表のEMP
列の暗号化属性と一致していないためエラーになります。
EMPNO
列を暗号化してEMP
表をエクスポートし、表をインポートする前にEMPNO
列から暗号化属性を削除する。
EMPNO
列を暗号化せずにEMP
表をエクスポートし、表をインポートする前にEMPNO
列の暗号化を有効にする。
例
次の例では、暗号化パスワード123456
を指定する必要があります。これは、ダンプ・ファイルdpcd2be1.dmp
の作成時に、そのパスワードが指定されたためです(「ENCRYPTION_PASSWORD」を参照)。
> impdp hr TABLES=employee_s_encrypt DIRECTORY=dpump_dir DUMPFILE=dpcd2be1.dmp ENCRYPTION_PASSWORD=123456
インポート操作時、エクスポート操作時に暗号化されたemployee_s_encrypt
表のすべての列は、複合化されてからインポートされます。
デフォルト: BLOCKS
用途
このパラメータによって、ネットワーク・インポート操作のソース・システムで、データの生成量が見積もられます。
構文および説明
ESTIMATE=[BLOCKS | STATISTICS]
BLOCKS
: 見積りは、ソース・オブジェクトで使用されるデータベース・ブロックの数に、適切なブロック・サイズを掛けて計算されます。
STATISTICS
: 見積りは、表別の統計を使用して計算されます。この方法による見積りをできるかぎり正確にするには、すべての表を新しく分析しておく必要があります。(表の分析は、SQL ANALYZE
文またはDBMS_STATS
PL/SQLパッケージのいずれかで実行可能です。)
生成される見積りは、インポート・ジョブの完了率の確認に使用されます。
制限事項
インポートのESTIMATE
パラメータは、NETWORK_LINK
パラメータも指定されている場合のみ有効です。
インポート・ソースがダンプ・ファイル・セットの場合、ロードされるデータの量がすでにわかっているため、完了率は自動的に計算されます。
QUERY
またはREMAP_DATA
パラメータのいずれかを使用している場合は、見積りが不正確になることがあります。
例
次の例では、source_database_link
にソース・データベースに対する有効なリンク名を指定します。
> impdp hr TABLES=job_history NETWORK_LINK=source_database_link
DIRECTORY=dpump_dir1 ESTIMATE=STATISTICS
hr
スキーマのjob_history
表が、ソース・データベースからインポートされます。デフォルトでログ・ファイルが作成され、dpump_dir1
ディレクトリ・オブジェクトで示されたディレクトリに書き込まれます。ジョブが開始すると、表の統計に基づいて、そのジョブの見積りが計算されます。
デフォルト: デフォルト値は設定されていません。
用途
インポート・ジョブから除外するオブジェクトおよびオブジェクト型を指定して、インポートの対象となるメタデータをフィルタ処理できます。
構文および説明
EXCLUDE=object_type[:name_clause] [, ...]
object_type
は除外するオブジェクトのタイプを指定します。DATABASE_EXPORT_OBJECTS
(全体モードの場合)、SCHEMA_EXPORT_OBJECTS
(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS
(表および表領域モードの場合)ビューを問い合せて、object_type
の有効な値の一覧を表示できます。OBJECT_PATH
列にリストされる値が有効なオブジェクト・タイプです。
指定したインポート・モードでは、EXCLUDE
文に指定されたオブジェクト型を除き、ソースに含まれるすべてのオブジェクト型およびその依存オブジェクトが含まれます。オブジェクトが除外されると、そのオブジェクトのすべての依存オブジェクトも除外されます。たとえば、表を除外すると、その表のすべての索引およびトリガーも除外されます。
name_clause
は、オプションです。これを使用すると、あるオブジェクト型のうち、特定のオブジェクトをファイングレイン選択できます。その型のオブジェクト名に対するフィルタとして使用されるSQL式です。SQL演算子および指定した型のオブジェクト名の比較対象となる値で構成されています。name_clause
は、名前付きのインスタンスを持つオブジェクト型にのみ適用されます(たとえば、TABLE
およびVIEW
には適用されますが、GRANT
には適用されません)。それは、コロンでオブジェクト型と区切り、二重引用符(一重引用符は名前文字列を区切るために必要なため)で囲む必要があります。たとえば、EXCLUDE=INDEX:"LIKE
'DEPT%'"
と設定した場合、dept
で始まる名前を持つすべての索引を除外できます。
name_clause
に指定する名前は、データベース内の既存のオブジェクトに、大文字と小文字も含めて完全に一致させる必要があります。たとえば、指定するname_clause
がEMPLOYEES
という表に対するものだった場合は、すべてが大文字のEMPLOYEES
という表が存在する必要があります。name_clause
に対してEmployees
、employees
などを指定した場合、表は検出されません。
2つ以上のEXCLUDE
文を指定できます。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
次の項で説明するとおり、特定のオブジェクト(特にCONSTRAINT
、GRANT
およびUSER
)を除外対象として指定した場合の効果を認識しておく必要があります。
制約の除外
次の制約は除外できません。
NOT
NULL
制約。
表の作成とロードを正常に行うために必要な制約。たとえば、索引構成表の主キー制約、REF
列を持つ表のREF
SCOPE
およびWITH
ROWID
制約など。
次に、EXCLUDE
文の例およびその解釈を示します。
EXCLUDE=
CONSTRAINT
は、NOT
NULL
制約および表の正常な作成およびロードに必要な制約を除き、すべての非参照制約を除外します。
EXCLUDE=
REF_CONSTRAINT
は、参照整合性(外部キー)制約を除外します。
権限とユーザーの除外
EXCLUDE=
GRANT
を指定すると、すべてのオブジェクト型に対するオブジェクト権限およびシステム権限が除外されます。
EXCLUDE=
USER
を指定すると、ユーザーの定義のみが除外され、そのユーザーのスキーマ内のオブジェクトは除外されません。
特定のユーザーとそのユーザーのすべてのオブジェクトを除外するには、次のコマンドを指定します(hr
は除外するユーザーのスキーマ名です)。
impdp FULL=YES DUMPFILE=expfull.dmp EXCLUDE=SCHEMA:"='HR'"
ここで、インポート・モードがFULL
に指定されていることに注意してください。モードを指定しなかった場合は、デフォルト・モードのSCHEMAS
が使用されます。その場合は、スキーマをインポートすると同時に除外するようコマンドが指示することになるため、エラーが発生します。
EXCLUDE
=USER
:"= 'HR
'"などの文を使用してユーザーを除外しようとすると、DDL文CREATE USER hr
のみが除外され、期待した結果が得られない場合があります。
制限事項
EXCLUDE
およびINCLUDE
は、相互に排他的なパラメータです。
例
DBAまたはDATAPUMP_IMP_FULL_DATABASE
ロールを持つ他のユーザーが、パラメータ・ファイルexclude.par
で次のように実行するとします。(例を試す場合は、このファイルを作成する必要があります。)
EXCLUDE=FUNCTION EXCLUDE=PROCEDURE EXCLUDE=PACKAGE EXCLUDE=INDEX:"LIKE 'EMP%' "
次のコマンドを発行します。このコマンドでは、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp system DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp PARFILE=exclude.par
expfull.dmp
ダンプ・ファイルから、emp
で始まる名前を持つファンクション、プロシージャ、パッケージおよび索引を除くすべてのデータがロードされます。
デフォルト: デフォルト値は設定されていません。
用途
インポートで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。
構文および説明
FLASHBACK_SCN=scn_number
インポート操作は、指定したscn_number
までの一貫性のあるデータを使用して実行されます。
注意: ロジカル・スタンバイ・システムでは、ロジカル・スタンバイによってSCNが選択されるため、FLASHBACK_SCN パラメータは無視されます。ロジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。 |
制限事項
FLASHBACK_SCN
パラメータは、NETWORK_LINK
パラメータも指定されている場合のみ有効です。
FLASHBACK_SCN
パラメータは、Oracle Databaseのフラッシュバック問合せ機能にのみ関係します。フラッシュバック・データベース、フラッシュバック削除およびフラッシュバック・データ・アーカイブには適用できません。
FLASHBACK_SCN
およびFLASHBACK_TIME
は、相互に排他的なパラメータです。
例
次に、FLASHBACK_SCN
パラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 FLASHBACK_SCN=123456 NETWORK_LINK=source_database_link
この例のsource_database_link
には、データのインポート元であるソース・データベース名を指定します。
デフォルト: デフォルト値は設定されていません。
用途
インポートで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。
構文および説明
FLASHBACK_TIME="TO_TIMESTAMP()"
指定された時刻に最も近いSCNを検出し、このSCNを使用してフラッシュバック・ユーティリティを使用可能にします。インポート操作は、このSCNまでの一貫性のあるデータを使用して実行されます。TO_TIMESTAMP
の値は引用符で囲まれるため、パラメータ・ファイルに記述することをお薦めします。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。
注意: ロジカル・スタンバイ・システムでは、ロジカル・スタンバイによってSCNが選択されるため、FLASHBACK_TIME パラメータは無視されます。ロジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。 |
制限事項
このパラメータは、NETWORK_LINK
パラメータも指定されている場合にのみ有効です。
FLASHBACK_TIME
パラメータは、Oracle Databaseのフラッシュバック問合せ機能にのみ関係します。フラッシュバック・データベース、フラッシュバック削除およびフラッシュバック・データ・アーカイブには適用できません。
FLASHBACK_TIME
およびFLASHBACK_SCN
は、相互に排他的なパラメータです。
例
DBMS_FLASHBACK.ENABLE_AT_TIME
プロシージャで使用可能な形式で時刻を指定できます。たとえば、次の内容のパラメータ・ファイルflashback_imp.parを作成したとします。
FLASHBACK_TIME="TO_TIMESTAMP('25-08-2008 14:35:00', 'DD-MM-YYYY HH24:MI:SS')"
次のコマンドを発行します。
> impdp hr DIRECTORY=dpump_dir1 PARFILE=flashback_imp.par NETWORK_LINK=source_database_link
インポート操作は、指定した時間に最も近いSCNと整合性のあるデータで実行されます。
参照: フラッシュバックの使用方法の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。 |
デフォルト: Y
ES
用途
全データベース・インポートの実行を指定します。
構文および説明
FULL=YES
FULL=YES
の値は、ソース(ダンプ・ファイル・セットまたは他のデータベース)からのすべてのデータおよびメタデータがインポートされることを示します。
このモードを使用したインポート対象を、フィルタ処理によってより詳細に制限できます(詳細は、「インポート操作中のフィルタ処理」を参照してください)。
NETWORK_LINK
パラメータが使用され、インポート・ジョブを実行するUSERID
がターゲット・データベースのDATAPUMP_IMP_FULL_DATABASE
ロールを持っている場合、そのユーザーは、ソース・データベースのDATAPUMP_EXP_FULL_DATABASE
ロールも持っている必要があります。
ファイルのインポート権限が付与されていないユーザーの場合は、自分のスキーマにマップするスキーマのみインポートされます。
FULL
は、ファイル・ベース・インポートを実行する際のデフォルト・モードです。
例
次に、FULL
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DUMPFILE=dpump_dir1:expfull.dmp FULL=YES LOGFILE=dpump_dir2:full_imp.log
この例では、expfull.dmp
ダンプ・ファイルのすべての内容をインポートします。ここでは、DIRECTORY
パラメータは指定されていません。そのため、DUMPFILE
パラメータおよびLOGFILE
パラメータの両方にディレクトリ・オブジェクトを指定する必要があります。例に示すとおり、ディレクトリ・オブジェクトは、別のものを指定することができます。
デフォルト: NO
用途
インポート・ユーティリティのオンライン・ヘルプを表示します。
構文および説明
HELP=YES
HELP
=YES
が指定されている場合は、インポート・ユーティリティのすべてのコマンドライン・パラメータと対話方式コマンドの要約が表示されます。
例
> impdp HELP = YES
この例では、すべてのインポート・パラメータおよびコマンドの簡単な説明が表示されます。
デフォルト: デフォルト値は設定されていません。
用途
現行のインポート・モードにオブジェクトとオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。
構文および説明
INCLUDE = object_type[:name_clause] [, ...]
object_type
は含めるオブジェクトのタイプを指定します。DATABASE_EXPORT_OBJECTS
(全体モードの場合)、SCHEMA_EXPORT_OBJECTS
(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS
(表および表領域モードの場合)ビューを問い合せて、object_type
の有効な値の一覧を表示できます。OBJECT_PATH
列にリストされる値が有効なオブジェクト・タイプです。
INCLUDE
文に明示的に指定した、ソース内のオブジェクト型とその依存オブジェクトのみがインポートされます。
name_clause
は、オプションです。これを使用すると、あるオブジェクト型のうち、特定のオブジェクトをファイングレイン選択できます。その型のオブジェクト名に対するフィルタとして使用されるSQL式です。SQL演算子および指定した型のオブジェクト名の比較対象となる値で構成されています。このname_clause
は、名前付きのインスタンスを持つオブジェクト型にのみ適用されます(たとえば、TABLE
には適用されますが、GRANT
には適用されません)。それは、コロンでオブジェクト型と区切り、二重引用符(一重引用符は名前文字列を区切るために必要なため)で囲む必要があります。
name_clause
に指定する名前は、データベース内の既存のオブジェクトに、大文字と小文字も含めて完全に一致させる必要があります。たとえば、指定するname_clause
がEMPLOYEES
という表に対するものだった場合は、すべてが大文字のEMPLOYEES
という表が存在する必要があります。name_clause
に対してEmployees
、employees
などを指定した場合、表は検出されません。
2つ以上のINCLUDE
文を指定できます。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。
DATABASE_EXPORT_OBJECTS
(全体モードの場合)、SCHEMA_EXPORT_OBJECTS
(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS
(表および表領域モードの場合)ビューを問い合せて、INCLUDE
パラメータで使用する有効なパスの一覧を表示できます。
制限事項
INCLUDE
およびEXCLUDE
は、相互に排他的なパラメータです。
例
DBAまたはDATAPUMP_IMP_FULL_DATABASE
ロールを持つ他のユーザーが、パラメータ・ファイルimp_include.par
で次のように実行するとします。
INCLUDE=FUNCTION INCLUDE=PROCEDURE INCLUDE=PACKAGE INCLUDE=INDEX:"LIKE 'EMP%' "
次のコマンドを発行します。
> impdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp PARFILE=imp_include.par
この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
このインポートでは、hr
スキーマのファンクション、プロシージャ、パッケージ、および名前がEMP
で始まる索引のみロードされます。これは特権モードのインポート(ユーザーにDATAPUMP_IMP_FULL_DATABASE
ロールがある)ですが、USER
オブジェクト型がINCLUDE
文に指定されていないため、スキーマ定義はインポートされません。
デフォルト: SYS_<IMPORTまたはSQLFILE>_<mode>_NN
という書式のシステム生成による名前
用途
ジョブ名は、ジョブへの接続にATTACH
パラメータを使用したり、DBA_DATAPUMP_JOBS
またはUSER_DATAPUMP_JOBS
ビューを使用してジョブを指定する場合など、後続処理でインポート・ジョブを指定するために使用されます。
構文および説明
JOB_NAME=jobname_string
jobname_string
には、このインポート・ジョブの名前を、30バイト以内で指定します。これらのバイトは印字可能文字と空白を表します。空白を含む場合は、一重引用符で囲みます(たとえば、'Thursday Import'とします)。ジョブ名は、インポート操作を実行しているユーザーのスキーマによって暗黙的に修飾されます。ジョブ名は、マスター表の名前として使用されます(マスター表はエクスポート・ジョブを制御します)。
デフォルトのジョブ名はSYS_IMPORT_mode_NN
またはSYS_SQLFILE_mode_NN
という形式で、システムによって生成されます。NN
は、01から始めて増加する2桁の整数です。デフォルト名は、'SYS_IMPORT_TABLESPACE_02'
などです。
例
次に、JOB_NAME
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp JOB_NAME=impjob01
デフォルト: NO
用途
正常に完了したデータ・ポンプ・ジョブの最後に、マスター表を削除するか、または保持するかを示します。ジョブが正常に完了しなかった場合、マスター表は自動的に保持されます。
構文および説明
KEEP_MASTER=[YES | NO]
制限事項
なし
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log DUMPFILE=expdat.dmp KEEP_MASTER=YES
デフォルト: import
.log
用途
インポート・ジョブのログ・ファイルの名前を指定します。オプションで、そのログ・ファイルのディレクトリ・オブジェクトを指定します。
構文および説明
LOGFILE=[directory_object:]file_name
directory_object
には、DBAによって作成済で、自分にアクセス権があるディレクトリ・オブジェクトを指定する必要があります。この指定は、DIRECTORY
パラメータに指定されたディレクトリ・オブジェクトよりも優先されます。デフォルトでは、DIRECTORY
パラメータに指定されているディレクトリ・オブジェクトによって参照されるディレクトリ内に、import
.log
が作成されます。
file_name
に指定したファイルがすでに存在する場合、そのファイルは上書きされます。
処理中の作業、完了した作業および発生したエラーに関するすべてのメッセージがログ・ファイルに書き込まれます。(ジョブのリアルタイムの状態を把握するには、対話方式モードでSTATUS
コマンドを使用します。)
NOLOGFILE
パラメータが指定されていないかぎり、常に、ログ・ファイルは作成されます。ダンプ・ファイル・セットと同様に、ログ・ファイルの基準となるのは、クライアントではなく、サーバーです。
注意: データ・ポンプ・インポート・ユーティリティは、データベースのキャラクタ・セットを使用してログ・ファイルに書込みを行います。クライアントのNLS_LANG 環境にデータベースのキャラクタ・セットと異なるキャラクタ・セットを設定した場合は、ログ・ファイル内の表の名前が、クライアントの出力画面に表示される名前と異なることがあります。 |
制限事項
Oracle Automatic Storage Management (Oracle ASM)を使用してデータ・ポンプ・インポートを実行する場合、LOGFILE
パラメータは、Oracle ASMの+表記法を使用せずにディレクトリ・オブジェクトを指定する必要があります。つまり、ログ・ファイルはディスク・ファイルに書き込まれ、Oracle ASMの記憶域には書き込まれません。かわりに、NOLOGFILE=YES
を指定することもできます。ただし、この場合はログ・ファイルの書込みは行われません。
例
次に、LOGFILE
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr SCHEMAS=HR DIRECTORY=dpump_dir2 LOGFILE=imp.log DUMPFILE=dpump_dir1:expfull.dmp
LOGFILE
パラメータにはディレクトリ・オブジェクトが指定されていないため、ログ・ファイルは、DIRECTORY
パラメータに指定したディレクトリ・オブジェクトに書き込まれます。
参照:
|
デフォルト: NO
用途
マスター表の内容を確認できるように、マスター表のみをインポートしてジョブを停止するかどうかを示します。
構文および説明
MASTER_ONLY=[YES | NO]
制限事項
NETWORK_LINK
パラメータも指定する場合、MASTER_ONLY=YES
はサポートされません。
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log DUMPFILE=expdat.dmp MASTER_ONLY=YES
デフォルト: NO
用途
ジョブに関する詳細情報をデータ・ポンプ・ログ・ファイルに記録するかどうかを示します。
構文および説明
METRICS=[YES | NO]
METRICS=YES
を使用すると、オブジェクト数および経過時間がデータ・ポンプ・ログ・ファイルに記録されます。
制限事項
なし
例
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log DUMPFILE=expdat.dmp METRICS=YES
デフォルト: デフォルト値は設定されていません。
用途
有効なデータベース・リンクによって指定される(ソース)データベースからのインポートを使用可能にします。ソース・データベース・インスタンスのデータは、接続されたデータベース・インスタンスに直接書き込まれます。
構文および説明
NETWORK_LINK=source_database_link
NETWORK_LINK
パラメータは、データベース・リンクを使用してインポートを開始します。つまり、impdp
クライアントの接続先となるシステムから、source_database_link
で指定されたソース・データベースに接続し、そこからデータを取り出して、接続されたインスタンスのデータベースに直接書き込みます。ダンプ・ファイルは含まれません。
source_database_link
には、使用可能なデータベースへのデータベース・リンク名を指定する必要があります。対象インスタンスのデータベースにデータベース・リンクが指定されていない場合、ユーザーまたはDBAが、SQL CREATE DATABASE LINK
文を使用してデータベース・リンクを作成する必要があります。
トランスポータブル・メソッドを使用してネットワーク・インポートを実行する場合は、インポートを開始する前に、ソース・データ・ファイルをターゲット・データベースにコピーする必要があります。
ソース・データベースが読取り専用の場合、接続されたユーザーは、デフォルト一時表領域として割り当てられたローカル管理一時表領域をソース・データベース上に持つ必要があります。それ以外の場合、ジョブは失敗します。
このパラメータは、FLASHBACK_SCN
、FLASHBACK_TIME
、ESTIMATE
、TRANSPORT_TABLESPACES
またはTRANSPORTABLE
のいずれかのパラメータを指定する場合に必要です。
注意: 暗号化されていないネットワーク・リンクを介してインポート操作が行われる場合、すべてのデータはクリア・テキストとしてインポートされます。これは、データがデータベースで暗号化されている場合でも同様です。ネットワーク・セキュリティの詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。 |
参照:
|
制限事項
ContentTypeセットがあるSecureFiles、または現在Oracle Database File System Linksを介してSecureFilesセグメントの外に格納されているSecureFilesが表に含まれている場合、インポートのNETWORK_LINK
パラメータはサポートされません。
ネットワーク・インポートは進化した型の使用をサポートしません。
ネットワーク・インポートはLONG
列をサポートしません。
データ・ポンプ操作がネットワーク・リンクを介して行われる場合、ソース・データベースとターゲット・データベースのバージョンの差違が1バージョン以下である必要があります。たとえば、1つのデータベースがOracle Database 11gの場合、他のデータベースは11gまたは10gのいずれかである必要があります。データ・ポンプがチェックするのはメジャー・バージョン番号のみ(10g、11gなど)で、具体的なリリース番号(10.1、10.2、11.1、11.2など)ではありません。
インポート・ジョブを実行するUSERID
がターゲット・データベースのDATAPUMP_IMP_FULL_DATABASE
ロールを持っている場合、そのユーザーは、ソース・データベースのDATAPUMP_EXP_FULL_DATABASE
ロールも持っている必要があります。
データ・ポンプ・インポートでサポートされているデータベース・リンクのタイプは、パブリック、固定ユーザーおよび接続ユーザーのみです。現在のユーザーのデータベース・リンクは、サポートされていません。
ネットワーク・モード・インポートではパラレル問合せ(PQ)スレーブは使用されません。「ネットワーク・モード・インポートにおけるPARALLELの使用」を参照してください。
例
次の例では、source_database_link
を有効なデータベース・リンクの名前に置き換えます。
> impdp hr TABLES=employees DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link EXCLUDE=CONSTRAINT
この例では、ソース・データベースからemployees
表(制約を除く)がインポートされます。ログ・ファイルは、DIRECTORY
パラメータに指定したdpump_dir1
に書き込まれます。
デフォルト: NO
用途
デフォルトでログ・ファイルを作成するかどうかを指定します。
構文および説明
NOLOGFILE=[YES | NO]
NOLOGFILE=YES
を指定すると、ログ・ファイルは作成されません。ただし、進捗とエラーに関する情報が、接続されているいずれかのクライアント(オリジナルのエクスポート操作を開始したクライアントを含む)の標準出力デバイスに書き込まれます。実行中のジョブに接続されているクライアントが存在しないときにNOLOGFILE=YES
を指定すると、重要な進捗情報およびエラー情報が失われる危険性があります。
例
次に、NOLOGFILE
パラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp NOLOGFILE=YES
このコマンドを実行すると、expfull.dmp
ダンプ・ファイルの全体インポート・モード(ファイル・ベース・インポートのデフォルト)が実行されます。NOLOGFILE
にYES
が設定されているため、ログ・ファイルは書き込まれません。
デフォルト: 1
用途
インポート・ジョブのために動作するアクティブな実行プロセスの最大数を指定します。
構文および説明
PARALLEL=integer
integer
に指定する値によって、インポート・ジョブのために動作するアクティブな実行プロセスの最大数が指定されます。この実行セットはワーカー・プロセスおよびパラレルI/Oサーバーの処理の組合せで構成されています。パラレルI/O操作でパラレル実行コーディネータとして動作するマスター制御プロセス、アイドル状態のワーカーおよびワーカー・プロセスは、この合計数には加算されません。このパラメータを使用して、リソース消費と経過時間のバランスをとることができます。
インポートのソースがファイルで構成されるダンプ・ファイル・セットの場合、同じファイルから複数のプロセスが読取り可能ですが、パフォーマンスは、I/O競合によって制限されます。
ジョブの実行中にPARALLEL
の値を増減するには、対話方式コマンド・モードを使用します。
並列度は、ユーザー・データおよびパッケージ本体のロード、索引の作成に使用します。
ネットワーク・モード・インポートにおけるPARALLELの使用
ネットワーク・モード・インポート中、PARALLEL
パラメータによって、ジョブに割り当てることができるワーカー・プロセスの最大数が定義されます。ネットワーク・モード・インポート中のPARALLEL
パラメータの影響を理解するには、データ・ポンプによって定義されるtable_dataオブジェクトの概念を理解することが重要です。データ・ポンプでは、データを移動するとき、次の項目を個々のtable_dataオブジェクトとみなします。
完全な表(パーティションまたはサブパーティションされていないもの)
パーティション(表がパーティション化されているがサブパーティション化されていない場合)
サブパーティション(表がサブパーティション化されている場合)
次に例を示します。
非パーティション表scott.non_part_table
には次の1つのtable_dataオブジェクトがあります。
scott.non_part_table
パーティション表scott.part_table
(パーティションp1
とパーティションp2
を持つ)には次の2つのtable_dataオブジェクトがあります。
scott.part_table:p1
scott.part_table:p
2
サブパーティション表scott.sub_part_table
(パーティションp1
とp2
、およびサブパーティションp1s1
、p1s2
、p2s1
およびp2s2
を持つ)には次の4つのtable_dataオブジェクトがあります。
scott.sub_part_table:p1s1
scott.sub_part_table:p1s2
scott.sub_part_table:p2s1
scott.sub_part_table:p2s2
ネットワーク・モード・インポート中、各table_dataオブジェクトには、PARALLEL
パラメータに指定された値までの独自のワーカー・プロセスが割り当てられます。ネットワーク・モード・インポートではパラレル問合せ(PQ)スレーブを使用しないため、パラレル問合せ(PQ)スレーブは割り当てられません。複数のtable_dataオブジェクトを同時にアンロードすることは可能ですが、各table_dataオブジェクトはシングル・プロセスを使用してアンロードされます。
Oracle RAC環境でのインポートにおけるPARALLELの使用
Oracle Real Application Clusters(Oracle RAC)環境でPARALLEL=1
としてインポート操作を実行すると、すべてのデータ・ポンプ・プロセスは、ジョブが開始されたインスタンス上に配置されます。そのため、ディレクトリ・オブジェクトは、そのインスタンスのローカル記憶域を示すことができます。
PARALLEL
を1より大きな値に設定してインポート操作を実行する場合は、ジョブが開始されたインスタンス以外のインスタンスにもデータ・ポンプ・プロセスを置くことができます。そのため、ディレクトリ・オブジェクトは、Oracle RACのすべてのインスタンスからアクセス可能な共有記憶域を示す必要があります。
制限事項
このパラメータは、Oracle Database 11gのEnterprise Editionでのみ有効です。
表および表パーティションをパラレルで(PQスレーブを使用して)インポートするには、DATAPUMP_IMP_FULL_DATABASE
ロールが必要です。
例
次に、PARALLEL
パラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 LOGFILE=parallel_import.log JOB_NAME=imp_par3 DUMPFILE=par_exp%U.dmp PARALLEL=3
このコマンドは、ExportのPARALLEL
パラメータの例を実行した場合に作成されるダンプ・ファイル・セットをインポートします。(詳細は、「PARALLEL」を参照してください。)ダンプ・ファイル名は、par_exp01.dmp
、par_exp02.dmp
およびpar_exp03.dmp
です。
デフォルト: デフォルト値は設定されていません。
用途
構文および説明
PARFILE=[directory_path]file_name
サーバーによって作成され、書き込まれるダンプ・ファイル、ログ・ファイル、SQLファイルとは異なり、パラメータ・ファイルは、impdp
クライアントによってオープンされ、読み込まれます。したがって、ディレクトリ・オブジェクトの名前は不要かつ不適切です。デフォルトは、ユーザーの現行のディレクトリです。値の指定に引用符が必要なパラメータを使用する場合は、パラメータ・ファイルを使用することをお薦めします。
制限事項
PARFILE
パラメータは、パラメータ・ファイル内には指定できません。
例
パラメータ・ファイルhr_imp.par
の内容は、次のとおりです。
TABLES= countries, locations, regions DUMPFILE=dpump_dir2:exp1.dmp,exp2%U.dmp DIRECTORY=dpump_dir1 PARALLEL=3
このパラメータ・ファイルを指定するには、次のコマンドを実行します。
> impdp hr PARFILE=hr_imp.par
表countries
、locations
およびregions
は、ExportのDUMPFILE
パラメータの例を実行した場合に作成されるダンプ・ファイル・セットからインポートされます。(詳細は、「DUMPFILE」を参照してください。)インポート・ジョブは、dpump_dir2
で示される位置にあるexp1.dmp
ファイルを検索します。また、dpump_dir1
によって示される位置にあるexp2
nn
.dmp
の形式のすべてのダンプ・ファイルも検索します。そのジョブのログ・ファイルも、dpump_dir1
に書き込まれます。
デフォルト: パーティション名がTABLES
パラメータで指定され、TRANPORTABLE=ALWAYS
が(インポート操作時またはエクスポート中に)設定されている場合、デフォルトはdepartition
です。それ以外の場合、デフォルトはnone
となります。
用途
インポート操作中に表パーティションをどのように作成するかを指定します。
構文および説明
PARTITION_OPTIONS=[NONE | DEPARTITION | MERGE]
none
の値を指定した場合、エクスポート操作が実行されたシステム上に存在していたのと同様に表が作成されます。エクスポートがパーティションまたはサブパーティション・フィルタとともにトランスポータブル・メソッドを使用して実行されている場合、none
オプションまたはmerge
オプションは使用できません。そのような場合は、departitionオプションを使用する必要があります。
departition
の値を指定した場合、各パーティションまたはサブパーティションは、新しい個々の表に昇格します。新規表のデフォルト名は、表とパーティションの名前、または表とサブパーティションの名前を適切に組み合せたものとなります。
merge
の値を設定した場合、すべてのパーティションおよびサブパーティションは1つの表に統合されます。
パーティション表のインポート中の並列処理では次のような影響があります。
パーティション表が既存のパーティション表にインポートされた場合、データ・ポンプはPARALLEL
パラメータで指定される値にかかわらず、一度に1つのパーティションまたはサブパーティションのみを処理します。
インポート先の表がまだ存在しておらず、データ・ポンプでそれを作成する必要がある場合、インポートは、インポートが開始されたときにPARALLEL
パラメータで指定された並列化まで並列して実行します。
制限事項
ダンプ・ファイルを作成したエクスポート操作がトランスポータブル・メソッドにより実行されており、パーティションまたはサブパーティションが指定されている場合、インポート操作ではdepartition
オプションを使用する必要があります。
ダンプ・ファイルを作成したエクスポート操作がトランスポータブル・メソッドにより実行されている場合、インポート操作でPARTITION_OPTIONS=MERGE
は使用できません。
非パーティション化されているオブジェクトに対する権限が存在する場合、エラー・メッセージが生成され、オブジェクトはロードされません。
例
次の例は、sh.sales
表がsales.dmp
という名前のダンプ・ファイルにエクスポートされていることを前提としています。ここでは、merge
オプションを使用して、sh.sales
内のすべてのパーティションをscott
スキーマ内の非パーティション表にマージします。
> impdp system TABLES=sh.sales PARTITION_OPTIONS=MERGE DIRECTORY=dpump_dir1 DUMPFILE=sales.dmp REMAP_SCHEMA=sh:scott
デフォルト: デフォルト値は設定されていません。
用途
インポート対象となるデータをフィルタ処理する問合せ句を指定できます。
構文および説明
QUERY=[[schema_name.]table_name:]query_clause
通常、query_clause
では、ファイングレイン行選択のためのSQL WHERE
句を使用しますが、任意のSQL句を使用できます。たとえば、ORDER BY
句を使用すると、ヒープ構成表から索引構成表への移行を高速化できます。スキーマおよび表名を指定しなかった場合は、ソース・ダンプ・ファイル・セットまたはデータベース内のすべての表に問合せが適用されます(この場合、問合せは、これらのすべての表に対して有効である必要があります)。表固有の問合せは、すべての表に適用される問合せより優先されます。
特定の表に問合せを適用する場合は、表名と問合せ句をコロン(:)で区切る必要があります。表固有の問合せは複数指定できますが、1つの表に指定できるのは1つの問合せのみです。
QUERY
パラメータと一緒にNETWORK_LINK
パラメータを指定する場合、リモート(ソース)ノード上にあるquery_clause
で指定されるすべてのオブジェクトは、NETWORK_LINK
値で明示的に修飾する必要があります。それ以外の場合、データ・ポンプではオブジェクトがローカル(ターゲット)ノード上に存在することを前提とし、存在しない場合はエラーが返され、リモート(ソース)システムからの表のインポートは失敗します。
たとえば、NETWORK_LINK=dblink1
と指定した場合、QUERY
パラメータのquery_clause
は、次の例に示すようにそのリンクを指定する必要があります。
QUERY=(hr.employees:"WHERE last_name IN(SELECT last_name FROM hr.employees@dblink1)")
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。
QUERY
パラメータを使用すると、外部表による方法(ダイレクト・パスによる方法ではなく)でデータベース・アクセスが実行されます。
表固有の問合せで自分のスキーマ以外のスキーマを指定するには、その特定の表に対するアクセス権限が付与されている必要があります。
制限事項
QUERY
パラメータは次のパラメータとは併用できません。
CONTENT=METADATA_ONLY
SQLFILE
TRANSPORT_DATAFILES
表にQUERY
パラメータが指定されている場合、データ・ポンプは外部表を使用してターゲット表をロードします。外部表は、SQLのINSERT
文をSELECT
句とともに使用します。QUERY
パラメータの値は、INSERT
文のSELECT
部分にあるWHERE
句に含まれています。QUERY
パラメータにロードする表と一致する名前の列がある他の表への参照が含まれていて、これらの列が問合せで使用される場合は、表別名を使用して、ロードする表内の列と、SELECT
文内の同じ名前を持つ列を区別する必要があります。ロードする表に対してデータ・ポンプで使用される表別名は、KU$
です。
たとえば、sh.customers
表にある顧客のクレジットの上限に基づいてsh.sales
表のサブセットをインポートするとします。次の例では、KU$
を使用して、sh.sales
をロードするためにQUERY
パラメータ内のcust_id
フィールドを修飾します。この結果、データ・ポンプによって、クレジットの上限が$10,000を超える顧客の行のみがインポートされます。
QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c WHERE cust_credit_limit > 10000 AND ku$.cust_id = c.cust_id)"'
表別名としてKU$
を使用しないと、すべての行がロードされます。
QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c WHERE cust_credit_limit > 10000 AND cust_id = c.cust_id)"'
QUERY
に使用できる文字列の最大長は、引用符を含めて4000バイトです。つまり、許容される実際の最大長は3998バイトです。
例
次に、QUERY
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。QUERY
値には引用符を使用するため、パラメータ・ファイルを使用することをお薦めします。
次の内容のパラメータ・ファイルquery_imp.par
を作成したとします。
QUERY=departments:"WHERE department_id < 120"
次のコマンドを入力します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp PARFILE=query_imp.par NOLOGFILE=YES
expfull.dmp
内のすべての表はインポートされますが、departments
表については、QUERY
パラメータに指定した基準を満たすデータのみがインポートされます。
デフォルト: デフォルト値は設定されていません。
用途
REMAP_DATA
パラメータを使用すると、新規データベースへの挿入時に、データを再マップできます。一般的には、プライマリ・キーを再生成して、ターゲット・データベース上の既存の表に表をインポートする場合の競合を回避するために使用されます。
ダンプ・ファイルまたはリモート・データベースのいずれかから、指定した列の値をソースとして取得するには、再マップ・ファンクションを指定します。再マップ・ファンクションを指定すると、ターゲット・データベースの元の値を置き換える再マップした値が返されます。
同じファンクションを、ダンプされる複数の列に適用できます。これは、参照制約で子と親両方の列を再マップするときに整合性を保つ必要がある場合に役立ちます。
構文および説明
REMAP_DATA=[schema.]tablename.column_name:[schema.]pkg.function
次に、各構文要素の説明を構文で出現する順に示します。
schema: 再マップされる表を含むスキーマ。デフォルトでは、これはインポートを実行するユーザーのスキーマです。
tablename: 列の再マップが行われる表。
column_name: データが再マップされる列。単一の表について再マップできる列の最大数は10です。
schema: 再マップ・ファンクションを含むユーザー作成のPL/SQLパッケージを含むスキーマ。デフォルトでは、これはインポートを実行するユーザーのスキーマです。
pkg: 再マップ・ファンクションを含むユーザー作成のPL/SQLパッケージの名前。
function: 指定した表の各行で、列表を再マップする場合にコールされるPL/SQL内のファンクションの名前。
制限事項
ソース引数および戻り値のデータ型はともに、表内の指定した列のデータ型と一致している必要があります。
再マップ・ファンクションでは、自律型トランザクション以外のコミットまたはロール・バックを実行できません。
単一の表について再マップできる列の最大数は10です。表a
の9列と表b
の8列などのように再マップできますが、各表での最大値は10です。
REMAP_DATA
パラメータの値としてのシノニムの使用はサポートされていません。たとえば、hr
スキーマ内のregions
表にregn
のシノニムがある場合は、regn
をREMPA_DATA
仕様の一部として指定した場合にエラーが返されます。
リモート表のLOB列データの再マッピングはサポートされません。
例
次の例では、plusx
という名前のファンクションを格納するremap
という名前のパッケージが作成されており、このファンクションはemployees
表内のfirst_name
の値を変更すると想定しています。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp TABLES=hr.employees REMAP_DATA=hr.employees.first_name:hr.remap.plusx
デフォルト: デフォルト値は設定されていません。
用途
ソース・データ・ファイルが参照されるすべてのSQL文(CREATE TABLESPACE
、CREATE LIBRARY
およびCREATE DIRECTORY
)で、ソース・データ・ファイルの名前をターゲット・データ・ファイル名に変更します。
構文および説明
REMAP_DATAFILE=source_datafile:target_datafile
データ・ファイルの再マップは、ファイル名のネーミング規則が異なるプラットフォーム間でデータベースを移動する場合に有効です。source_datafile
とtarget_datafile
の名前は、SQL文で指定するとおりのものである必要があります。コロンが有効なファイル指定文字として使用されるプラットフォームでの曖昧さを排除するために、データ・ファイル名は引用符で囲むことをお薦めします。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
このパラメータを指定するには、DATAPUMP_IMP_FULL_DATABASE
ロールが必要です。
例
次の内容のパラメータ・ファイルpayroll.par
を作成したとします。
DIRECTORY=dpump_dir1 FULL=YES DUMPFILE=db_full.dmp REMAP_DATAFILE="'DB1$:[HRDATA.PAYROLL]tbs6.dbf':'/db1/hrdata/payroll/tbs6.dbf'"
次のコマンドを発行します。
> impdp hr PARFILE=payroll.par
この例では、インポート時に、すべてのSQL DDL文に対するVMSファイル指定(DR1$:[HRDATA.PAYROLL]tbs6.dbf
)をUNIXファイル指定(/db1/hrdata/payroll/tbs6.dbf
)に再マップします。ダンプ・ファイルdb_full.dmp
は、ディレクトリ・オブジェクトdpump_dir1
によって位置が示されます。
デフォルト: デフォルト値は設定されていません。
用途
ソース・スキーマにあるすべてのオブジェクトをターゲット・スキーマにロードします。
構文および説明
REMAP_SCHEMA=source_schema:target_schema
複数のREMAP_SCHEMA
行を指定できますが、ソース・スキーマは行ごとに異なっている必要があります。ただし、異なるソース・スキーマを同じターゲット・スキーマにマップすることはできます。インポート操作で検出できない特定のスキーマ参照があるため、マッピングは完全ではない場合があります(詳細は、次の「制限事項」を参照してください)。
再マッピング先のスキーマが存在しない場合は、インポート操作によってそのスキーマが作成されます。ただし、ソース・スキーマに必要なCREATE
USER
メタデータがダンプ・ファイル・セットに含まれており、ユーザーが必要な権限を所有してインポートを実行していることが条件となります。たとえば、次のExportコマンドの場合、ユーザーSYSTEM
には必要な権限があるため、スキーマの作成に必要なメタデータを含むダンプ・ファイル・セットが作成されます。
> expdp system SCHEMAS=hr Password: password > expdp system FULL=YES Password: password
スキーマの作成に必要なメタデータがダンプ・ファイル・セットに含まれていない場合や、ユーザーに必要な権限がない場合は、インポート操作を実行する前にターゲット・スキーマを作成しておく必要があります。これは、権限が付与されていないダンプ・ファイルには、インポート操作でスキーマを自動作成するための情報が含まれないためです。
インポート操作によってスキーマが作成された場合は、インポートの完了後、そのスキーマに有効なパスワードを割り当てて、接続できるようにする必要があります。パスワードを割り当てるSQL文(権限が必要)は、次のとおりです。
SQL> ALTER USER schema_name IDENTIFIED BY new_password
制限事項
権限のないユーザーは、自分のスキーマが再マップのターゲット・スキーマの場合にのみ、スキーマの再マップを実行できます。(特権ユーザーがスキーマの再マップを実行する場合は、制限がありません。)たとえば、SCOTT
は、自分のBLAKE
のオブジェクトをSCOTT
に再マップできますが、SCOTT
は、SCOTT
のオブジェクトをBLAKE
に再マップすることはできません。
インポートで検出できない一部のスキーマ参照があるため、マッピングは完全ではない場合があります。たとえば、インポートでは、トリガー、タイプ、ビュー、プロシージャおよびパッケージの定義の本体に埋め込まれたスキーマ参照は検出されません。
再マップするスキーマ内の表にユーザー定義のオブジェクト型が含まれており、その表が、エクスポートされる時刻とインポートしようとする時刻の間に変更される場合、その表のインポートは失敗します。ただし、インポート操作自体は続行されます。
デフォルトでは、ソース・データベースのスキーマ・オブジェクトにオブジェクト識別子(OID)がある場合、それらと同じOIDを持つターゲット・データベースにインポートされます。オブジェクトがエクスポート元と同じデータベースであって異なるスキーマにインポートされた場合、新しい(インポートされた)オブジェクトのOIDは、既存のオブジェクトと同じものになり、インポートは失敗します。インポートを成功させるには、インポート時にTRANFORM=OID:N
パラメータも指定する必要があります。変換OID:N
により新しいオブジェクトに対して新しいOIDが作成され、インポートが成功します。
例
ユーザーSYSTEM
として、次のエクスポートおよびインポート・コマンドを実行して、hr
スキーマをscott
スキーマに再マップするとします。
> expdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp > impdp system DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp REMAP_SCHEMA=hr:scott
この例では、インポート前にユーザーscott
が存在する場合、インポートのREMAP_SCHEMA
コマンドによって、hr
スキーマにあるオブジェクトが既存のscott
スキーマに追加されます。インポート後、scott
スキーマに既存のパスワードで(パスワードの再設定なしで)接続できます。
インポート操作の実行前にユーザーscott
が存在しない場合は、インポートによって、このユーザーがパスワードなしで自動作成されます。これは、ダンプ・ファイルhr
.dmp
が、スキーマの作成に必要なメタデータを含むダンプ・ファイルを作成する権限を所有するSYSTEM
によって作成されたためです。ただし、インポート完了後に、ターゲット・データベース上のscott
のパスワードを再設定しないかぎり、インポートの完了時にscott
には接続できません。
デフォルト: デフォルト値は設定されていません。
用途
インポート操作中に、表の名前を変更できます。
構文および説明
次のいずれかの構文を使用できます(下記の「使用上の注意」を参照)。
REMAP_TABLE=[schema.]old_tablename[.partition]:new_tablename
または
REMAP_TABLE=[schema.]old_tablename[:partition]:new_tablename
REMAP_TABLE
パラメータを使用して表全体の名前を変更するか、表を非パーティションする場合の表のパーティションを変更できます。(詳細は、「PARTITION_OPTIONS」を参照してください。)
これを使用して、エクスポートした表パーティションの自動ネーミングを上書きすることもできます。
使用上の注意
最初の構文では、REMAP_TABLE=A.B:C
を指定すると、インポートによってA
はスキーマ名、B
は古い表名、C
は新しい表名とみなされることに注意してください。最初の構文を使用して、非パーティション表にするパーティションの名前を変更するには、スキーマ名を指定する必要があります。
2番目の構文を使用して、非パーティション表にするパーティションの名前を変更するには、古い表名で指定します。スキーマ名は必要ありません。
制限事項
インポートによって作成されたオブジェクトのみ、再マップされます。既存の表は再マップされないことに注意してください。
再マップする表が同じスキーマ内に名前付きの制約を持っていて、表の作成時に制約を作成する必要がある場合、REMAP_TABLE
パラメータは機能しません。
例
次の例では、REMAP_TABLE
パラメータを使用して、employees
表をemps
という新しい名前に変更します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp TABLES=hr.employees REMAP_TABLE=hr.employees:emps
デフォルト: デフォルト値は設定されていません。
用途
ターゲット表領域に作成するソース表領域内の永続データを使用して、インポート用に選択されたすべてのオブジェクトを再マップします。
構文および説明
REMAP_TABLESPACE=source_tablespace:target_tablespace
複数のREMAP_TABLESPACE
パラメータを指定できますが、ソース表領域はパラメータごとに1つのみです。ターゲット・スキーマのターゲット表領域には、十分な割当て制限が必要です。
データ・ポンプ・インポートで表領域を再マップする唯一の方法は、REMAP_TABLESPACE
パラメータを使用することです。これは、オリジナルのインポート・ユーティリティの機能よりも簡単で正確な方法です。その方法には、表領域の副次句の数など多くの制限事項があり、一部のDDLコマンドを正常に実行できない場合がありました。
これに対し、REMAP_TABLESPACE
パラメータを使用するデータ・ポンプ・インポートの方法は、ユーザーを含むすべてのオブジェクトに対して、DDL文に含まれる表領域副次句の数にかかわりなく有効に使用できます。
制限事項
データ・ポンプ・インポートで再マップ可能なトランスポータブル・インポートの表領域は、互換性レベルが10.1以降に設定されているデータベースにあるもののみです。
インポートによって作成されたオブジェクトのみ、再マップされます。特に、既存の表の表領域は、TABLE_EXISTS_ACTION
がSKIP
、TRUNCATE
またはAPPEND
に設定されている場合は、再マップされません。
例
次に、REMAP_TABLESPACE
パラメータの使用例を示します。
> impdp hr REMAP_TABLESPACE=tbs_1:tbs_6 DIRECTORY=dpump_dir1 DUMPFILE=employees.dmp
デフォルト: NO
用途
インポート・ジョブで、表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。
構文および説明
REUSE_DATAFILES=[YES | NO]
デフォルト(n
)が使用され、CREATE TABLESPACE
文で指定されているデータ・ファイルがすでに存在する場合は、CREATE TABLESPACE
文の失敗によるエラー・メッセージが発行されますが、インポート・ジョブは続行されます。
このパラメータにY
を指定すると、既存のデータ・ファイルが再度初期化されます。
注意: REUSE_DATAFILES=YES を指定すると、データが失われる場合があります。 |
例
次に、REUSE_DATAFILES
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=reuse.log REUSE_DATAFILES=YES
この例では、expfull.dmp
ファイルのCREATE
TABLESPACE
文で指定されたデータ・ファイルを再度初期化します。
デフォルト: デフォルト値は設定されていません。
用途
スキーマ・モード・インポートの実行を指定します。
構文および説明
SCHEMAS=schema_name [,...]
DATAPUMP_IMP_FULL_DATABASE
ロールがある場合は、インポートするスキーマのリストをこのパラメータで指定して、スキーマ・モードのインポートを実行できます。まず、システムおよびロールの権限、パスワード履歴などを含むユーザー定義がインポートされます(存在しない場合)。次に、スキーマ内のすべてのオブジェクトがインポートされます。権限のないユーザーは、自分のスキーマか、自分のスキーマに再マップされるスキーマのみを指定できます。この場合、スキーマ定義についての情報はインポートされず、その定義内に含まれているオブジェクトのみがインポートされます。
このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。詳細は、「インポート操作中のフィルタ処理」を参照してください。
スキーマ・モードは、ネットワーク・ベース・インポートを実行する際のデフォルト・モードです。
例
次に、SCHEMAS
パラメータの使用例を示します。この例では、ExportのSCHEMAS
パラメータで示した例を実行して、expdat.dmp
ファイルを作成できます。詳細は、「SCHEMAS」を参照してください。
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log DUMPFILE=expdat.dmp
hr
スキーマは、expdat.dmp
ファイルからインポートされます。ログ・ファイルschemas.log
は、dpump_dir1
に書き込まれます。
デフォルト: デフォルト値は設定されていません。
用途
CLUSTER
パラメータと組み合せて使用するサービス名を指定するために使用します。
構文および説明
SERVICE_NAME=name
SERVICE_NAME
パラメータをCLUSTER=YES
パラメータとともに使用して、リソース・グループに属しているOracle Real Application Clusters(Oracle RAC)インスタンス群(通常は全Oracle RACインスタンスのサブセット)を定義するリソース・グループに関連付けられている、既存のサービスを指定できます。
サービス名は、リソース・グループおよびそのリソース・グループに対して定義されたインスタンスを決定する目的でのみ使用されます。ジョブが開始されたインスタンスは、そのインスタンスがリソース・グループに含まれているかどうかとは関係なく、常に使用されます。
SERVICE_NAME
パラメータは、CLUSTER=NO
と同時に指定されると、無視されます。
インスタンスA、B、CおよびDを含むOracle RAC構成があります。インスタンスA、BおよびCのみで構成されるリソース・グループを持つmy_service
というサービスが存在するとします。そのような場合は、次の内容が成立します。
データ・ポンプ・ジョブをインスタンスAで開始し、CLUSTER=YES
を指定し(またはデフォルトのYES
をそのまま使用し)、SERVICE_NAME
パラメータを指定しない場合、データ・ポンプは指定の並列度に応じてすべてのインスタンス(A、B、CおよびD)にワーカーを作成します。
データ・ポンプ・ジョブをインスタンスAで開始し、CLUSTER=YES
およびSERVICE_NAME=my_service
を指定した場合、ワーカーは、インスタンスA、BおよびCのみで開始可能です。
データ・ポンプ・ジョブをインスタンスDで開始し、CLUSTER=YES
およびSERVICE_NAME=my_service
を指定した場合、ワーカーは、インスタンスA、B、CおよびDのみで開始可能です。インスタンスDはmy_service
に存在しませんが、インスタンスDはジョブが開始されたインスタンスであるため含まれています。
データ・ポンプ・ジョブをインスタンスAで開始し、CLUSTER=NO
を指定した場合、SERVICE_NAME
パラメータを指定しても無視され、すべてのプロセスがインスタンスAで開始されます。
例
> impdp system DIRECTORY=dpump_dir1 SCHEMAS=hr SERVICE_NAME=sales NETWORK_LINK=dbs1
この例では、hrスキーマのスキーマ・モード・ネットワーク・インポートを開始します。コマンドラインではCLUSTER=YES
は指定されていませんが、それはデフォルトの動作なので、ジョブではサービス名sales
に関連付けられたリソース・グループのすべてのインスタンスが使用されます。dbs1
のNETWORK_LINK
値は、データのインポート元であるソース・データベース名に置き換えます。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)
NETWORK_LINK
パラメータは、単にこの例の一部として使用されています。SERVICE_NAME
パラメータの使用時は必須ではありません。
デフォルト: Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXES
の値
用途
インポートで、(システムまたはユーザーのいずれかによって)索引使用禁止に設定されている索引を持つ表をロードするかどうかを指定します。
構文および説明
SKIP_UNUSABLE_INDEXES=[YES | NO]
SKIP_UNUSABLE_INDEXES
がYES
に設定されているときに、索引が使用禁止の状態になっている表またはパーティションが検出された場合、その表やパーティションは、使用禁止の索引が存在しない場合と同様にロードされます。
SKIP_UNUSABLE_INDEXES
がNO
に設定されているときに、索引が使用禁止の表またはパーティションが検出された場合、その表やパーティションはロードされません。索引が使用禁止に設定されていない他の表に対しては、行の挿入時に更新が行われます。
SKIP_UNUSABLE_INDEXES
パラメータが指定されていない場合は、Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXES
の設定値(デフォルト値はy
)が参照され、使用禁止の索引の処理が決定されます。
制約の施行に使用される索引に使用禁止のマークが付けられている場合、その表にデータはインポートされません。
注意: このパラメータは、データを既存の表にインポートする場合にのみ有効です。インポート処理の一環として表が作成される場合は、表と索引が新規に作成され、使用禁止のマークは付けられないため、このパラメータによる実質的な効果はありません。 |
例
次に、SKIP_UNUSABLE_INDEXES
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=skip.log SKIP_UNUSABLE_INDEXES=YES
デフォルト: オブジェクトがフェッチされるリモート・ノード上のデフォルトのデータベース・エディション
用途
オブジェクトがフェッチされるリモート・ノード上のデータベース・エディションを指定します。
構文および説明
SOURCE_EDITION=edition_name
SOURCE_EDITION=
edition_name
を指定すると、そのエディションのオブジェクトがインポートされます。データ・ポンプは、変更されずに継承されているすべてのオブジェクトと、変更されているすべての実際のオブジェクトを選択します。
このパラメータが指定されていない場合は、デフォルトのエディションが使用されます。指定されたエディションが存在しない場合や使用できない場合は、エラー・メッセージが返されます。
参照:
|
制限事項
SOURCE_EDITION
パラメータがインポート操作で有効なのは、NETWORK_LINK
パラメータも指定されている場合のみです。詳細は、「NETWORK_LINK」を参照してください。
このパラメータは、バージョニング可能な同じオブジェクトのバージョンがデータベース内に2つ以上ある場合にのみ有効です。
ジョブ・バージョンは、11.2以上に設定されている必要があります。詳細は、「VERSION」を参照してください。
例
次に、インポートのSOURCE_EDITION
パラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 SOURCE_EDITION=exp_edition
NETWORK_LINK=source_database_link EXCLUDE=USER
この例は、オブジェクトのインポート元となるexp_edition
というエディションがシステム上に存在することを前提としています。インポート・モードは指定されていないため、デフォルトのスキーマ・モードが使用されます。source_database_link
は、データのインポート元であるソース・データベース名に置き換えます。EXCLUDE=USER
パラメータは、ユーザーの定義のみを除外し、ユーザーのスキーマに含まれるオブジェクトは除外しません。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)
デフォルト: デフォルト値は設定されていません。
用途
インポートが他のパラメータに基づいて実行するすべてのSQL DDLの書込み先のファイルを指定します。
構文および説明
SQLFILE=[directory_object:]file_name
file_name
には、インポート・ジョブが、ジョブで実行するDDLを書き込むファイル名を指定します。そのSQLは、実際には実行されず、ターゲット・システムも変更されません。ファイルは、他のdirectory_object
が明示的に指定されないかぎり、DIRECTORY
パラメータに指定されたディレクトリ・オブジェクトに書き込まれます。このパラメータで指定した名前と一致する名前を持つ既存のファイルはすべて上書きされます。
パスワードは、SQLファイルに含まれないことに注意してください。たとえば、実行したDDLにCONNECT
文が含まれている場合、この文はコメントで置き換えられ、スキーマ名のみが表示されます。次の例では、ダッシュ(--)の後に続くのがコメントです。また、hr
というスキーマ名は表示されていますが、パスワードは表示されていません。
-- CONNECT hr
したがって、SQLファイルは、実行する前に、コメントを示すダッシュを削除し、hr
スキーマのパスワードを追加して編集する必要があります。
StreamsなどのOracle Databaseオプションでは、無名PL/SQLブロックがSQLFILE
出力に出現することがあります。これらは、直接実行しないでください。
制限事項
SQLFILE
が指定されている場合、CONTENT
パラメータは、ALL
またはDATA_ONLY
のいずれかに設定されていると無視されます。
Oracle Automatic Storage Management (Oracle ASM)を使用してSQLファイルへのデータ・ポンプ・インポートを実行する場合、SQLFILE
パラメータでは、Oracle ASMの+表記法を使用せずにディレクトリ・オブジェクトを指定する必要があります。つまり、SQLファイルはディスク・ファイルに書き込まれ、Oracle ASMの記憶域には書き込まれません。
SQLFILE
パラメータは、QUERY
パラメータと組み合せて使用することはできません。
例
次に、SQLFILE
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp SQLFILE=dpump_dir2:expfull.sql
SQLファイルexpfull.sql
は、dpump_dir2
に書き込まれます。
デフォルト: 0
用途
ジョブ状態が表示される頻度を指定します。
構文および説明
STATUS[=integer]
integer
に値を入力すると、ロギング・モードでジョブの状態を表示する頻度を秒単位で指定できます。値を入力しなかった場合またはデフォルト値の0を使用した場合、各オブジェクト型、表またはパーティションの完了に関する情報のみ表示されます。
この状態情報は、標準出力デバイスのみに書き込まれ、ログ・ファイルには(使用可能な場合でも)書き込まれません。
例
次に、STATUS
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr NOLOGFILE=YES STATUS=120 DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
この例では、状態が2分(120秒)ごとに表示されます。
デフォルト: YES
用途
エクスポート・ダンプ・ファイル内に存在するStreamsメタデータをインポートするかどうかを指定します。
構文および説明
STREAMS_CONFIGURATION=[YES | NO]
例
次に、STREAMS_CONFIGURATION
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp STREAMS_CONFIGURATION=NO
参照: 『Oracle Streamsレプリケーション管理者ガイド』 |
デフォルト: SKIP
(CONTENT=
DATA_ONLY
が指定されている場合、デフォルトはSKIP
ではなく、APPEND
です。)
用途
インポート・ユーティリティに対して、作成しようとしている表がすでに存在する場合に行う操作を指定します。
構文および説明
TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]
次の値を指定できます。
SKIP
: 表はそのままにして、次のオブジェクトに移動します。CONTENT
パラメータがDATA_ONLY
に設定されている場合、このオプションは無効です。
APPEND
: ソースから行をロードし、既存の行は変更しません。
TRUNCATE
: 既存の行を削除した後、ソースから行をロードします。
REPLACE
: 既存の表を削除した後、ソースから表を作成およびロードします。CONTENT
パラメータがDATA_ONLY
に設定されている場合、このオプションは無効です。
これらのオプションを使用する場合に考慮する事項は次のとおりです。
TRUNCATE
またはREPLACE
を使用する場合は、影響を受ける表の行が参照制約のターゲットではないことを確認してください。
SKIP
、APPEND
またはTRUNCATE
を使用する場合、索引、権限、トリガー、制約など、ソースの既存の表依存オブジェクトは変更されません。REPLACE
を使用すると、依存オブジェクトが明示的または暗黙的に除外(EXCLUDE
を使用して)され、それらがソースのダンプ・ファイルまたはシステムに存在する場合、依存オブジェクトは削除され、ソースから再作成されます。
APPEND
またはTRUNCATE
を使用する場合は、操作を実行する前に、ソースにある行が既存の表に適合するかどうかがチェックされます。
既存の表にアクティブな制約およびトリガーがある場合は、外部表によるアクセス方法を使用してロードされます。アクティブな制約に違反する行がある場合、ロードは失敗し、データはロードされません。この動作を変更するには、インポート・ユーティリティのコマンドラインでDATA_OPTIONS=SKIP_CONSTRAINT_ERRORS
を指定します。
制約違反の可能性があるデータをロードする必要がある場合は、制約を無効にし、データをロードした後、制約を再度有効にする前に問題のある行を削除する方法を検討してください。
APPEND
を使用すると、常に、データは新しい領域にロードされます。既存の領域は、使用可能な場合でも再利用されません。そのため、ロード後にデータを圧縮することもできます。
既存のターゲット表の有無によりパーティション表の並列処理がどのように影響を受けるかの詳細は、インポートのPARTITION_OPTIONSパラメータの説明も参照してください。
注意: データ・ポンプは、ソース表とターゲット表の不一致(2つの表の列数が同じでないか、ソース表にない列名がターゲット表にある)を検出すると、2つの表間で列名を比較します。これらの表に共通の列が少なくとも1つあると、(データ型に互換性があるとみなされる)共通する列のデータが表にインポートされます。次の制限が適用されます。
|
制限事項
TRUNCATE
は、クラスタ化された表では使用できません。
例
次に、TABLE_EXISTS_ACTION
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr TABLES=employees DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLE_EXISTS_ACTION=REPLACE
デフォルト: デフォルト値は設定されていません。
用途
表モード・インポートの実行を指定します。
構文および説明
TABLES=[schema_name.]table_name[:partition_name]
表モード・インポートでは、表およびパーティションまたはサブパーティションをカンマで区切ったリストを指定して、ソースからインポートするデータをフィルタ処理できます。
schema_name
を指定しなかった場合は、デフォルトで現在のユーザーのスキーマ名になります。自分のスキーマ以外のスキーマを指定するには、DATAPUMP_IMP_FULL_DATABASE
ロールを持っているか、またはスキーマを現在のユーザーに再マップする必要があります。
このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。詳細は、「インポート操作中のフィルタ処理」を参照してください。
partition_name
を指定する場合は、関連表にあるパーティションまたはサブパーティションの名前にする必要があります。
ワイルドカード文字%を使用して、表名およびパーティション名を指定できます。
表名には次の制限があります。
デフォルトでは、表名は大文字でデータベースに格納されます。表名が大文字と小文字または小文字のみで表記され、大/小文字を区別する場合、名前を引用符で囲む必要があります。したがって、表名は、データベースに格納されている表名と完全に一致するように指定する必要があります。
ただし、オペレーティング・システムによっては、コマンドラインの引用符自体をエスケープする必要がある場合があります。次に、異なるインポート・モードで大/小文字の区別を保持する方法を示します。
コマンドライン・モード
TABLES='\"Emp\"'
パラメータ・ファイル・モード
TABLES='"Emp"'
表名を引用符で囲まないかぎり、コマンドラインで指定する表名にシャープ(#)記号は使用できません。同様に、パラメータ・ファイルでは、表名が引用符で囲まれていないかぎり、表名にシャープ(#)記号を使用すると、インポート・ユーティリティではシャープ(#)記号より右側の文字がコメントとして解釈されます。
たとえば、パラメータ・ファイルに次のコマンドラインが記述されている場合、インポート・ユーティリティではemp#
の右側がすべてコメントとして解釈されるため、表dept
およびmydata
はインポートされません。
TABLES=(emp#, dept, mydata)
ただし、パラメータ・ファイルに次の行が含まれる場合は、emp#
が引用符で囲まれているため、インポート・ユーティリティは3つの表をすべてインポートします。
TABLES=('"emp#"', dept, mydata)
注意: オペレーティング・システムによっては、一重引用符を使用する必要がある場合と、二重引用符を使用する必要がある場合があります。ご使用のオペレーティング・システム固有のドキュメントで確認してください。表のネーミング方法に制限があるオペレーティング・システムもあります。たとえば、UNIXのCシェルではドル記号($)やシャープ(#)(またはその他の特殊文字)には特別な意味があります。これらの文字をシェルを介してインポートするには、エスケープ文字を使用する必要があります。 |
制限事項
TABLES
パラメータの値としてのシノニムの使用はサポートされていません。たとえば、hr
スキーマのregions
表にregn
のシノニムが存在する場合、TABLES=regn
を使用すると無効になります。この場合、エラーが返されます。
インポートに対してPARTITION_OPTIONS=DEPARTITION
も指定されている場合、1つの表からのパーティションのみを指定できます。
TRANSPORTABLE=ALWAYS
を指定する場合は、TABLES
パラメータで指定されるすべてのパーティションが同じ表内に存在する必要があります。
TABLES
パラメータに指定する表名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINK
パラメータで10.2.0.3以前のOracle Databaseまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。
例
次に、TABLES
パラメータを使用して、expfull.dmp
ファイルからemployees
およびjobs
表のみをインポートする簡単な例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees,jobs
次に、 TABLES
パラメータを使用したパーティションのインポート例を示します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp TABLES=sh.sales:sales_Q1_2008,sh.sales:sales_Q2_2008
この例では、sh
スキーマのsales
表のパーティションsales_Q1_2008
およびsales_Q2_2008
をインポートします。
デフォルト: デフォルト値は設定されていません。
用途
表領域モード・インポートの実行を指定します。
構文および説明
TABLESPACES=tablespace_name [, ...]
TABLESPACES
を使用して、表と依存オブジェクトがソース(全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、あるいは別のデータベース)からインポートされる表領域名のリストを指定します。
インポートの次の状況では、データ・ポンプによりデータのインポート先に自動的に表領域が作成されます。
インポートがFULL
モードまたはTRANSPORT_TABLESPACES
モードで実行されている場合
インポートがTRANSPORTABLE=ALWAYS
を含む表モードで実行されている場合
その他のすべての場合では、選択したオブジェクトの表領域がインポート先のデータベースにすでに存在している必要があります。REMAP_TABLESPACE
インポート・パラメータを使用して、インポート先のデータベースにある表領域に表領域名をマッピングすることもできます。
このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。詳細は、「インポート操作中のフィルタ処理」を参照してください。
制限事項
TABLESPACES
パラメータに指定する表領域名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINK
パラメータで10.2.0.3以前のデータベースまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。
例
次に、TABLESPACES
パラメータの使用例を示します。表領域はすでに存在するものとします。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,tbs_3,tbs_4
この例では、表領域tbs_1
、tbs_2
、tbs_3
およびtbs_4
にデータがある表がすべてインポートされます。
デフォルト: システム上のデフォルトのデータベース・エディション
用途
オブジェクトのインポート先のデータベース・エディションを指定します。
構文および説明
TARGET_EDITION=name
TARGET_EDITION=
name
が指定されている場合、データ・ポンプ・インポートは、ダンプ・ファイル内にあるすべてのオブジェクトを作成します。エディション化可能でないオブジェクトは、すべてのエディションで作成されます。たとえば、表はエディション化可能でないため、ダンプ・ファイル内に表があると、その表が作成されてすべてのエディションから参照できます。ダンプ・ファイル内のオブジェクトでエディション化可能なもの(プロシージャなど)は、指定されたターゲット・エディションのみに作成されます。
このパラメータが指定されていない場合は、エクスポート・ジョブでエディションが指定されていた場合でも、ターゲット・データベースのデフォルトのエディションが使用されます。指定されたエディションが存在しない場合や使用できない場合は、エラー・メッセージが返されます。
参照:
|
制限事項
このパラメータは、バージョニング可能な同じオブジェクトのバージョンがデータベース内に2つ以上ある場合にのみ有効です。
ジョブ・バージョンは、11.2以上である必要があります。詳細は、「VERSION」を参照してください。
例
次に、TARGET_EDITION
パラメータの使用例を示します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=exp_dat.dmp TARGET_EDITION=exp_edition
この例は、オブジェクトのインポート先となるexp_edition
というエディションがシステム上に存在することを前提としています。インポート・モードは指定されていないため、デフォルトのスキーマ・モードが使用されます。
デフォルト: デフォルト値は設定されていません。
用途
インポート中のオブジェクトに対するオブジェクト作成DDLを変更できます。
構文および説明
TRANSFORM = transform_name:value[:object_type]
transform_name
には、変換の名前を指定します。使用可能なオプションは、次のとおりです。
SEGMENT_ATTRIBUTES
- 値をy
に指定すると、適切なDDLにセグメント属性(物理属性、記憶域属性、表領域およびロギング)が指定されます。デフォルトはy
です。
STORAGE
- 値をy
に指定すると、適切なDDLにSTORAGE句が指定されます。デフォルトはy
です。SEGMENT_ATTRIBUTES
=n
の場合、このパラメータは無視されます。
OID
- 値をn
に指定すると、オブジェクトの表と型の作成時に、エクスポートされたOIDの割当てが禁止されます。かわりに、新しいOIDが割り当てられます。これは、スキーマのクローニングに有効ですが、参照オブジェクトには影響しません。デフォルト値はy
です。
PCTSPACE
- この変換のvalue
には、0より大きい数字を指定する必要があります。この値は、エクステントの割当てとデータ・ファイル・サイズの変更に使用する、割合の乗数を表します。
なお、このPCTSPACE
変換とデータ・ポンプ・エクスポートのSAMPLE
パラメータを組み合せて使用すると、記憶域の割当てサイズを、サンプリングされたデータ・サブセットに合わせることができます。(詳細は、「SAMPLE」を参照してください。)
SEGMENT_CREATION
- y
(デフォルト)に設定した場合、この変換によってSQL SEGMENT CREATION
句がCREATE TABLE
文に追加されます。つまり、CREATE TABLE
文でSEGMENT CREATION DEFERRED
かSEGMENT CREATION IMMEDIATE
のいずれかが明示的に表現されます。値がn
の場合、SEGMENT CREATION
句はCREATE TABLE
文から省略されます。ロードされる表に対してデフォルトのセグメント作成属性を使用するには、このパラメータをn
に設定します。(この機能はOracle Database 11gリリース2(11.2.0.2)から使用できます。)
指定するvalue
の型は、使用する変換によって異なります。SEGMENT_ATTRIBUTES
、STORAGE
、OID
の各変換では、ブール値(y/n)が必要です。PCTSPACE
変換では、整数値が必要です。
object_type
はオプションです。このオプションで、変換が適用されるオブジェクト型を指定します。オブジェクト型を指定しなかった場合、変換はすべての有効なオブジェクト型に適用されます。表3-1に、変換ごとの有効なオブジェクト型を示します。
表3-1 データ・ポンプ・インポートのTRANSFORMパラメータの有効なオブジェクト型
SEGMENT_ATTRIBUTES | STORAGE | OID | PCTSPACE | SEGMENT_CREATION | |
---|---|---|---|---|---|
|
X |
X |
X |
||
|
X |
X |
X |
||
|
X |
||||
|
X |
X |
X |
||
|
X |
X |
X |
||
|
X |
X |
X |
X |
X |
|
X |
X |
|||
|
X |
例
次の例では、hr
スキーマのemployees
表をエクスポートしたとします。表をインポートした結果返されるSQL CREATE
TABLE
文は、次のようになります。
CREATE TABLE "HR"."EMPLOYEES" ( "EMPLOYEE_ID" NUMBER(6,0), "FIRST_NAME" VARCHAR2(20), "LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE, "EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE, "PHONE_NUMBER" VARCHAR2(20), "HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE, "JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE, "SALARY" NUMBER(8,2), "COMMISSION_PCT" NUMBER(2,2), "MANAGER_ID" NUMBER(6,0), "DEPARTMENT_ID" NUMBER(4,0) ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 10240 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 121 PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM" ;
STORAGE
句またはTABLESPACE
句は、保持しない場合、インポート・ユーティリティのTRANSFORM
パラメータを使用してCREATE
STATEMENT
から削除できます。SEGMENT_ATTRIBUTES
の値をn
に指定します。これによって、セグメント属性(記憶域と表領域の両方)が表から除外されます。
> impdp hr TABLES=hr.employees DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp TRANSFORM=SEGMENT_ATTRIBUTES:n:table
この結果返される、employees
表のCREATE
TABLE
文は次のようになります。STORAGE
またはTABLESPACE
句は含まれていません。かわりに、HR
スキーマのデフォルト表領域が使用されます。
CREATE TABLE "HR"."EMPLOYEES" ( "EMPLOYEE_ID" NUMBER(6,0), "FIRST_NAME" VARCHAR2(20), "LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE, "EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE, "PHONE_NUMBER" VARCHAR2(20), "HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE, "JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE, "SALARY" NUMBER(8,2), "COMMISSION_PCT" NUMBER(2,2), "MANAGER_ID" NUMBER(6,0), "DEPARTMENT_ID" NUMBER(4,0) );
前述の例で示したとおり、SEGMENT_ATTRIBUTES
変換は、記憶域と表領域の両方の属性に適用されます。STORAGE
句のみを省略して、TABLESPACE
句を保持する場合は、STORAGE
変換を次のように使用できます。
> impdp hr TABLES=hr.employees DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp TRANSFORM=STORAGE:n:table
SEGMENT_ATTRIBUTES
およびSTORAGE
変換は、次のコマンドに示すとおり、TRANSFORM
パラメータにオブジェクト型を指定しないことによって、すべての適用可能な表オブジェクトおよび索引オブジェクトに適用できます。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=SEGMENT_ATTRIBUTES:n
デフォルト: デフォルト値は設定されていません。
用途
トランスポータブル表領域モード・インポートか、エクスポート時にTRANSPORTABLE=ALWAYS
が設定された場合は表モード・インポートによって、ターゲット・データベースにインポートされるデータ・ファイルの一覧を指定します。データ・ファイルはターゲット・データベース・システム上にすでに存在する必要があります。
構文および説明
TRANSPORT_DATAFILES=datafile_name
datafile_name
には、ディレクトリ・オブジェクト名ではなく、ターゲット・データベースが存在するシステムで有効な絶対ディレクトリ・パスを指定する必要があります。
インポート操作前の任意の時点で、ソース・システムからターゲット・システムにデータ・ファイルをコピーしておく必要があります。この処理は、オペレーティング・システムでサポートされている任意のコピー方法で実行できます。必要に応じて、ターゲット・システムにコピーするときに、ファイルの名前を変更できます(例2を参照)。
トランスポータブル表領域モード・エクスポートによって生成されたダンプ・ファイル・セットがすでにある場合、(メタデータを含んでいる)ダンプ・ファイルおよびTRANSPORT_DATAFILES
パラメータを指定することで、そのダンプ・ファイルのトランスポータブル・モード・インポートを実行できます。TRANSPORT_DATAFILES
パラメータが存在することで、これがトランスポータブル・モード・インポートであることと、実際のデータを取得する場所がインポートに通知されます。
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
制限事項
TRANSPORT_DATAFILES
パラメータは、QUERY
パラメータと組み合せて使用することはできません。
例1
次に、TRANSPORT_DATAFILES
パラメータの使用例を示します。次の内容のパラメータ・ファイルtrans_datafiles.par
を作成したとします。
DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp TRANSPORT_DATAFILES='/user01/data/tbs1.dbf'
次のコマンドを発行します。
> impdp hr PARFILE=trans_datafiles.par
例2
この例は、トランスポータブル表領域のエクスポートおよびインポート操作の一環として、データ・ファイルの名前を変更する操作を示しています。ソース・システムにemployees.dat
というデータ・ファイルがあることを前提としています。
オペレーティング・システムでサポートされている方法で、ソース・システムからターゲット・データベースがあるシステムに、employees.dat
というデータ・ファイルを手動でコピーします。コピー操作の一環として、ファイル名をworkers.dat
に変更します。
表領域tbs_1
について、トランスポータブル表領域のエクスポートを実行します。
> expdp hr DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp TRANSPORT_TABLESPACES=tbs_1
tbs_1
のメタデータのみ(データなし)がtts.dmp
というダンプ・ファイルにエクスポートされます。実際のデータは、手順1でターゲット・データベースにコピーされています。
workers.dat
というデータ・ファイルの絶対ディレクトリ・パスを指定して、トランスポータブル表領域のインポートを実行します。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp TRANSPORT_DATAFILES='/user01/data/workers.dat'
tts.dmp
に含まれているメタデータがインポートされ、workers.dat
ファイル内の情報がデータ・ポンプによってデータベースの正しい場所に割り当てられます。
デフォルト: NO
用途
指定したトランスポータブル表領域セットが他の表領域内のオブジェクトによって参照されていることを確認するかどうかを指定します。
構文および説明
TRANSPORT_FULL_CHECK=[YES | NO]
TRANSPORT_FULL_CHECK
=YES
を指定すると、インポート・ユーティリティによって、トランスポータブル・セット内のオブジェクトとトランスポータブル・セット外のオブジェクトの間に依存性が存在しないことが確認されます。ここでは、双方向の依存性がチェックされます。たとえば、トランスポータブル・セット内に表は存在するが、その表の索引は存在しない場合は、エラーが返され、インポート操作が終了します。同様に、トランスポータブル・セット内に索引は存在するが表は存在しない場合も、エラーが返されます。
TRANSPORT_FULL_CHECK=NO
を指定すると、インポート・ユーティリティによって、トランスポータブル・セット外のオブジェクトに依存するオブジェクトが、トランスポータブル・セット内に存在しないことのみ確認されます。ここでは、一方向の依存性がチェックされます。たとえば、表は索引に依存しませんが、索引は表に依存します。これは、索引は表なしでは意味を持たないためです。そのため、トランスポータブル・セット内に表は存在するが、表の索引は存在しない場合、このチェックは正常に終了します。ただし、トランスポータブル・セット内に索引は存在するが表は存在しない場合は、インポート操作が終了します。
このチェックに加えて、インポートでは、常に、TRANSPORT_TABLESPACES
で指定された表領域セット内に定義されているすべての表(およびその索引)のすべての記憶域セグメントが、表領域セット内に実際に含まれていることが確認されます。
制限事項
このパラメータは、NETWORK_LINK
パラメータを指定した場合にのみトランスポータブル・モード(またはTRANSPORTABLE=ALWAYS
がエクスポート時に指定されていた場合は表モード)に対して有効です。
例
次の例では、source_database_link
を有効なデータベース・リンクの名前に置き換えます。また、この例では、tbs6.dbf
というデータ・ファイルがすでに存在するものとします。
次の内容のパラメータ・ファイルfull_check.par
を作成したとします。
DIRECTORY=dpump_dir1
TRANSPORT_TABLESPACES=tbs_6
NETWORK_LINK=source_database_link
TRANSPORT_FULL_CHECK=YES
TRANSPORT_DATAFILES='/wkdir/data/tbs6.dbf'
次のコマンドを発行します。
> impdp hr PARFILE=full_check.par
デフォルト: デフォルト値は設定されていません。
用途
データベース・リンク(NETWORK_LINK
パラメータで指定)経由でトランスポータブル表領域モードのインポートの実行を指定します。
構文および説明
TRANSPORT_TABLESPACES=tablespace_name [, ...]
TRANSPORT_TABLESPACES
パラメータは、ソース・データベースからターゲット・データベースにオブジェクト・メタデータがインポートされる表領域の名前のリストを指定するために使用します。
これはトランスポータブル・モード・インポートであるため、データのインポート先の表領域は、データ・ポンプによって自動的に作成されます。事前に表領域を作成しておく必要はありません。ただし、インポートを開始する前に、データ・ファイルをターゲット・データベースにコピーする必要があります。
インポート・コマンドラインでTRANSPORT_TABLESPACES
を指定する場合は、データベース・リンクを指定するためにNETWORK_LINK
パラメータも使用する必要があります。データベース・リンクは2つの物理データベース・サーバー間の接続であり、データベース・リンクを使用すると、クライアントから1つの論理データベースとしてこれらのサーバーにアクセスできます。オブジェクト・メタデータはデータベース・リンクを使用してソース(NETWORK_LINK
によって指定されるデータベース)からエクスポートされ、ターゲット(impdpコマンドが発行されるデータベース)に直接インポートされるため、NETWORK_LINK
パラメータが必要となります。この処理にはダンプ・ファイルは関連しません。また、実際のデータがある場所をインポートが認識できるように、TRANSPORT_DATAFILES
パラメータも指定する必要があります(実際のデータは、他の手段を使用した別の操作でターゲットにコピーされます)。
注意: トランスポータブル表領域モード・エクスポートによって生成されたダンプ・ファイル・セットがすでにある場合、そのダンプ・ファイルのトランスポータブル・モード・インポートを実行できますが、この場合TRANSPORT_TABLESPACES またはNETWORK_LINK を指定しません。指定するとエラーが発生します。かわりに、(メタデータを含んでいる)ダンプ・ファイルとTRANSPORT_DATAFILES パラメータを指定します。TRANSPORT_DATAFILES パラメータが存在することで、これがトランスポータブル・モード・インポートであることと、実際のデータを取得する場所がインポートに通知されます。 |
オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。
参照:
|
制限事項
トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。インポート先のターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。
TRANSPORT_TABLESPACES
パラメータは、NETWORK_LINK
パラメータも指定されている場合のみ有効です。
トランスポータブル・モードは、暗号化された列をサポートしていません。
トランスポータブル表領域のジョブでは、Data Pump ImportのACCESS_METHOD
パラメータはサポートされません。
例
次の例では、source_database_link
を有効なデータベース・リンクの名前に置き換えます。また、この例では、tbs6.dbf
というデータ・ファイルが、ソース・データベースからローカル・システムにすでにコピーされているものとします。次の内容のパラメータ・ファイルtablespaces.par
を作成したとします。
DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link
TRANSPORT_TABLESPACES=tbs_6
TRANSPORT_FULL_CHECK=NO
TRANSPORT_DATAFILES='user01/data/tbs6.dbf'
次のコマンドを発行します。
> impdp hr PARFILE=tablespaces.par
デフォルト: NEVER
用途
特定の表、パーティションおよびサブパーティションのメタデータのみをインポートするために、表モードのエクスポート(TABLES
パラメータで指定)中にトランスポータブル・オプションを使用する必要があるかどうかを指定します。
構文および説明
TRANSPORTABLE = [ALWAYS | NEVER]
使用可能な値の定義は、次のとおりです。
ALWAYS
: インポート・ジョブでトランスポータブル・オプションを使用するように指定します。トランスポータブルが使用できない場合、ジョブは失敗します。トランスポータブル・オプションを使用すると、TABLES
パラメータで指定した表、パーティションまたはサブパーティションのメタデータのみがインポートされます。実際のデータ・ファイルをターゲット・データベースにコピーする必要があります。詳細は、「データ・ファイル・コピーを使用したデータ移動」を参照してください。
NEVER
: インポート・ジョブでトランスポータブル・オプションではなくダイレクト・パスまたは外部表による方法を使用してデータをロードするように指示します。これがデフォルトです。
表のパーティションのサブセットのみをインポートし、TRANSPORTABLE=ALWAYS
パラメータを使用すると、それぞれのパーティションが非パーティション表になります。
表のパーティションのサブセットのみをインポートし、TRANSPORTABLE
パラメータを使用しない場合、またはそのパラメータが NEVER
に設定されている場合(デフォルト)は、次のようになります。
PARTITION_OPTIONS=DEPARTITION
を使用している場合は、それぞれのパーティションが、非パーティション表として作成されます。
PARTITION_OPTIONS
を使用していない場合は、完全な表が作成されます。つまり、完全な表内のすべてのメタデータが、ソース上での表定義と同じになるようにターゲット・システム上に存在します。ただし、指定されたパーティション用のデータのみが表に挿入されます。
制限事項
インポートのTRANSPORTABLE
パラメータは、NETWORK_LINK
パラメータも指定されている場合のみ有効です。
TRANSPORTABLE
パラメータは、表モード・インポートでのみ有効です(表はパーティション化またはサブパーティション化されている必要はありません)。
トランスポータブル・インポートを実行するユーザーでは、ソース・データベースでDATAPUMP_EXP_FULL_DATABASE
ロール、ターゲット・データベースでDATAPUMP_IMP_FULL_DATABASE
ロールが必要になります。
TRANSPORTABLE
パラメータをすべて使用するには、COMPATIBLE
初期化パラメータを11.0.0以上に設定する必要があります。
例
次に、ネットワーク・リンク・インポート中にTRANSPORTABLE
パラメータを使用した例を示します。
> impdp system TABLES=hr.sales TRANSPORTABLE=ALWAYS
DIRECTORY=dpump_dir1 NETWORK_LINK=dbs1 PARTITION_OPTIONS=DEPARTITION
TRANSPORT_DATAFILES=datafile_name
デフォルト: COMPATIBLE
用途
インポートするデータベース・オブジェクトのバージョンを指定します(つまり、指定されたリリースと互換性のあるデータベース・オブジェクトおよび属性のみがインポートされます)。なお、これは、10.1より前のリリースのOracle Databaseでデータ・ポンプ・インポートが使用可能ということではありません。データ・ポンプ・インポートは、Oracle Database 10gリリース1(10.1)以降でのみ動作します。VERSION
パラメータを使用して可能になるのは、インポートするオブジェクトのバージョンの識別のみです。
構文および説明
VERSION=[COMPATIBLE | LATEST | version_string]
このパラメータは、ソース・システムのリリースより古い互換リリースのOracle Databaseが稼働しているターゲット・システムのロードに使用できます。指定したリリースと互換性のないソース・システム上のデータベース・オブジェクトまたは属性はターゲットに移動されません。たとえば、指定したリリースではサポートされていない新しいデータ型を含む表はインポートされません。このパラメータの有効な値は次のとおりです。
COMPATIBLE
: デフォルト値。メタデータのバージョンは、データベースの互換性レベルに対応します。データベースの互換性は、9.2.0以上に設定する必要があります。
LATEST
: メタデータのバージョンは、データベースのリリースに対応します。
version_string
: 特定のデータベース・リリース(11.2.0など)。Oracle Database 11gの場合、この値は9.2.0以上である必要があります。
例
次に、VERSION
パラメータの使用例を示します。この例では、ExportのFULL
パラメータで示した例を実行して、expfull.dmp
ダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees VERSION=LATEST
対話方式コマンド・モードでは、現行のジョブは継続して続行されますが、端末へのロギングは一時停止され、インポート・プロンプト(Import>
)が表示されます。
対話方式コマンド・モードを開始するには、次のいずれかの方法を使用します。
接続されたクライアントから、[Ctrl]を押しながら[C]を押します。
ジョブを実行している端末以外の端末から、ATTACH
パラメータを使用してジョブに接続します。この機能は、ある場所で開始したジョブを、後で別の場所から確認する場合に有効です。
表3-2に、現行のジョブに対して対話方式コマンド・モードでデータ・ポンプ・インポート・プロンプトから実行できる操作を示します。
表3-2 データ・ポンプ・インポートの対話方式コマンド・モードでサポートされているコマンド
操作 | 使用するコマンド |
---|---|
対話方式コマンド・モードを終了する。 |
|
現行のジョブは続行したままインポート・クライアント・セッションを停止する。 |
|
使用可能なコマンドの概要を表示する。 |
|
現在接続中のすべてのクライアント・セッションを切断し、現行のジョブを停止する。 |
|
現行のジョブに対するアクティブなワーカー・プロセスの数を増減する。このコマンドは、Oracle Database Enterprise Editionでのみ使用可能です。 |
|
接続している停止ジョブを再開する。 |
|
現行のジョブの詳細な状態を表示する。 |
|
現行のジョブを停止する。 |
|
次の項では、データ・ポンプ・インポートの対話方式コマンド・モードで使用可能なコマンドについて説明します。
用途
モードを、対話方式コマンド・モードからロギング・モードに変更します。
構文および説明
CONTINUE_CLIENT
ロギング・モードでは、ジョブの状態が端末に継続的に出力されます。ジョブが現在停止している場合、CONTINUE_CLIENT
を指定すると、クライアントがジョブの開始を試みます。
例
Import> CONTINUE_CLIENT
用途
インポート・クライアント・セッションを停止し、インポート・ユーティリティを終了して、端末へのロギングを中断します。ただし、現行のジョブの実行は続行します。
構文および説明
EXIT_CLIENT
EXIT_CLIENT
では、ジョブが実行されたままになるため、ジョブがまだ「実行中」または「停止」状態になっている場合は、後でこのジョブに接続できます。ジョブの状態を確認するには、ジョブのログ・ファイルを監視するか、USER_DATAPUMP_JOBS
ビューまたはV$SESSION_LONGOPS
ビューを問い合せることができます。
例
Import> EXIT_CLIENT
用途
対話方式コマンド・モードで使用可能なデータ・ポンプ・インポート・コマンドの情報を表示します。
構文および説明
HELP
対話方式コマンド・モードで使用可能なコマンドの情報を表示します。
例
Import> HELP
用途
現在接続中のすべてのクライアント・セッションを切断してから、現行のジョブを停止します。インポート・ユーティリティを終了し、端末プロンプトに戻します。
構文および説明
KILL_JOB
KILL_JOB
を使用して中断されたジョブは、再開できません。接続中のすべてのクライアント(KILL_JOB
コマンドを発行しているクライアントを含む)は、現在のユーザーがジョブを停止しているという警告を受け取った後、切断されます。すべてのクライアントが切断されると、ジョブのプロセス構造が即時に停止し、マスター表およびダンプ・ファイルが削除されます。ログ・ファイルは、削除されません。
例
Import> KILL_JOB
用途
現行のジョブに対してアクティブなワーカー・プロセスまたはPQスレーブ(あるいはその両方)の数を増減できます。
構文および説明
PARALLEL=integer
PARALLEL
は、コマンドライン・パラメータおよび対話方式モードのパラメータとして使用可能です。必要な数のパラレル処理を設定できます。増加処理は、リソースが十分にありパラレル化を必要とする作業量が十分にある場合は、即時に実行されます。減少処理は、既存のプロセスが現行のタスクを終了してから実行されます。整数値を小さくすると、ワーカーはアイドル状態になりますが、ジョブが終了するまで削除はされません。
制限事項
このパラメータは、Oracle Database 11gのEnterprise Editionでのみ有効です。
例
Import> PARALLEL=10
用途
構文および説明
START_JOB[=SKIP_CURRENT=YES]
START_JOB
コマンドは、(現在実行できない)接続中のジョブを再開します。ダンプ・ファイル・セットおよびマスター表が元のまま保持されている場合は、予期しない障害またはSTOP_JOB
コマンドの発行後にデータの損失や破損なしにジョブが再開されます。
SKIP_CURRENT
オプションは、以前一部のDDL文が失敗したために再開に失敗したジョブを再開できます。失敗する文はスキップされ、ジョブは次の項目から再開されます。
SQLFILEジョブもトランスポータブル表領域モードでのインポートも再開できません。
例
Import> START_JOB
用途
ジョブの累積的な状態、現行の操作の説明および推定完了率を表示します。ロギング・モードの状態を表示する間隔を再設定することもできます。
構文および説明
STATUS[=integer]
ロギング・モードでのこの状態の表示頻度を秒単位で指定できるオプションがあります。値を入力しなかった場合またはデフォルト値の0
を使用した場合は、状態の定期表示はオフになり、状態は1回のみ表示されます。
この状態情報は、標準出力デバイスのみに書き込まれ、ログ・ファイルには(使用可能な場合でも)書き込まれません。
例
次に、現行のジョブの状態を表示し、ロギング・モードの表示間隔を2分(120秒)に変更する例を示します。
Import> STATUS=120
用途
現行のジョブを即時にまたは手順に従って停止し、インポート・ユーティリティを終了します。
構文および説明
STOP_JOB[=IMMEDIATE]
STOP_JOB
コマンド発行時または発行後にマスター表およびダンプ・ファイル・セットに障害が発生していない場合は、そのジョブに接続し、START_JOB
コマンドを使用して再開できます。
手順に従って停止する場合は、関連する値を指定しないでSTOP_JOB
を使用します。確認を要求する警告が発行されます。手順に従った停止では、ワーカー・プロセスで現行のタスクが終了した後、ジョブが停止されます。
即時に停止するには、STOP_JOB
=IMMEDIATE
を指定します。確認を要求する警告が発行されます。接続中のすべてのクライアント(STOP_JOB
コマンドを発行しているクライアントを含む)は、現在のユーザーがジョブを停止および切断中であるという警告を受け取ります。すべてのクライアントが切断されると、ジョブのプロセス構造が即時に停止されます。マスター・プロセスは、ワーカー・プロセスで現行のタスクが終了するまで待機はしません。STOP_JOB=IMMEDIATE
を指定した場合、データ破損やデータ損失の危険性はありません。ただし、停止時に完了しなかった一部のタスクは、再開時に再実行する必要があります。
例
Import> STOP_JOB=IMMEDIATE
この項では、データ・ポンプ・インポートの使用例を示します。
これらの例を正しく使用するために役立つ情報については、「インポート・パラメータの使用例」を参照してください。
例3-1に、employees
表のデータのみ表モード・インポートの実行方法を示します。例2-1で作成されたダンプ・ファイルを使用します。
例3-1 データのみ表モード・インポートの実行
> impdp hr TABLES=employees CONTENT=DATA_ONLY DUMPFILE=dpump_dir1:table.dmp NOLOGFILE=YES
CONTENT=DATA_ONLY
パラメータは、すべてのデータベース・オブジェクト定義(メタデータ)をフィルタから除外します。表の行データのみロードされます。
例3-2に、例2-4で作成したダンプ・ファイル・セットのスキーマ・モード・インポートを示します。
例3-2 スキーマ・モード・インポートの実行
> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp EXCLUDE=CONSTRAINT,REF_CONSTRAINT,INDEX TABLE_EXISTS_ACTION=REPLACE
EXCLUDE
パラメータは、インポートしたメタデータをフィルタします。指定したインポート・モードでは、EXCLUDE
文に指定されたオブジェクトを除き、ソースに含まれるすべてのオブジェクトおよびその依存オブジェクトが含まれます。オブジェクトが除外されると、そのオブジェクトのすべての依存オブジェクトも除外されます。TABLE_EXISTS_ACTION=REPLACE
パラメータでは、表がすでに存在する場合は削除し、ダンプ・ファイルの内容でその表を再作成してロードするように指定します。
例3-3では、ソースが、NETWORK_LINK
パラメータで指定されたデータベースであるネットワーク・モード・インポートを実行します。
例3-3 スキーマのネットワーク・モード・インポート
> impdp hr TABLES=employees REMAP_SCHEMA=hr:scott DIRECTORY=dpump_dir1 NETWORK_LINK=dblink
この例では、hr
スキーマからscott
スキーマへemployees
表をインポートします。dblink
は、ターゲット・データベースとは異なるソース・データベースを示します。
スキーマを再マップするには、ユーザーhr
に、ローカル・データベースのDATAPUMP_IMP_FULL_DATABASE
ロールおよびソース・データベースのDATAPUMP_EXP_FULL_DATABASE
ロールが必要です。
REMAP_SCHEMA
は、ソース・スキーマにあるすべてのオブジェクトをターゲット・スキーマにロードします。
この項では、データ・ポンプ・インポートの構文図を示します。これらの構文図では、標準SQL構文の表記法を使用します。SQL構文の表記法の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
ImpInit
ImpStart
ImpModes
ImpOpts
ImpFilter
ImpRacOpt
ImpRemap
ImpFileOpts
ImpNetworkOpts
ImpDynOpts
ImpDiagnostics