フラッシュバック


フラッシュバックについては、いろいろ細かく覚えていないところがあるので頭に正確に入ってないところをピックアップしてメモ。(順番は適当です。)
11gと10gの機能で混ざってるみたいなので、一応分けて学習してみる。

 
Oracle11g

フラッシュバックデータアーカイブ

  自動UNDO管理である必要あり。
  CREATE FLASHBACK ARCHIVE+TABLESPACE+QUOTA+RETENTION
  システムにデフォルトのフラッシュバックデータアーカイブを指定可能。
  名前を指定する必要がある。
  1番目の表領域の名前を指定する必要がある。
  表領域内で使用できるサイズを指定可能。(デフォルトは無制限)
  保存期間を指定する必要がある。
  フラッシュバックデータアーカイブを作成し、有効化。
   MOUNT EXCLUSIVEモード
  AS OF問い合わせで履歴を表示。


★領域の使用量90%でアラートログ生成。追跡の一時停止。
★INSERT INTO table名 SELECT ・・・ AS OF で選択データのリカバリを実行。


×DDL制限事項

 ・列の削除
 ・名前変更
 ・属性変更
 ・パーティション化、サブパーティション
 ・LONG列をLOB列に変更
 ・UPGRADE TABLE
 ・DROP TABLE
 ・TRUNCATE TABLE


★問い合わせる前に、必ずCOMMITかROLLBACKを行う。


★フラッシュバックトランザクションバックアウト

 ・UNDO、REDOログ、サプリメンタルロギングを使用する。
 ・ユーザがCOMMITもしくはROLLBACKする。
 ×競合するDDL間はサポートしない。

  

★LogMiner
 UNDO、REDOログ、サプリメンタルロギングを使用する。
 ログ検索。
 監査ツール。
 REDOログへの直接アクセス。
  

Oracle10g


★権限の付与

 フラッシュバックデータベース
  ・SYSDBA接続
 フラッシュバックテーブル・バージョン問合せ
  ・FLASHBACK ANY TABLE
  ・適切なオブジェクト権限
 フラッシュバックトランザクション問合せ
  ・SELECT ANY TRANSACTION


★フラッシュバックバージョン問合せ
 2つの時点間のすべての行バージョンと、変更したトランザクションを特定する。


★フラッシュバックデータベース

  ★ARCHIVELOGモード、フラッシュリカバリ領域、フラッシュバックロギングの有効化が必要。
  ★フラッシュバックデータベースをOFFにすると、すべてのフラッシュバックデータベースログが削除される。
  ×オープン中にはOFFにできない。
  ×フラッシュバックデータベースを実行できない場合。
   ・制御ファイルがリストア、もしくは再作成されている場合。
   ・表領域が削除されている場合。
   ・データファイルが縮小されている場合。


★フラッシュバックテーブル

 ★影響を受ける表で行移動を有効にしておく必要がある。(ENABLE ROW MOVEMENT)
 ★トリガーはフラッシュバック操作中は無効になり、終わると有効になる。
 ★DMLの排他ロックを取得する。
 ★操作はアラートログに記録される。
 ×複数のDDLにまたがれない。
 ×システム表には実行できない。
 ×統計はフラッシュバックされない。
 ○現行の索引と依存オブジェクトは維持される。


★フラッシュバックドロップ

 DROPした表をゴミ箱から復元する。
 RECYCLEBIN初期化パラメータON
 ○保護される表
  SYSTEM表領域以外の表
  ローカル管理表領域の表
  FGA、VPDを使用していない表
 ×保護されない依存オブジェクト
  ビットマップ結合索引
  マテリアライズドビューログ
  参照整合性制約
  表より前に削除された索引