日本語PDF

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;