Flashback Data Archive機能はトランザクションの変更履歴を長期保管する機能です。
同じように変更履歴を保管するUNDOよりも長期の保管を可能にします。

CREATE TABLESPACE fla_tbs1
DATAFILE '+DATA/fla_tbs1.dbf'
SIZE 10M AUTOEXTEND ON NEXT 640K MAXSIZE 32767M;


Flashback Data Archiveの変更履歴は表に保管されます。
まずは、その表を保管する表領域を作成します。

SQL> GRANT FLASHBACK ARCHIVE ADMINISTER TO test;

権限付与が成功しました。
SQL> alter user test quota unlimited on fla_tbs1;

ユーザーが変更されました。


Flashback Data Archiveは表単位で有効、無効が出来ます。
有効にする表を所持するユーザーに対して、archiveを管理する権限と、arichive用表領域の無制限割り当ての権限を与えます。

[oracle@DB01 ~]$ sqlplus test/password@pdb1

CREATE FLASHBACK ARCHIVE fla1
TABLESPACE fla_tbs1
QUOTA 10M
RETENTION 1 YEAR;

フラッシュバック・アーカイブが作成されました。


Archiveを有効にする表の所有者ユーザーで接続し、変更履歴を保管する表を先ほど作成した表領域に作成します。

ALTER TABLE emp
FLASHBACK ARCHIVE fla1;

表が変更されました。


特定の表に対してArchiveを有効にします。
これで準備は完了です。