「オペレーションでミスした。どうしようデータを元に戻さないと。orz」みたいなことがあった場合のデータ復旧方法(oracle)

オペレーションのミスで誤ってDBのデータを更新したことや削除してしまったことは、
Web開発をしている人を含め、特に運用業務をやったことがある人は経験があると思います。
そういう時に便利な小技としてoracleの”フラッシュバッククエリ”を使うと
過去のレコードを参照することができるので、即時のデータ復旧をすることができます。
※私は調査でも使ったことがあります。結構使えます。
注意点としては数時間経つと、参照できなくなってしまうことですね。
トラブルなどでDBのデータを元に戻さないといけない時は、即座に更新前のバックアップを取ることが重要だと思います。

フラッシュバッククエリの使い方

<1.時間を指定する場合>
指定した時間のデータの状態を参照することができるので非常に便利

select
  *
from
  m_customer
as of timestamp to_timestamp(‘2013/01/30 11:30:00′,’YYYY/MM/DD HH24:MI:SS’);

<2.現在から指定した時間前で指定する場合>
基本的には1.を使えば良いと思います。

select
  *
from
  m_customer
as of timestamp (systimestamp – interval ‘1’ minute );
↑hourやdayでも指定可能。
例)
as of timestamp (systimestamp – interval ‘1’ hour );
as of timestamp (systimestamp – interval ‘1’ day );

トラブル時のデータを復旧などに利用してみてください。
このクエリに対して非常に感謝すると思います。(^^)y

スポンサードリンク