読者です 読者をやめる 読者になる 読者になる

山下寛人オフィシャルブログ

オイシックス株式会社 執行役員 システム本部長 山下寛人の公式ブログです。

Oracle LogMiner

しまった!間違えてデータを消してしまった!という時でもOracleならデータを戻せます。フルバックアップやエクスポート、レプリケーションならだいたいどのDBMSでもありますが1週間前に間違えて削除したデータを戻したいといったときにちょうど1週間前のデータがあるかどうかはバックアップを残していたかどうか次第です。いろんな時点のデータを残そうとしたらディスク容量が実際に使う量の何倍も必要になってしまいます。

Oracleの場合ですとLogMinerというものがあり、アーカイブログを解析して過去に実行したSQLのREDOやUNDOができます。

イメージはこちらのページをごらんください。
Using Oracle LogMiner to undo incorrectly committed changes

おおまかな流れとしてはDBMS_LOGMNRというPL/SQLを使ってアーカイブログを解析します。するとV$LOGMNR_CONTENTSというテーブルに解析結果が入るのでSQLを使ってSQL_REDOやSQL_UNDOを取り出します。素晴らしい。

アーカイブログを使う方式なのでファイルが残っている限り遡れます。またファイルさえあれば任意の時点のUNDOができます。