データベースに限らずバージョンは上がっていくものと思っているが、ひょんなことから、Oracleでエクスポートしたデータを下位バージョンでインポートした時のお話です。
結論から言うと、エラーが発生してインポートに失敗しました。
目次
impdpコマンドでインポート
OSはWindows 10で、Oracle 12.2系でエクスポートしたdumpファイルを、impdpコマンドを利用して12.1系にインポートしました。
1 |
impdp system/MANAGER@192.168.XXX.XXXX/ORADB directory=DUMP_DIR dumpfile=sample.dump logfile=sample.log table_exists_action=replace |
impdp
コマンドの使い方を知りたい方はググってくださいな。
エラー内容
上記のコマンドを実行すると以下のようなエラーが出ました。
1 2 3 4 5 |
接続先: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options ORA-39001: 引数値が無効です ORA-39000: ダンプ・ファイル指定が無効です ORA-39142: 互換性のないバージョン番号5.1が、ダンプ・ファイル"c:dumpsample.dump"内にあります |
これはインポートする前に、expdp
コマンドでエクスポートする際に事前にインポート先のOracleのバージョンを指定しとけよってことらしいです。
バージョンを指定してエクスポート
expdp
コマンドでバージョンを指定すには、VERSIONオプションを使用します。
今回は下位バージョンである12.1にデータをインポートしたいので、
1 |
VERSION=12.1.0 |
を追加します。
使用例
1 2 3 4 |
# before expdp system/MANAGER@192.168.XXX.XXXX/ORADB directory=DUMP_DIR dumpfile=sample.dump logfile=sample.log job_name=job_sample # after expdp system/MANAGER@192.168.XXX.XXXX/ORADB directory=DUMP_DIR dumpfile=sample.dump logfile=sample.log job_name=job_sample VERSION=12.1.0 |
これでめでたくインポートできました!
コメント