Let's大谷家 あんたの日記

Just another WordPress site

ORACLEエクスポート時に[EXP-00003]が発生した場合の対応(覚書)

      2014/10/18

ORACLE君でダンプ取ろうとしたら怒られたと騒いでる・・・
—————————————–
EXP-00003: セグメントに対する記憶域定義がありません(0,0)
エクスポートは正常に終了しましたが、警告が発生しました。
—————————————–
エラー内容調べたら、
「処置: 付随するメッセージを記録し、エクスポートの内部エラーとしてカスタマ・サポートに連絡してください。 」

うーん、いきなりサポートとかに電話かよー。
じゃ掛けてみる?と思ったけど、その前にGoogle先生に確認。
ググってみる。

単純な検索ワードだと上記しか出てこないので、チロッとコチョコチョしてググったら出てきました。
結果的には、以下のとおり。
難しく書くと自分でも分からないので、自分なりの解釈で噛み砕いた表現で既述。
そんなわけで間違っている可能性ありますが、そこはご愛嬌でw
指摘いただければありがたいです。

【原因】
・DEFERRED_SEGMENT_CREATION が「TRUE」設定されていた。
⇒[SHOW PARAMETER DEFERRED_SEGMENT_CREATION]で設定内容確認
⇒セグメント作成のタイミングを設定。
⇒「True」だと表作成タイミングではセグメント作成せず、データが入るタイミングで作成される。
⇒大量の表を一気に作り、かつ、しばらくデータを入れることがないような場合に「容量」と「インストール時間」節減のために利用。
・Oracle11gR2以降のデフォルトが「True」になっている。
・セグメントが作成されていないと、エクスポート時にこちらのエラーが発生する。

【回避策】
(1)DB作成時に上記設定を「FALSE」にする。
ただし、本当にその設定で運用出来るか?は要件により検討すること。
(2)初期移行で0レコードテーブルにダミーレコード突っ込んで消す。
美しくない・・・
データ初期移行で0レコードテーブルが存在しないようであれば問題なし。

運用始まったらバックアップでダンプ取ることがあると思うので、上記初期設定は意識して設定しておくべきですね。
とりあえず、お勉強になりました。
覚書として残しておきます。

なお、このあと続けて以下のエラーが発生。
—————————————–
EXP-00006: 内部矛盾エラーが発生しました。
エクスポートは正常に終了しましたが、警告が発生しました。
—————————————–
エラー内容調べたら、
「処置: 付随するメッセージを記録し、エクスポートの内部エラーとしてカスタマ・サポートに連絡してください。」

またかよ(/_;)
よくよく見たら、あるテーブルが超データ入りまくり。
ディスク容量見たら・・・ダンプ取れる用容量ないじゃん・・・
バックアップするディスク容量くらい、先に確認しておこうねwww

○参考ページ
ちなみに、この後、もう一つエラーが。。。
このexp/impは、10gまでの機能は網羅するけど、11gからは別のツールに置き換わった。

「DataPump」というらしい。
現在、ゴニョゴニョ使ってるけど、ローカルにファイル取って来られないとか、ダンプ取る場所も制限されていることから。セキュリティ面でメンテがわわ苦慮しております。
まあ、そこまでしなきゃ、

 - DB関連, プログラミング

ad

ad

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事