Data Pumpを利用してOracle 11g R2からexpdpで取得したバックアップを、10g R2にimpdpで移行しようとしたところエラーとなってしまいました。(そもそも11gから10gが無理あるような‥)
$ impdp mentaiko/mentaiko directory=EXPDP_DIR dumpfile=mentaiko.expdp.dump logfile=EXPDP_DIR:mentaiko.log job_name=job_impdp1 ORA-39001: 引数値が無効です ORA-39000: ダンプ・ファイル指定が無効です ORA-39142: 互換性のないバージョン番号3.1が、ダンプ・ファイル"/opt/oracle/oradata/expdp/mentaiko.expdp.dump"内にあります
ORA-39142による互換性エラーの場合、expdpの段階でVERSIONオプションを指定してどの下位バージョンのOracleにデータをインポートしたいかを事前に明記しておく必要があります。
Oracle Database ユーティリティ10g リリース2(10.2)
エクスポートするデータベース・オブジェクトのバージョンを指定します。このパラメータは、以前のリリースのOracleデータベースと互換性のあるダンプ・ファイル・セットの作成に使用できます。なお、これは、10.1より前のバージョンのOracle DatabaseでData Pump Exportが使用可能ということではありません。Data Pump Exportは、Oracle Database 10g リリース1(10.1)以降でのみ動作します。VERSIONパラメータを使用して可能になるのは、エクスポートするオブジェクトのバージョンの識別のみです。
で、実際のexpdpコマンドは下記のようになります。
$ expdp mentaiko/mentaiko directory=DUMPDIR dumpfile=mentaiko.expdp.dump logfile=DUMPDIR:20130702_mentaiko.log job_name=job_expdp1 VERSION=10.2.0
これで問題なくimpdpにてインポートができるようになりました。
[…] を追加します。 Data Pumpの注意点。下位バージョンへデータを移行する際はVERSIONパラメータによ…http://www.steponboard.net/oracle/95/Data Pumpを利用してOracle 11g R2からexpdpで取得したバック […]