Flashback

Oracle Flashback は下記の三つ機能で構成されている

Flashback Database

Flashback Database

概要 データベースのロールバックセグメントの履歴をFlashback Areaに格納することで、過去の時点にデータベース全体を戻す機能である。

文法

FLASHBACK DATABASE 】データベースを以前の状態にリストアする
 
FLASHBACK [ STANDBY ] DATABASE [ データベース名 ] →
→ TO [ BEFORE ] { SCN | TIMESTAMP } 式 [ { ENABLE | DISABLE } TRIGGERS ] ;

詳細説明

サンプル

See Also

Flashback Query

Flashback Query

概要 UNDOテーブルスペースのRETENTION範囲内に(領域オーバーで消えることがあるが)、テーブルの履歴が確認できる。

文法

Flashback Version Query

select column_name
from table_name 
[VERSIONS BETWEEN TIMESTAMP [lower bound] AND [upper bound] 
| VERSIONS BETWEEN SCN [lower bound] AND [lower bound]];

Flashback Transaction Query

select column_name
from table_name 
[VERSIONS BETWEEN TIMESTAMP [lower bound] AND [upper bound] 
| VERSIONS BETWEEN SCN [lower bound] AND [lower bound]];

詳細説明

下記の仮想カラム(versions pseudo-columns)が追加された。
VERSIONS_STARTTIME (start timestamp of version);
VERSIONS_STARTSCN (start SCN of version);
VERSIONS_ENDTIME (end timestamp of version);
VERSIONS_ENDSCN (end SCN of version);
VERSIONS_XID (transaction ID of version); and
VERSIONS_OPERATION (DML operation of version).

サンプル

versions pseudo-columns
 
SQL> SELECT z
  2  ,      VERSIONS_STARTTIME
  3  ,      VERSIONS_ENDTIME
  4  ,      VERSIONS_XID
  5  ,      VERSIONS_OPERATION
  6  FROM   fbt VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE
  7  ORDER  BY
  8         VERSIONS_ENDTIME;
Z                    VERSIONS_STARTTIME        VERSIONS_ENDTIME          VERSIONS_XID     VERSIONS_OPERATION
-------------------- ------------------------- ------------------------- ---------------- ------------------
Initial population   10-AUG-2005 18:00:53.000  10-AUG-2005 18:01:05.000  040026008A010000 I
First update         10-AUG-2005 18:01:05.000  10-AUG-2005 18:01:14.000  040029008A010000 U
Second update        10-AUG-2005 18:01:14.000  10-AUG-2005 18:01:26.000  040027008A010000 U
Second update        10-AUG-2005 18:01:26.000                            040028008A010000 D
 
4 rows selected.

See Also

Flashback Drop

Flashbackup Drop

概要 リサイクルビンの利用で、削除されたオブジェクトを蓄積し、コマンドで戻せるようにした仕組みである。

文法

FLASHBACK TABLE 】表を以前の状態にリストアする
 
FLASHBACK TABLE ┬ [ スキーマ . ] 表名  ┬→
                └ ← , ────────┘
→ TO ┬ { SCN | TIMESTAMP } 式 [ { ENABLE | DISABLE } TRIGGERS ] ┬ ;
      │[ 指定した時点に表を戻す ]                              │
      └ BEFORE DROP [ RENAME TO 表名 ] ─────────────┘
        [ 削除された表を復元する ]

詳細説明

リサイクルビンの利用で、削除されたオブジェクトは内部リネームされただけである。フラッシュバックの場合、内部リネームで戻すことができる。但し、領域オーバーの場合自動的に削除済みオブジェクトはパージされる。

サンプル

flashback table "BIN$Ti1YXahFj6LgQABAQBrOw==$0" to before drop rename to table_name_before_drop;

See Also

Oracle® Database Backup and Recovery Advanced User's Guide 10g Release 1 (10.1) Chapter 9 Flashback Technology: Recovering from Logical Corruptions