CREATE FLASHBACK ARCHIVE
目的
CREATE
FLASHBACK
ARCHIVE
文は、フラッシュバック・アーカイブを作成する場合に使用します。フラッシュバック・アーカイブによって、指定したデータベース・オブジェクトへのトランザクションでのデータ変更を自動的に追跡およびアーカイブできます。フラッシュバック・アーカイブは複数の表領域で構成され、追跡対象の表に対するすべてのトランザクションの履歴データが格納されます。データは内部履歴表に格納されます。
フラッシュバック・データ・アーカイブには、RETENTION
パラメータで指定した期間の履歴データが格納されます。履歴データは、フラッシュバック問合せのAS
OF
句を使用して問い合せることができます。指定した保存期間を超えた古いアーカイブ済履歴データは、自動的に消去されます。
フラッシュバック・データ・アーカイブには、フラッシュバック・アーカイブ用に使用される表に対するデータ定義言語(DDL)の変更があっても、履歴データが保持されます。フラッシュバック・データ・アーカイブは、多くの一般的なDDL文をサポートします。これには、表の定義を変更したりデータ移動を伴ういくつかのDDL文が含まれます。サポートされていないDDL文を実行すると、ORA-55610エラーが戻されます。
関連項目:
-
フラッシュバック・タイム・トラベルの使用についての一般情報は、Oracle Database開発ガイドを参照してください。
-
表を追跡対象の表として指定する方法の詳細は、「
CREATE
TABLE
」の「flashback_archive_clause」を参照してください。 -
フラッシュバック・アーカイブの割当て制限属性と保存属性の変更およびフラッシュバック・アーカイブにおける表領域の記憶域の追加と変更の詳細は、ALTER FLASHBACK ARCHIVEを参照してください。
前提条件
フラッシュバック・アーカイブを作成するには、FLASHBACK
ARCHIVE
ADMINISTER
システム権限が必要です。また、フラッシュバック・アーカイブを作成するにはCREATE
TABLESPACE
システム権限が必要であり、履歴情報が格納される表領域に十分な割当て制限も必要です。フラッシュバック・アーカイブをシステムのデフォルトのフラッシュバック・アーカイブとして指定するには、SYSDBA
としてログインしている必要があります。
構文
create_flashback_archive::=
flashback_archive_quota::=
flashback_archive_retention::=
セマンティクス
DEFAULT
DEFAULT
を指定するには、SYSDBA
としてログインしている必要があります。この句は、このフラッシュバック・アーカイブをデータベースのデフォルトのフラッシュバック・アーカイブとして指定する場合に使用します。CREATE
TABLE
文またはALTER
TABLE
文に、フラッシュバック・アーカイブ名を指定しないでflashback_archive_clause
が指定されている場合、データベースはデフォルトのフラッシュバック・アーカイブを使用して、その表のデータを格納します。
デフォルトのフラッシュバック・アーカイブがすでに存在する場合は、この句を指定できません。ただし、ALTER
FLASHBACK
ARCHIVE
... SET
DEFAULT
句を使用して、既存のデフォルトのフラッシュバック・アーカイブを置き換えることはできます。
関連項目:
詳細は、「CREATE
TABLE
」の「flashback_archive_clause」を参照してください。
flashback_archive
フラッシュバック・アーカイブの名前を指定します。名前は、「データベース・オブジェクトのネーミング規則」に指定されている要件を満たしている必要があります。
TABLESPACE句
このフラッシュバック・アーカイブのアーカイブ・データが格納される表領域を指定します。この句では表領域を1つのみ指定できます。ただし、ALTER
FLASHBACK
ARCHIVE
文を使用して、後で表領域をフラッシュバック・アーカイブに追加できます。
flashback_archive_quota
アーカイブ・データ用に確保する初期表領域の領域を指定します。フラッシュバック・アーカイブ内のアーカイブ用の領域が一杯になると、このフラッシュバック・アーカイブを使用する追跡対象の表でのDML操作は失敗します。フラッシュバック・アーカイブの内容が指定された割当て制限の90%になると、領域不足のアラートがデータベースから発行され、古いデータを消去するか、割当て制限を追加する時間が確保されます。この句を省略すると、指定された表領域でフラッシュバック・アーカイブの割当て制限が無制限になります。
[NO] OPTIMIZE DATA
OPTIMIZE
DATA
は、フラッシュバック・アーカイブの履歴表の最適化を有効にする場合に指定します。これにより、高度な行圧縮、高度なLOB圧縮、高度なLOB重複除外、セグメント・レベルの圧縮階層化および行レベルの圧縮階層化のいずれかの機能を使用して、履歴表のデータ記憶域を最適化するようデータベースに指示します。この句を指定するには、拡張圧縮オプションのライセンスが必要です。
履歴表のデータ記憶域を最適化しないようにするには、NO
OPTIMIZE
DATA
を指定します。これはデフォルトです。
flashback_archive_retention
アーカイブされたデータがフラッシュバック・アーカイブに保持される時間の長さを月、日または年単位で指定します。指定した時間でフラッシュバック・アーカイブがいっぱいになると、データベースはflashback_archive_quotaで説明されているように応答します。
例
次の文では、2つのフラッシュバック・アーカイブがテストのために作成されます。最初のフラッシュバック・データ・アーカイブは、データベースのデフォルトとして指定されます。どちらも、領域割当て制限は1MBであり、アーカイブの保存は1日です。
CREATE FLASHBACK ARCHIVE DEFAULT test_archive1 TABLESPACE example QUOTA 1 M RETENTION 1 DAY; CREATE FLASHBACK ARCHIVE test_archive2 TABLESPACE example QUOTA 1 M RETENTION 1 DAY;
次の文では、デフォルトのフラッシュバック・アーカイブを変更して、保存期間を1か月に延長します。
ALTER FLASHBACK ARCHIVE test_archive1 MODIFY RETENTION 1 MONTH;
次の文では、oe.customers
表の追跡を指定します。フラッシュバック・アーカイブが指定されていないため、データはデフォルトのフラッシュバック・アーカイブtest_archive1
にアーカイブされます。
ALTER TABLE oe.customers FLASHBACK ARCHIVE;
次の文では、oe.orders
表の追跡を指定します。この場合、データは指定したフラッシュバック・アーカイブtest_archive2
にアーカイブされます。
ALTER TABLE oe.orders FLASHBACK ARCHIVE test_archive2;
次の文では、test_archive2
フラッシュバック・アーカイブを削除します。
DROP FLASHBACK ARCHIVE test_archive2;