経緯
この度Oracleを最新版に移行する作業があり、
移行後のデータベースから exp コマンドでエクスポートしたファイルを、
移行後のデータベースへ imp コマンドでインポートしようとすると、
表が作成されない等のエラーが発生し正常にリストアできませんでした。
sql
1exp user/pass@HOGE owner=HOGE direct=y file=HOGE.dmp 2 3--ユーザDROP & CREATE 処理-- 4 5imp user/pass@HOGE fromuser=HOGE touser=HOGE file=HOGE.dmp ignore=y
そこで、【RP Dump Browser Free for Oracle】というソフトでエクスポートしたDMPファイルを解析したところ、
「failed in parsing」「failed in analyzing dumpfile」等と、ファイルが破損している可能性が高いことがわかりました。
また、direct=yオプションを利用した場合に、
エクスポートしたDMPファイルが破損する場合もあるらしい。。。というのもわかりました。
スレッド: exp結果のファイルが壊れている
そこでdirect=yオプションを外したDMPファイルをインポートすると、
正常にインポート出来てしまいました。
実現したいこと
ここからが本題なのですが、
なぜDMPファイルが破損してしまうのかを調べる方法はあるのでしょうか?
たまたま破損したというわけではなく、
何度エクスポートを行っても必ず破損したDMPファイルが作成されるため、
データベースの状態に問題があるのだろうと推測するのですが、
どこをどう調査したら良いのか入口すらわからない状態です。
環境
[新環境]
Oracle Database 12.2.0.1.0 Enterprise Edition
[旧環境]
Oracle Database 12.1.0.2.0 Standard Edition
[旧環境] exp direct=y でエクスポートしたファイルを、
[新環境] impコマンドで正常にインポートが完了した状態。
試したこと
- [新環境]で [exp direct=y -> imp]はエラーが発生し、中途半端にリストアされる。(表が抜け落
ちる)
- [新環境]で [exp direct=n -> imp]にてリストアは出来た。
- [新環境]で [expdp -> impdp]にてリストアは出来た。
- [旧環境]で「exp direct=y -> imp」の処理を行ってもエラーとはならない。
- [旧環境]のどの時点のDMPファイルを[新環境]へインポートしても、[新環境]から[exp direct=y]でエクスポートされたDMPファイルは破損する。
追記
- [新環境]の12EEをアンインストールし12SE(12.2.0.1.0)をインストール、
[旧環境]データをimp 後に、[exp direct=y -> imp]するとリストアは出来た。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/04 05:44 編集
2018/04/04 06:10 編集
2018/04/04 06:46 編集
2018/04/04 07:28
2018/04/04 07:36
2018/04/04 08:12 編集
2018/04/04 08:24 編集