4 Oracle Data Pumpのレガシー・モード
Oracle Data Pumpのレガシー・モードでは、Oracle Data Pumpエクスポートとデータ・ポンプ・インポートのコマンドラインで、オリジナルのエクスポート・パラメータとインポート・パラメータを使用できます。
- Oracle Data Pumpのレガシー・モードのユースケース
Oracle Data Pumpは、レガシーのエクスポートまたはインポート・パラメータが検出されるとレガシー・モードになります。そのため、既存のスクリプトを引き続き使用できます。 - パラメータのマッピング
オリジナルのOracleエクスポートおよびインポート・パラメータと、Oracle Data Pumpエクスポートおよびデータ・ポンプ・インポートの同様の機能を持つパラメータとのマッピング関係について説明します。 - Oracle Data Pumpレガシー・モードでのファイルの場所の管理
オリジナルのエクスポートおよびインポートとOracle Data Pump ExportおよびOracle Data Pump Importでは、ダンプ・ファイルとログ・ファイルの書込み/読取りが可能な場所が異なります。これは、オリジナル・バージョンはクライアントベースであり、データ・ポンプはサーバーベースであるためです。 - 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
)は使用できません。
親トピック: Oracle Data Pumpのレガシー・モード
4.2 パラメータのマッピング
オリジナルのOracleエクスポートおよびインポート・パラメータと、Oracle Data Pumpエクスポートおよびデータ・ポンプ・インポートの同様の機能を持つパラメータとのマッピング関係について説明します。
- Oracle Data Pumpでのオリジナルのエクスポート・パラメータの使用
対応するOracle Data Pumpパラメータにマップするオリジナルのエクスポート・パラメータがある場合は、そのエクスポート・パラメータをOracle Data Pumpエクスポートで使用できます。 - Oracle Data Pumpでのオリジナルのインポート・パラメータの使用
Oracle Data Pumpパラメータにマップするオリジナルのインポート・パラメータがある場合は、そのインポート・パラメータをOracle Data Pumpインポートで使用できます。
親トピック: 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エクスポートでのオリジナルのエクスポート・パラメータの扱い
オリジナルのエクスポート・パラメータ | データ・ポンプ・エクスポート・パラメータでの処理 |
---|---|
|
このパラメータは無視されます。 |
|
このパラメータは無視されます。オリジナルのエクスポートの場合、 Oracle Data Pumpエクスポートの |
|
Oracle Data Pumpエクスポートは現在の時刻を確認して、 |
|
オリジナルのエクスポートで デフォルトの動作では、制約がエクスポートに含まれます。 |
|
このパラメータは無視されます。Oracle Data Pumpエクスポートでは、最適なエクスポート方法が自動的に選択されます。 |
|
Oracle Data Pumpエクスポートの オリジナルのエクスポートでは、一定の行数( |
|
Oracle Data Pumpエクスポートは、 |
|
オリジナルのエクスポートで オリジナルのエクスポートで |
|
オリジナルのエクスポートで オリジナルのエクスポートで |
|
Oracle Data Pumpエクスポートは、 オリジナルのエクスポートおよびインポートとOracle Data Pumpエクスポートおよびインポートでは、ダンプ・ファイルとログ・ファイルの書込み/読取りが可能な場所が異なります。これは、オリジナル・バージョンはクライアントベースであり、データ・ポンプはサーバーベースであるためです。 ログ・ファイルの内容は、Oracle Data Pumpエクスポート操作の内容になります。 |
|
このパラメータは無視されます。Oracle Data Pumpエクスポートの処理では、エクスポートされる各オブジェクトの状態に一貫性があることが保証されています。 |
|
Oracle Data Pumpの |
|
このパラメータは無視されます。Oracle Data Pumpエクスポートでは、バッファ・サイズが自動的に調整されるためです。 |
|
このパラメータは無視されます。Oracle Data Pumpエクスポートの場合、この機能は |
|
このパラメータは無視されます。Oracle Data Pumpエクスポートの場合、この機能は |
|
このパラメータは無視されます。Oracle Data Pumpエクスポートの場合、この機能は |
|
オリジナルのエクスポートで オリジナルのエクスポートで |
|
このパラメータは無視されます。統計は、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インポート・パラメータでの処理 |
---|---|
|
このパラメータは無視されます。 |
|
このパラメータは、数リリース前からサポートされなくなりました。今後は使用しないでください。このサポートされていないパラメータを使用しようとすると、Oracle Data Pumpの操作が中止されます。 |
|
このパラメータは無視されます。Oracle Data Pumpインポートでは、表の処理が終了するたびにコミットが自動的に実行されます。 |
|
このパラメータは無視されます。Oracle Data Pumpインポートでは、プロシージャの作成後にコンパイルが実行されます。依存関係に必要な場合は、再コンパイルを実行できます。 |
|
オリジナルのインポートで オリジナルのインポートで |
|
Oracle Data Pumpインポートの |
|
オリジナルのインポートで オリジナルのインポートで |
|
Oracle Data Pumpインポートの オリジナルのインポートでは、一定の行数( |
|
Oracle Data Pumpインポートは、 オリジナルのバージョンはクライアントベース、データ・ポンプはサーバーベースであるため、オリジナルのエクスポートとインポート、およびデータ・ポンプ・エクスポートとデータ・ポンプ・インポートは、ダンプ・ファイルとログ・ファイルの書込み/読取りを行える場所によって異なります。 |
|
このパラメータは無視されます。この情報がOracle Data Pumpのダンプ・ファイル・セットにすでに含まれているからです。 |
|
Oracle Data Pumpインポートの |
|
オリジナルのインポートで オリジナルのインポートで |
|
オリジナルのインポートで オリジナルのインポートで |
|
オリジナルのインポートで オリジナルのインポートで |
|
Oracle Data Pumpインポートの
オリジナルのインポートでディレクトリ・オブジェクトが指定されていなかった場合は、 |
|
Oracle Data Pumpインポートは、 ログ・ファイルの内容は、Oracle Data Pumpインポート操作の内容になります。 |
|
このパラメータは無視されます。Oracle Data Pumpの場合、レコード長に関する問題が内部で処理されるためです。 |
|
このパラメータは無視されます。この機能は |
|
このパラメータは無視されます。この機能は |
|
このパラメータは無視されます。この機能は |
|
オリジナルのインポートで オリジナルのインポートで |
|
指定されたファイル名は、 |
|
このパラメータは無視されます。統計は、Oracle Data Pumpインポート操作の一環として、表に対して常に保存されます。 |
|
このパラメータは無視されます。この値はOracle Data Pumpインポートによって自動的に決定されるため、指定する必要がないからです。 |
|
このパラメータは無視されます。この値はOracle Data Pumpインポートによって自動的に決定されるため、指定する必要がないからです |
|
オリジナルのインポートで オリジナルのインポートで |
|
このパラメータは無視されます。型比較に、OIDは使用されなくなりました。 |
|
Oracle Data Pumpインポートの
|
|
|
|
このパラメータは無視されます。この情報が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のレガシー・モードによるファイル管理ルール
ファイル管理は次の順序で進行します。
-
パスの位置がファイル指定の一部として指定されると、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
-
パスの位置をファイル指定の一部として指定していない場合は、
DIRECTORY
パラメータに指定されたディレクトリ・オブジェクトが使用されます。たとえば、次のコマンドを実行すると、Oracle Data PumpはDPUMP_DIR
ディレクトリ・オブジェクト用に定義されたパスの位置をhrdata.dmp
ファイルに適用します。expdp hr FILE=hrdata.dmp DIRECTORY=dpump_dir
-
ファイル指定の一部としてパスの場所を指定せず、
DIRECTORY
パラメータでディレクトリ・オブジェクトの名前を指定していない場合、Oracle Data Pumpは次の順序で、次の処理を実行します。-
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に進みます。 -
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_FILES1
をhrdata.dmp
ファイルに対して使用します。クライアントベースの環境変数
DATA_PUMP_DIR
が存在しないとき、処理はステップcに進みます。 -
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のレガシー・モードでは、ファイル形式とエラー報告が異なるため、既存のスクリプトを調整する必要があります。
- ログ・ファイル
Oracle Data Pumpのエクスポートおよびインポートで作成されるログ・ファイルは、オリジナルのエクスポートおよびインポートとは形式が異なります。 - エラー・ケース
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エクスポートによって無視されるパラメータが、オリジナルのエクスポートで範囲外の値を生成するとします。その場合、パラメータが無視されていることを示す情報メッセージがログ・ファイルに書き込まれます。ただし、値のチェックは実行されないため、エラー・メッセージは生成されません。