4 Oracle Data Pumpのレガシー・モード

Oracle Data Pumpのレガシー・モードでは、Oracle Data Pumpエクスポートとデータ・ポンプ・インポートのコマンドラインで、オリジナルのエクスポート・パラメータとインポート・パラメータを使用できます。

4.1 Oracle Data Pumpのレガシー・モードのユースケース

Oracle Data Pumpは、レガシーのエクスポートまたはインポート・パラメータが検出されるとレガシー・モードになります。そのため、既存のスクリプトを引き続き使用できます。

以前にオリジナルのエクスポート・ユーティリティ(exp)とインポート・ユーティリティ(imp)を使用したことがある場合は、長年使用してきたスクリプトがある可能性があります。Oracle Data Pumpには、既存のスクリプトをOracle Data Pumpで引き続き使用できるレガシー・モードが用意されています。

コマンドラインまたはスクリプトのどちらかにオリジナルのエクスポートまたはインポートに特有のパラメータが見つかると、Oracle Data Pumpはレガシー・モードに移行します。Oracle Data Pumpがパラメータを処理するときに、Oracle Data PumpエクスポートまたはOracle Data Pumpインポートの類似のパラメータが表示されます。新しい構文を確認し、時間があるときにスクリプトを変更することをお薦めします。

ノート:

Oracle Data Pumpエクスポート・ユーティリティおよびインポート・ユーティリティは、Oracle Data Pump形式のダンプ・ファイルとログ・ファイルのみを作成して読み取りました。オリジナルのエクスポートやインポートと互換性のあるダンプ・ファイルが作成されたり、読み込まれることはありません。オリジナルのエクスポートで作成されたダンプ・ファイルがある場合は、オリジナルのインポート(imp)を使用してデータベースにデータをインポートする必要があります。オリジナルのエクスポート・ユーティリティ(exp)は使用できません。

4.2 パラメータのマッピング

オリジナルのOracleエクスポートおよびインポート・パラメータと、Oracle Data Pumpエクスポートおよびデータ・ポンプ・インポートの同様の機能を持つパラメータとのマッピング関係について説明します。

4.2.1 Oracle Data Pumpでのオリジナルのエクスポート・パラメータの使用

対応するOracle Data Pumpパラメータにマップするオリジナルのエクスポート・パラメータがある場合は、そのエクスポート・パラメータをOracle Data Pumpエクスポートで使用できます。

オリジナルのエクスポート・パラメータのOracle Data Pumpの解釈

ノート:

オリジナルのエクスポートは、Oracle Database 11g以降では原則としてサポートされなくなりました。

Oracle Data Pumpがオリジナルのエクスポート・パラメータをどのように解釈するかを確認するには、比較表を参照してください。オリジナルのエクスポートとOracle Data Pumpエクスポートで名前と機能が同じパラメータは、この表に含まれていません。

表4-1 Oracle Data Pumpエクスポートでのオリジナルのエクスポート・パラメータの扱い

オリジナルのエクスポート・パラメータ データ・ポンプ・エクスポート・パラメータでの処理

BUFFER

このパラメータは無視されます。

COMPRESS

このパラメータは無視されます。オリジナルのエクスポートの場合、COMPRESSパラメータは初期エクステントの管理方法に影響していました。オリジナルのエクスポートでは、COMPRESS=nに設定すると、初期エクステントと第2エクステントに対して現行の記憶域パラメータが使用されていました。

Oracle Data PumpエクスポートのCOMPRESSIONパラメータは、ダンプ・ファイルのデータ圧縮方法を指定するために使用されます。オリジナルのエクスポートのCOMPRESSパラメータとは関連がありません。

CONSISTENT

Oracle Data Pumpエクスポートは現在の時刻を確認して、FLASHBACK_TIMEを使用します。

CONSTRAINTS

オリジナルのエクスポートでCONSTRAINTS=nを使用していた場合、Oracle Data PumpエクスポートはEXCLUDE=CONSTRAINTSを使用します。

デフォルトの動作では、制約がエクスポートに含まれます。

DIRECT

このパラメータは無視されます。Oracle Data Pumpエクスポートでは、最適なエクスポート方法が自動的に選択されます。

FEEDBACK

Oracle Data PumpエクスポートのSTATUS=30コマンドが使用されます。STATUSコマンドでは、処理されている行に加えてエクスポート・ジョブの状態も返されるため、これは直接のマッピングではありません。

オリジナルのエクスポートでは、一定の行数(FEEDBACKコマンドで指定)の後にフィードバックが表示されていました。Oracle Data Pumpエクスポートでは、STATUSで指定された秒数ごとに状態が表示されます。

FILE

Oracle Data Pumpエクスポートは、FILEパラメータに対する指定パスまたはデフォルト・パスを確認します。また、スキーマに読取りおよび書込みアクセス権があるディレクトリ・オブジェクトの有無も確認します。オリジナルのエクスポートおよびインポートとOracle Data Pumpエクスポートおよびインポートでは、ダンプ・ファイルとログ・ファイルの書込み/読取りが可能な場所が異なります。これは、オリジナル・バージョンはクライアントベースであり、データ・ポンプはサーバーベースであるためです。

GRANTS

オリジナルのエクスポートでGRANTS=nを使用していた場合、データ・ポンプ・エクスポートはEXCLUDE=GRANTを使用します。

オリジナルのエクスポートでGRANTS=yを使用していた場合、そのパラメータは無視されます。その指定はOracle Data Pumpエクスポートのデフォルトの動作であるため、再マップする必要はありません。

INDEXES

オリジナルのエクスポートでINDEXES=nを使用していた場合、Oracle Data PumpエクスポートはEXCLUDE=INDEXパラメータを使用します。

オリジナルのエクスポートでINDEXES=yを使用していた場合、そのパラメータは無視されます。その指定はOracle Data Pumpエクスポートのデフォルトの動作であるため、再マップする必要はありません。

LOG

Oracle Data Pumpエクスポートは、LOGパラメータに対する指定パスまたはデフォルト・パスを確認します。また、スキーマに読取りおよび書込みアクセス権があるディレクトリ・オブジェクトの有無も確認します。

オリジナルのエクスポートおよびインポートとOracle Data Pumpエクスポートおよびインポートでは、ダンプ・ファイルとログ・ファイルの書込み/読取りが可能な場所が異なります。これは、オリジナル・バージョンはクライアントベースであり、データ・ポンプはサーバーベースであるためです。

ログ・ファイルの内容は、Oracle Data Pumpエクスポート操作の内容になります。

OBJECT_CONSISTENT

このパラメータは無視されます。Oracle Data Pumpエクスポートの処理では、エクスポートされる各オブジェクトの状態に一貫性があることが保証されています。

OWNER

Oracle Data PumpのSCHEMASパラメータが使用されます。

RECORDLENGTH

このパラメータは無視されます。Oracle Data Pumpエクスポートでは、バッファ・サイズが自動的に調整されるためです。

RESUMABLE

このパラメータは無視されます。Oracle Data Pumpエクスポートの場合、この機能はEXP_FULL_DATABASEロールを付与されているユーザーに自動的に提供されるためです。

RESUMABLE_NAME

このパラメータは無視されます。Oracle Data Pumpエクスポートの場合、この機能はEXP_FULL_DATABASEロールを付与されているユーザーに自動的に提供されるためです。

RESUMABLE_TIMEOUT

このパラメータは無視されます。Oracle Data Pumpエクスポートの場合、この機能はEXP_FULL_DATABASEロールを付与されているユーザーに自動的に提供されるためです。

ROWS

オリジナルのエクスポートでROWS=yを使用していた場合、Oracle Data PumpエクスポートはCONTENT=ALLパラメータを使用します。

オリジナルのエクスポートでROWS=nを使用していた場合、Oracle Data PumpエクスポートはCONTENT=METADATA_ONLYパラメータを使用します。

STATISTICS

このパラメータは無視されます。統計は、Oracle Data Pumpエクスポート操作の一環として、表に対して常に保存されます。

TABLESPACES

オリジナルのエクスポートでTRANSPORT_TABLESPACE=nも指定していた場合、Oracle Data PumpエクスポートはTABLESPACESパラメータを無視します。

オリジナルのエクスポートでTRANSPORT_TABLESPACE=yも指定していた場合、Oracle Data Pumpエクスポートは、TABLESPACESパラメータに対して指定されていた名前を、Oracle Data PumpエクスポートのTRANSPORT_TABLESPACESパラメータに対して使用します。

TRANSPORT_TABLESPACE

オリジナルのエクスポートでTRANSPORT_TABLESPACE=n(デフォルト)を使用していた場合、Oracle Data PumpエクスポートはTABLESPACESパラメータを使用します。

オリジナルのエクスポートでTRANSPORT_TABLESPACE=yを使用していた場合、Oracle Data PumpエクスポートはTRANSPORT_TABLESPACESパラメータを使用し、メタデータのみがエクスポートされます。

TRIGGERS

オリジナルのエクスポートでTRIGGERS=nを使用していた場合、Oracle Data PumpエクスポートはEXCLUDE=TRIGGERパラメータを使用します。

オリジナルのエクスポートでTRIGGERS=yが使用された場合、パラメータは無視されます。これはOracle Data Pumpエクスポートのデフォルトの動作です。そのため、パラメータを再マッピングする必要はありません。

TTS_FULL_CHECK

オリジナルのエクスポートでTTS_FULL_CHECK=yを使用していた場合、Oracle Data PumpエクスポートはTRANSPORT_FULL_CHECKパラメータを使用します。

オリジナルのエクスポートでTTS_FULL_CHECK=yが使用された場合、パラメータは無視されます。これはOracle Data Pumpエクスポートのデフォルトの動作です。そのため、パラメータを再マッピングする必要はありません。

VOLSIZE

オリジナルのエクスポートでVOLSIZEパラメータが使用されている場合、それはダンプ・ファイルの指定場所がテープ・デバイスであることを意味します。テープ・デバイスは、Oracle Data Pumpエクスポートのダンプ・ファイル形式でサポートされていません。したがって、この操作はエラーが発生して終了します。

4.2.2 Oracle Data Pumpでのオリジナルのインポート・パラメータの使用

Oracle Data Pumpパラメータにマップするオリジナルのインポート・パラメータがある場合は、そのインポート・パラメータをOracle Data Pumpインポートで使用できます。

Oracle Data Pumpがオリジナルのインポート・パラメータをどのように解釈するかを確認するには、比較表を参照してください。オリジナルのインポートとOracle Data Pumpのインポートで名前と機能が同じパラメータは、この表に含まれていません。

表4-2 Oracle Data Pumpインポートでのオリジナルのインポート・パラメータの扱い

オリジナルのインポート・パラメータ Oracle Data Pumpインポート・パラメータでの処理

BUFFER

このパラメータは無視されます。

CHARSET

このパラメータは、数リリース前からサポートされなくなりました。今後は使用しないでください。このサポートされていないパラメータを使用しようとすると、Oracle Data Pumpの操作が中止されます。

COMMIT

このパラメータは無視されます。Oracle Data Pumpインポートでは、表の処理が終了するたびにコミットが自動的に実行されます。

COMPILE

このパラメータは無視されます。Oracle Data Pumpインポートでは、プロシージャの作成後にコンパイルが実行されます。依存関係に必要な場合は、再コンパイルを実行できます。

CONSTRAINTS

オリジナルのインポートでCONSTRAINTS=nを使用していた場合、Oracle Data PumpインポートはEXCLUDE=CONSTRAINTパラメータを使用します。

オリジナルのインポートでCONSTRAINTS=yが使用された場合、パラメータは無視されます。これはOracle Data Pumpインポートのデフォルトの動作です。そのため、パラメータを再マッピングする必要はありません。

DATAFILES

Oracle Data PumpインポートのTRANSPORT_DATAFILESパラメータが使用されます。

DESTROY

オリジナルのインポートでDESTROY=yを使用していた場合、Oracle Data PumpインポートはREUSE_DATAFILES=yパラメータを使用します。

オリジナルのインポートでDESTROY=nを使用していた場合、そのパラメータは無視されます。その指定はOracle Data Pumpインポートのデフォルトの動作であるため、再マップする必要はありません。

FEEDBACK

Oracle Data PumpインポートのSTATUS=30コマンドが使用されます。STATUSコマンドでは、処理されている行に加えてインポート・ジョブの状態も返されるため、これは直接のマッピングではありません。

オリジナルのインポートでは、一定の行数(FEEDBACKコマンドで指定)の後にフィードバックが表示されていました。Oracle Data Pumpインポートでは、STATUSで指定された秒数ごとに状態が表示されます。

FILE

Oracle Data Pumpインポートは、FILEパラメータに対する指定パスまたはデフォルト・パスを確認します。また、スキーマに読取りおよび書込みアクセス権があるディレクトリ・オブジェクトの有無も確認します。

オリジナルのバージョンはクライアントベース、データ・ポンプはサーバーベースであるため、オリジナルのエクスポートとインポート、およびデータ・ポンプ・エクスポートとデータ・ポンプ・インポートは、ダンプ・ファイルとログ・ファイルの書込み/読取りを行える場所によって異なります。

FILESIZE

このパラメータは無視されます。この情報がOracle Data Pumpのダンプ・ファイル・セットにすでに含まれているからです。

FROMUSER

Oracle Data PumpインポートのSCHEMASパラメータが使用されます。TOUSERを使用せずにFROMUSERが使用されていた場合は、IMP_FULL_DATABASEロールを持つインポート・スキーマによって、Oracle Data Pumpインポートでスキーマが作成され、そのスキーマのオブジェクトがインポートされます。IMP_FULL_DATABASEロールを持っていないインポート・スキーマは、ダンプ・ファイル・セットから自分のスキーマのみをインポートできます。

GRANTS

オリジナルのインポートでGRANTS=nを使用していた場合、Oracle Data PumpインポートはEXCLUDE=OBJECT_GRANTパラメータを使用します。

オリジナルのインポートでGRANTS=yを使用していた場合、そのパラメータは無視されます。その指定はOracle Data Pumpインポートのデフォルトの動作であるため、再マップする必要はありません。

IGNORE

オリジナルのインポートでIGNORE=yを使用していた場合、Oracle Data PumpインポートはTABLE_EXISTS_ACTION=APPENDパラメータを使用します。これにより、表データの処理が続行されます。

オリジナルのインポートでIGNORE=nを使用していた場合、そのパラメータは無視されます。その指定はOracle Data Pumpインポートのデフォルトの動作であるため、再マップする必要はありません。

INDEXES

オリジナルのインポートでINDEXES=nを使用していた場合、Oracle Data PumpインポートはEXCLUDE=INDEXパラメータを使用します。

オリジナルのインポートでINDEXES=yを使用していた場合、そのパラメータは無視されます。その指定はOracle Data Pumpインポートのデフォルトの動作であるため、再マップする必要はありません。

INDEXFILE

Oracle Data PumpインポートのSQLFILE={directory-object:}filenameおよびINCLUDE=INDEXパラメータが使用されます。

FILEパラメータに対してディレクトリ・オブジェクトを検索する場合の方法と手順が、INDEXFILEパラメータに対しても同様に適用されます。

オリジナルのインポートでディレクトリ・オブジェクトが指定されていなかった場合は、DIRECTORYパラメータで指定されたディレクトリ・オブジェクトがOracle Data Pumpインポートで使用されます。

LOG

Oracle Data Pumpインポートは、LOGパラメータに対する指定パスまたはデフォルト・パスを確認します。また、スキーマに読取りおよび書込みアクセス権があるディレクトリ・オブジェクトの有無も確認します。

ログ・ファイルの内容は、Oracle Data Pumpインポート操作の内容になります。

RECORDLENGTH

このパラメータは無視されます。Oracle Data Pumpの場合、レコード長に関する問題が内部で処理されるためです。

RESUMABLE

このパラメータは無視されます。この機能はIMP_FULL_DATABASEロールを付与されているユーザーに対して自動的に提供されます。

RESUMABLE_NAME

このパラメータは無視されます。この機能はIMP_FULL_DATABASEロールを付与されているユーザーに対して自動的に提供されます。

RESUMABLE_TIMEOUT

このパラメータは無視されます。この機能はIMP_FULL_DATABASEロールを付与されているユーザーに対して自動的に提供されます。

ROWS=N

オリジナルのインポートでROWS=nを使用していた場合、Oracle Data PumpインポートはCONTENT=METADATA_ONLYパラメータを使用します。

オリジナルのインポートでROWS=yを使用していた場合、Oracle Data PumpインポートはCONTENT=ALLパラメータを使用します。

SHOW

SHOW=yが指定されている場合、Oracle Data PumpインポートのパラメータSQLFILE=[directory_object:]file_nameを使用して、インポート操作のDDLがファイルに書き込まれます。指定ファイルには、(ダンプ・ファイルの全体の内容ではなく)DDLのみが書き込まれます。(これはオリジナルのインポートです。そのため、画面に出力は表示されません。)

指定されたファイル名は、DUMPFILEパラメータ(またはDUMPFILEに再マップされる、オリジナルのインポートのFILEパラメータ)で指定された名前になります。指定されているダンプ・ファイル名が複数ある場合は、最初に指定されているファイル名が使用されます。ファイルは、DIRECTORYパラメータで指定されたディレクトリ・オブジェクトの場所か、DUMPFILEパラメータに含まれるディレクトリ・オブジェクトに配置されます。(DUMPFILEパラメータで指定されたディレクトリ・オブジェクトが優先されます。)

STATISTICS

このパラメータは無視されます。統計は、Oracle Data Pumpインポート操作の一環として、表に対して常に保存されます。

STREAMS_CONFIGURATION

このパラメータは無視されます。この値はOracle Data Pumpインポートによって自動的に決定されるため、指定する必要がないからです。

STREAMS_INSTANTIATION

このパラメータは無視されます。この値はOracle Data Pumpインポートによって自動的に決定されるため、指定する必要がないからです

TABLESPACES

オリジナルのインポートでTRANSPORT_TABLESPACE=n(デフォルト)も指定されていた場合、Oracle Data PumpインポートはTABLESPACESパラメータを無視します。

オリジナルのインポートでTRANSPORT_TABLESPACE=yも指定していた場合、Oracle Data Pumpインポートは、このTABLESPACESパラメータに対して指定されていた名前を、Oracle Data PumpインポートのTRANSPORT_TABLESPACESパラメータに適用します。

TOID_NOVALIDATE

このパラメータは無視されます。型比較に、OIDは使用されなくなりました。

TOUSER

Oracle Data PumpインポートのREMAP_SCHEMAパラメータが使用されます。オリジナルのインポートより多くのオブジェクトをインポートできます。また、ターゲットのスキーマがまだ存在していない場合は、Oracle Data Pumpインポートで作成することもできます。

FROMUSERパラメータもオリジナルのインポートで指定されている必要があります。FROMUSERが元々指定されていなかった場合、操作は失敗します。

TRANSPORT_TABLESPACE

TRANSPORT_TABLESPACEパラメータは無視されますが、DATAFILESパラメータも指定した場合、インポート・ジョブはメタデータのロードを続行します。DATAFILESパラメータを指定しない場合、ORA-39002:invalid operationエラー・メッセージが返されます。

TTS_OWNERS

このパラメータは無視されます。この情報がOracle Data Pumpのダンプ・ファイル・セットに自動的に保存されるためです。

VOLSIZE

オリジナルのインポートでVOLSIZEパラメータが使用されている場合、それはダンプ・ファイルの指定場所がテープ・デバイスであることを意味します。テープ・デバイスは、Oracle Data Pumpインポートのダンプ・ファイル形式でサポートされていません。したがって、この操作はエラーが発生して終了します。

4.3 Oracle Data Pumpレガシー・モードでのファイルの場所の管理

オリジナルのバージョンはクライアントベース、データ・ポンプはサーバーベースであるため、オリジナルのエクスポートとインポート、およびOracle Data Pumpエクスポートとインポートは、ダンプ・ファイルとログ・ファイルの書込み/読取りを実行できる場所によって異なります。

オリジナルのエクスポートおよびインポートでは、FILEパラメータとLOGパラメータを使用して、それぞれダンプ・ファイル名とログ・ファイル名を指定しました。これらのファイル名は常にクライアント・システムに対してローカルなファイルを参照します。パス指定を含めることもできます。

Oracle Data Pumpエクスポートおよびインポートは、DUMPFILEパラメータとLOGFILEパラメータを使用して、それぞれダンプ・ファイル名とログ・ファイル名を指定しました。これらのファイル名は常にサーバー・システムに対してローカルなファイルを参照し、パス情報を含めることはできません。かわりに、ディレクトリ・オブジェクトを使用して、パス情報を間接的に指定します。ディレクトリ・オブジェクトによって定義されるパス値は、サーバーからアクセスできる必要があります。ディレクトリ・オブジェクトは、Oracle Data Pumpジョブ用にDIRECTORYパラメータを使用して指定されます。DUMPFILEパラメータおよびLOGFILEパラメータに渡されるファイル名にディレクトリ・オブジェクトを付加することもできます。Oracle Data Pumpを使用する特権ユーザーは、ディレクトリ・オブジェクトがコマンドラインで指定されていない場合に、デフォルト・ディレクトリ・オブジェクトを使用できます。このデフォルトのディレクトリ・オブジェクトDATA_PUMP_DIRは、インストール時に設定されます。

Oracle Data Pumpのレガシー・モードを有効にし、オリジナルのエクスポートのFILE=filespecパラメータまたはLOG=filespecパラメータ(あるいはその両方)をコマンドラインに指定すると、次の優先順位ルールを使用して、ファイルの場所が決まります。

  • コマンドラインにFILEパラメータとLOGパラメータの両方を指定した場合は、優先順位ルールがそれぞれのパラメータに個別に適用されます。

  • オリジナルのエクスポート/インポートとOracle Data Pumpエクスポート/インポートのパラメータが混在する場合は、それぞれに個別のルールが適用されます。

    たとえば、次のコマンドを指定したとします。

    expdp system FILE=/user/disk/foo.dmp LOGFILE=foo.log DIRECTORY=dpump_dir
    

    この場合、この項で説明したとおり、Oracle Data Pumpのレガシー・モードによるファイル管理ルールが、FILEパラメータに適用されます。ダンプ、ログおよびSQLファイルのデフォルトの場所に関する通常の(レガシー・モードではない)Oracle Data Pumpのファイル管理ルールは、LOGFILEパラメータに適用されます。

例4-1 適用されるOracle Data Pumpのレガシー・モードによるファイル管理ルール

ファイル管理は次の順序で進行します。

  1. パスの位置がファイル指定の一部として指定されると、Oracle Data Pumpはエクスポート・ジョブを実行するスキーマからアクセスでき、そのパスの位置がファイル指定でのパスの位置に一致するディレクトリ・オブジェクトの検索を試行します。そのようなディレクトリ・オブジェクトが見つからないと、エラーが返されます。たとえば、USER_DUMP_FILESという名前のサーバーベースのディレクトリ・オブジェクトを'/disk1/user1/dumpfiles/'のパス値とともに定義し、このディレクトリ・オブジェクトへの読取り/書込みアクセス権限をhrスキーマに付与するとします。次のコマンドを実行すると、Oracle Data Pumpはそのパス値に'/disk1/user1/dumpfiles/'が含まれ、そのhrスキーマに読取り/書込みアクセス権限が付与されているサーバーベースのディレクトリ・オブジェクトを検索します。

    expdp hr FILE=/disk1/user1/dumpfiles/hrdata.dmp
    

    その場合、Oracle Data Pumpはディレクトリ・オブジェクトUSER_DUMP_FILESを使用します。この例で使用されているパス値'/disk1/user1/dumpfiles/'は、Oracle Databaseからアクセスできるサーバー・システム上のパスを参照している必要があります。

    パスの位置がファイル指定の一部として指定されている場合は、DIRECTORYパラメータで指定されたディレクトリ・オブジェクトが無視されます。たとえば、次のコマンドを実行すると、Oracle Data Pumpはファイル・パラメータのDPUMP_DIRディレクトリ・オブジェクトを使用せず、かわりにそのパス値に'/disk1/user1/dumpfiles/'が含まれ、そのhrスキーマに読取り/書込みアクセス権限が付与されているサーバーベースのディレクトリ・オブジェクトを探します。

    expdp hr FILE=/disk1/user1/dumpfiles/hrdata.dmp DIRECTORY=dpump_dir
    
  2. パスの位置をファイル指定の一部として指定していない場合は、DIRECTORYパラメータに指定されたディレクトリ・オブジェクトが使用されます。たとえば、次のコマンドを実行すると、Oracle Data PumpはDPUMP_DIRディレクトリ・オブジェクト用に定義されたパスの位置をhrdata.dmpファイルに適用します。

    expdp hr FILE=hrdata.dmp DIRECTORY=dpump_dir
    
  3. ファイル指定の一部としてパスの場所を指定せず、DIRECTORYパラメータでディレクトリ・オブジェクトの名前を指定していない場合、Oracle Data Pumpは次の順序で、次の処理を実行します。

    1. Oracle Data PumpはDATA_PUMP_DIR_schema_nameという形式のディレクトリ・オブジェクトを検索します。ここでのschema_nameは、Oracle Data Pumpジョブを実行するスキーマです。たとえば、次のコマンドを実行すると、Oracle Data PumpはDATA_PUMP_DIR_HRという名前のサーバーベースのディレクトリ・オブジェクトの存在を調べます。

      expdp hr FILE=hrdata.dmp
      

      また、hrスキーマには、このディレクトリ・オブジェクトへの読取り/書込みアクセス権限が付与されている必要があります。そのようなディレクトリ・オブジェクトが存在しないとき、処理はステップbに進みます。

    2. Oracle Data Pumpは、クライアントベースの環境変数DATA_PUMP_DIRを検索します。たとえば、DUMP_FILES1という名前のサーバーベースのディレクトリ・オブジェクトが定義されていて、hrスキーマにそのオブジェクトへの読取り/書込みアクセス権限が付与されているとします。その場合は、クライアント・システムで、次のようにDUMP_FILES1を指すように環境変数DATA_PUMP_DIRを設定します。

      setenv DATA_PUMP_DIR DUMP_FILES1
      expdp hr FILE=hrdata.dmp
      

      Oracle Data Pumpは、次にサーバーベースのディレクトリ・オブジェクトDUMP_FILES1hrdata.dmpファイルに対して使用します。

      クライアントベースの環境変数DATA_PUMP_DIRが存在しないとき、処理はステップcに進みます。

    3. Oracle Data Pumpジョブを実行するスキーマにDBA権限があると、デフォルトのOracle Data Pumpディレクトリ・オブジェクトDATA_PUMP_DIRが使用されます。このデフォルトのディレクトリ・オブジェクトは、インストール時に設定されます。たとえば、次のコマンドを実行すると、Oracle Data PumpはシステムにDBA権限があるとみなし、デフォルトのDATA_PUMP_DIRディレクトリ・オブジェクトを使用しようとします。

      expdp system FILE=hrdata.dmp

4.4 Oracle Data Pumpのログ・ファイルとエラーに対する既存のスクリプトの調整

Oracle Data Pumpをレガシー・モードで使用する場合は、オリジナルのエクスポートおよびインポート用に作成された既存のスクリプトを確認し、更新する必要があります

Oracle Data Pumpのレガシー・モードでは、ファイル形式とエラー報告が異なるため、既存のスクリプトを調整する必要があります。

4.4.1 ログ・ファイル

Oracle Data Pumpのエクスポートおよびインポートで作成されるログ・ファイルは、オリジナルのエクスポートおよびインポートとは形式が異なります。

オリジナルのエクスポートおよびインポートの出力を解析するスクリプトを更新して、Oracle Data Pumpエクスポートおよびインポートで使用されるログ・ファイル形式を処理する必要があります。たとえば、「Successfully Terminated」というメッセージは、Oracle Data Pumpのログ・ファイルには表示されません。

4.4.2 エラー・ケース

Oracle Data Pumpエクスポートおよびインポートで生成されるエラーは、オリジナルのエクスポートおよびインポートによって生成されるエラーとは異なる場合があります。

たとえば、Oracle Data Pumpエクスポートによって無視されるパラメータが、オリジナルのエクスポートで範囲外の値を生成するとします。その場合、パラメータが無視されていることを示す情報メッセージがログ・ファイルに書き込まれます。ただし、値のチェックは実行されないため、エラー・メッセージは生成されません。

4.4.3 終了状態

Oracle Data Pumpエクスポートおよびインポートには、エクスポート・ジョブとインポート・ジョブの成功または失敗をスクリプトでより適切に判定できるようにするための、拡張された終了状態の値があります。

Oracle Data Pumpのエクスポートとインポートの終了ステータス値が異なる可能性があるため、終了ステータスを確認するスクリプトを調べて、必要に応じて更新することをお薦めします。