• 締切済み

Oracle インスタンスの exp について

Oracle9iR2(9.2.0.8) EE を使用しています。(OS は HP-UX 64bit) テストの為、開発環境でインスタンスの定義の exp を行ったところ数分で終了しました。 ところが、いざ本番環境で同様の作業を行ったところ、3時間以上たっても終了しませんでした。 この2環境の差 ・初期化パラメータの差はアーカイブログモードか否か。(本番がアーカイブログモード) ・データ量が本番(150GB程度) >> 開発(30GB程度) 本番環境での exp 中 40MB 程度の dmp を出力するのに 60GB 程度のアーカイブログを出力しており、 event を確認すると log file sync が頻繁に発生していました。 (サイズは中断したので最終的にはもっと増える可能性が有りました。) 作業中 DB アクセスは本 exp のみで他の作業は行っていませんでした。 また、本作業中サーバの vmstat を確認していたのですが、ほぼ常時 idle 80% を占めていました。 disk 上の空容量も十分にある状態でした。 実行した exp のコマンドは下記のとおりです。(開発、本番両環境共) exp system/password@sid file=instance_def.dmp log=instance_def.log full=y compress=n rows=n direct=y 上記 exp コマンドのパフォーマンス劣化を解消する方法についてご教示願います。 インスタンスの設定を no archive log モードに変更する必要が有ったのでしょうか? または、他に何か懸念される設定や、データ量の差等の影響が有りますでしょうか。 よろしくお願いいたします。

みんなの回答

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

ディスクI/O が遅いとかそんなことはないでしょうか? vmstat, iostat, sar などでexp 中に出力先のディスク・ボリュームの稼働状況 に問題がないかチェックしてみてください。 > 作業中 DB アクセスは本 exp のみで他の作業は行っていませんでした。 No.1 の方が指摘されていますが、それは考えにくいですね。 log file sync が頻繁しているということはトランザクションが存在していることを 意味しているからです。 業務をやっていなかったということであれば、統計情報取得などのバックグラウンド ・ジョブやバッチ処理の実行時間と被っていなかったか確認が必要です。 > インスタンスの設定を no archive log モードに変更する必要が有ったのでしょ > うか? ありません。それよりも、リスナー経由にしなければならない理由があったので しょうか? ローカル接続の方が fork だけで済むのでオーバーヘッドが少ない でしょう。 exp system/password file=instance_def.dmp log=instance_def.log full=y \ compress=n rows=n direct=y

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 先ず、exp 時に対象DB をNo Archive Log モードに変更する必要はありません。 > 作業中 DB アクセスは本 exp のみで他の作業は行っていませんでした。 この状態で、3時間で60GB もArchive Log が出力される事は 考えにくいです。 Archive Log はDB 更新が行われている証拠です。 > event を確認すると log file sync が頻繁に発生していました。 これは、Commit/Rollback によるものです。 この事も、exp 以外の処理が行われていた事を示しています。 > exp system/password@sid ・・・ @sid の指定が気になります。 tnsnames.ora の指定によっては、意図しないインスタンスに接続して exp が実行されている可能性があります。