質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

受付中

expコマンド でエクスポートしたDMPファイルが破損する原因と、それを調査する方法

cha-ra
cha-ra

総合スコア40

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

2回答

0評価

0クリップ

770閲覧

投稿2018/04/04 03:00

編集2022/01/12 10:55

経緯

この度Oracleを最新版に移行する作業があり、
移行後のデータベースから exp コマンドでエクスポートしたファイルを、
移行後のデータベースへ imp コマンドでインポートしようとすると、
表が作成されない等のエラーが発生し正常にリストアできませんでした。

sql

exp user/pass@HOGE owner=HOGE direct=y file=HOGE.dmp --ユーザDROP & CREATE 処理-- imp 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]するとリストアは出来た。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Oracle Database

Oracle Databaseは、米オラクルが開発・販売を行うリレーショナルデータベース管理システムです。

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。