DBエンジニアの備忘ブログ

Oracleを扱っています。自身の備忘として記事を書いていこうかなと思っています。

【Oracle】本当にあった怖い話②【DataPump】

はじめに

Oracle のサポートをしていると、障害が発生して初めてバックアップを使用するということがよくあります。バックアップに関して、あまり知識をもって運用していなかったがために発生した怖い話を紹介します(実際にあった話です)。これを機に、バックアップの重要性を理解してくれる人が一人でも増えたらうれしいです。

エピソード② バックアップデータが...

間違って update を実行し、表の全件を誤更新してしまい復旧したいとお問い合わせいただきました。ちょっと時間がたってしまったため、フラッシュバックテーブルは使えず、日次で取得しているというダンプファイルからの復旧となりました。
大まかなインポートの手順を案内したところ、エラーが発生したので、対処方法を教えてほしいとご連絡いただきました。
ログをご提供いただき、エラーとなったコマンドを確認したところ、以下となっていました。

impdp system/<PW> dumpfile=dump_YYYYMMDD.dmp logfile=dump_YYYYMMDD.dmp

オチ

logfile には、インポート実行時の出力ログを指定する必要がありますが、インポート対象のダンプファイルと同じファイルを指定してしまっています。
この場合、ダンプファイルがログに上書きされてしまい、インポートに失敗しつつ、バックアップであるダンプのデータも消えてしまうことになります。
※上書きされてしまうのは 12.1 までの動作のようです。