フラッシュバック・タイム・トラヴェルによる表の変更のトラッキング
フラッシュバック・タイム・トラベルを使用して、データベース・オブジェクトの過去の状態を表示したり、Point-in-Timeメディア・リカバリを使用せずにデータベース・オブジェクトを前の状態に戻します。
- フラッシュバック・タイム・トラベルについて
フラッシュバック・タイム・トラベルでは、表に対するトランザクションの変更を存続期間にわたって追跡および格納できます。フラッシュバック・タイム・トラベルは、レコード・ステージ・ポリシーと監査レポートのコンプライアンスに役立ちます。また、フラッシュバック・タイム・トラベルは、デジタル・シュレッディングの実行、履歴データへのアクセス、選択的データ・リカバリなどの様々なシナリオでも使用できます。 - 表のフラッシュバック時間移動の有効化
Autonomous Databaseの表のフラッシュバック時間移動を有効にするステップについて説明します。 - 表のフラッシュバック時間移動の無効化
Autonomous Databaseの表のフラッシュバック時間移動を無効にする手順について説明します。 - フラッシュバック時間移動の保持時間の変更
Autonomous Databaseでのフラッシュバック時間移動の保持時間を変更する手順について説明します。 - フラッシュバック時間移動の履歴データのパージ
Autonomous Databaseのフラッシュバック時間移動の履歴データをパージする手順について説明します。 - フラッシュバック時間移動情報の表示
Autonomous Databaseのフラッシュバック時間移動ファイルに関する情報を表示するデータ・ディクショナリ・ビューについて説明します。 - フラッシュバック・タイム・トラベルに関するノート
Autonomous Databaseでのフラッシュバック・タイム・トラベルの使用に関するノートおよび制限事項を示します。
親トピック: 高可用性
フラッシュバック・タイムトラベルについて
フラッシュバック・タイム・トラベルを使用すると、表に対するトランザクションの変更を存続期間にわたって追跡および格納できます。フラッシュバック・タイム・トラベルは、レコード・ステージ・ポリシーと監査レポートのコンプライアンスに役立ちます。また、フラッシュバック・タイム・トラベルは、デジタル・シュレッディングの実行、履歴データへのアクセス、選択的データ・リカバリなどの様々なシナリオでも使用できます。
フラッシュバック・タイム・トラベルは、以前のOracle Databaseバージョンではフラッシュバック・データ・アーカイブと呼ばれていました。フラッシュバック・タイム・トラベルAPIおよびFLASHBACK ARCHIVE
権限などの一部のフラッシュバック・タイム・トラベル用語では、フラッシュバック・データ・アーカイブのネーミングが保持されます。
各Autonomous Databaseインスタンスには、フラッシュバック・タイム・トラベル操作をサポートするflashback_archive
という名前のフラッシュバック・アーカイブが1つあります。flashback_archive
のデフォルトの保存時間は60日です。デフォルトの保存時間の変更の詳細は、フラッシュバック時間移動の保持時間の変更を参照してください。
表のフラッシュバック・タイム・トラベルの有効化には、次のような制限があります。
flashback_archive
に対するFLASHBACK ARCHIVE
オブジェクト権限が必要です。デフォルトでは、ADMIN
ユーザーにこの権限があります。- 表は、次のいずれかであってはなりません。
- ネストした表
- 一時表
- リモート表
- 外部表
- 表に
LONG
列を含めることはできません。 - 表にネストした列を含めることはできません。
その他のフラッシュバック・タイム・トラベルの制限事項のリストは、フラッシュバック・タイム・トラベルのノートを参照してください。
フラッシュバック・テクノロジの詳細は、Oracle Flashback Technologyの使用を参照してください。
表のフラッシュバック時間移動の有効化
Autonomous Databaseの表のフラッシュバック時間移動を有効にするステップについて説明します。
デフォルトでは、新規および既存の表に対してフラッシュバック・タイム・トラベルは無効です。
-
ADMIN
ユーザーとしてログインするか、FLASHBACK ARCHIVE
オブジェクト権限を持っている必要があります。ADMIN
ユーザーまたはFLASHBACK ARCHIVE
権限WITH GRANT OPTION
を持つユーザーは、別のユーザーにFLASHBACK ARCHIVE
オブジェクト権限を付与できます。たとえば:
GRANT FLASHBACK ARCHIVE ON FLASHBACK_ARCHIVE TO <username>
GRANT FLASHBACK ARCHIVE ON FLASHBACK_ARCHIVE TO <username> WITH GRANT OPTION
詳細は、「Autonomous Databaseでのユーザー・ロールおよび権限の管理」を参照してください。
既存の表または作成する新しい表に対して、フラッシュバック・タイム・トラベルを有効にできます。
表のフラッシュバック・タイム・トラベルを有効にすると、フラッシュバック・タイム・トラベルを無効にできます。詳細は、表のフラッシュバック・タイム移動の無効化を参照してください。
表のフラッシュバック時間移動の無効化
Autonomous Databaseの表のフラッシュバック時間移動を無効にする手順について説明します。
表に対してフラッシュバック・タイム・トラベルを有効にした後、ADMIN
ユーザーとして、またはFLASHBACK ARCHIVE
オブジェクト権限を持っている場合に無効にできます。
employee
表のフラッシュバック・タイム・トラベルを無効にするには:ALTER TABLE employee NO FLASHBACK ARCHIVE;
フラッシュバック時間移動の保持時間の変更
Autonomous Databaseでのフラッシュバック時間移動の保持時間を変更する手順について説明します。
ADMIN
ユーザーとしてログインしている場合、またはDBMS_CLOUD_ADMIN
に対するEXECUTE
権限がある場合は、フラッシュバック・タイム・トラベルの保存時間を変更できます。
BEGIN
DBMS_CLOUD_ADMIN.SET_FLASHBACK_ARCHIVE_RETENTION
(retention_days => 365);
END;
/
プロシージャの詳細は、SET_FLASHBACK_ARCHIVE_RETENTIONプロシージャを参照してください。
フラッシュバック時間移動の履歴データのパージ
Autonomous Databaseでのフラッシュバック時間移動の履歴データをパージする手順について説明します。
ADMIN
ユーザーとしてログインしている場合、またはDBMS_CLOUD_ADMIN
に対するEXECUTE
権限がある場合は、フラッシュバック・タイム・トラベルの履歴データをパージできます。
BEGIN
DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
(scope => 'ALL');
END;
/
BEGIN
DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
(scope => 'TIMESTAMP', before_timestamp => '12-JUL-2023 10:24:00');
END;
/
BEGIN
DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
(scope => 'TIMESTAMP', before_timestamp => SYSTIMESTAMP - INTERVAL '1' DAY);
END;
/
BEGIN
DBMS_CLOUD_ADMIN.PURGE_FLASHBACK_ARCHIVE
(scope => 'SCN',before_scn=> '5928826');
END;
/
プロシージャの詳細は、PURGE_FLASHBACK_ARCHIVEプロシージャを参照してください。
フラッシュバック時間移動情報の表示
Autonomous Databaseのフラッシュバック時間移動ファイルに関する情報を表示するためのデータ・ディクショナリ・ビューについて説明します。
フラッシュバック・タイム・トラベル・ファイルに関する情報は、静的データ・ディクショナリ・ビューで表示できます。
表示 | 摘要 |
---|---|
*_FLASHBACK_ARCHIVE |
フラッシュバック時間移動ファイルに関する情報を表示します。 |
*_FLASHBACK_ARCHIVE_TS |
フラッシュバック時間移動ファイルの表領域を表示します。 |
*_FLASHBACK_ARCHIVE_TABLES |
フラッシュバック・タイム・トラベルが有効になっている表に関する情報を表示します。 |
フラッシュバック時間移動のノート
Autonomous Databaseでのフラッシュバック・タイム・トラベルの使用に関するノートと制限事項について説明します。
次のフラッシュバック・タイム・トラベル制限に注意してください。
-
LONG
データ型またはネストした表の列を含む表に対してフラッシュバック・タイム・トラベルを有効にできません。 -
ネストした表、一時テーブル、外部表、マテリアライズド・ビュー、AQ (Advanced Query)表または表以外のオブジェクトで、フラッシュバック・タイム・トラベルを有効にすることはできません。
-
フラッシュバック・タイム・トラベルは、分割、マージまたは結合、表の移動、または
LONG
列をLOB
列に変換するDDL文はサポートしていません。 -
フラッシュバック・タイム・トラベルが有効になっている表に対する制約(外部キー制約を含む)の追加または有効化は、ORA-55610で失敗します。
フラッシュバック・タイム・トラベルが有効になっている表に対する制約(外部キー制約を含む)の削除または無効化はサポートされています。
- 表でフラッシュバック・タイム・トラベルを有効にした後、Oracleでは、最初に20秒以上待機してから表にデータを挿入し、表に対してフラッシュバック問合せを使用する前に最大5分待機することをお薦めします。
-
flashback_archive
という名前のAutonomous Databaseインスタンスごとに1つのフラッシュバック・データ・アーカイブがあり、追加のフラッシュバック・データ・アーカイブを作成できません。 -
Autonomous Databaseインスタンス内でフラッシュバック・データ・アーカイブ
flashback_archive
を削除することはできません。 -
フラッシュバック・データ・アーカイブの表領域を作成、変更または削除することはできません。したがって、次のステートメントは実行できません。
-
ALTER FLASHBACK ARCHIVE flashback_archive ADD TABLESPACE;
-
ALTER FLASHBACK ARCHIVE flashback_archive MODIFY TABLESPACE;
-
ALTER FLASHBACK ARCHIVE flashback_archive REMOVE TABLESPACE;
-
-
表に対するフラッシュバック・タイム・トラベルを有効にしても、自動UNDO管理(AUM)が無効になっている場合は、表を変更しようとするとエラーORA-55614が発生します。
- 表でフラッシュバック・タイム・トラベルを有効にするには、次のフラッシュバック・タイム・トラベル予約語を列名として使用できません。
STARTSCN
ENDSCN
RID
XID
OP
OPERATION