指定された時間またはSCNへのデータベース/テーブルのフラッシュバック

まず、マウントモードでフラッシュバック機能を有効にする必要があります. URLを確認できます https://www.roamway.com/2792.html 詳細については.

例: 指定された時間へのデータベースのフラッシュバック

SQL> すぐにシャットダウン;
データベースが閉じられました.
データベースがマウント解除されました.
ORACLEインスタンスがシャットダウンしました.

SQL> スタートアップマウント;
ORACLEインスタンスが開始されました.
システムグローバル領域の合計1.0155E + 10バイト
固定サイズ 2262008 バイト
可変サイズ 7818185736 バイト
データベースバッファ 2315255808 バイト
バッファのやり直し 19296256 バイト
データベースがマウントされました.

SQL> データベースをタイムスタンプto_timestampにフラッシュバックします(‘2019-11-14 18:14:00′,’yyyy-mm-dd hh24:私:ss ’);
フラッシュバック完了.

SQL> データベースを開く変更;
データベースが変更されました.

関連するフラッシュバックログ

データベースをタイムスタンプto_timestampにフラッシュバックします(‘2019-11-14 18:15:00′,’yyyy-mm-dd hh24:私:ss ’)
フラッシュバック復元開始
12月(金) 06 14:03:39 2019
フラッシュバック復元の完了
フラッシュバックメディアリカバリ開始
logmergerプロセスを開始しました
パラレルメディアリカバリは 40 奴隷
フラッシュバックメディアリカバリログ/home/oracle/archivelog/thread_2_seq_3212.9393.1024328389
フラッシュバックメディアリカバリログ/home/oracle/archivelog/thread_1_seq_3166.9382.1024318427
フラッシュバックメディアリカバリログ/home/oracle/archivelog/thread_1_seq_3167.10153.1024328285
12月(金) 06 14:04:37 2019
フラッシュバックメディアリカバリログ/home/oracle/archivelog/thread_1_seq_3168.9405.1024344047
12月(金) 06 14:05:53 2019
フラッシュバックメディアリカバリログ/home/oracle/archivelog/thread_2_seq_3213.9377.1024339487
12月(金) 06 14:07:43 2019
変更まで適用された不完全なリカバリ 5984486155041 時間 11/14/2019 18:15:01
12月(金) 06 14:07:44 2019
フラッシュバックメディアリカバリが完了しました
完了: データベースをタイムスタンプto_timestampにフラッシュバックします(‘2019-11-14 18:15:00′,’yyyy-mm-dd hh24:私:ss ’)

例: 指定されたSCNへのデータベースのフラッシュバック

データベースを指定されたSCNにフラッシュバックすることもできます. ただし、SCNは特定の書から変換する必要があります.
たとえば変換 “2019-12-06 10:20:00” それはSCNです.

SQL> セットライン 500;
SQL> timestamp_to_scnを選択します(to_timestamp(‘2019-12-06 10:20:00′,’YYYY-MM-DD HH24:ME:SS ’)) デュアルから;
TIMESTAMP_TO_SCN(TO_TIMESTAMP(‘2019-12-0610:20:00′,’YYYY-MM-DDHH24:ME:SS ’))
5.9865E + 12
SQL> numwidthを設定します 20;
SQL> timestamp_to_scnを選択します(to_timestamp(‘2019-12-06 10:20:00′,’YYYY-MM-DD HH24:ME:SS ’)) デュアルから;
TIMESTAMP_TO_SCN(TO_TIMESTAMP(‘2019-12-0610:20:00′,’YYYY-MM-DDHH24:ME:SS ’))
5986520769578

そう, 次のコマンドを実行してデータベースをフラッシュバックします.

SQL> scnへのフラッシュバックデータベース 5986520769578;
scnへのフラッシュバックデータベース 5986520769578
行のエラー 1:
ORA-38754: フラッシュバックデータベースが開始されていません; 必要なREDOログは利用できません
ORA-38762: SCNに必要なREDOログ 4394725 SCNへ 5986520769578
ORA-38761: ログシーケンスのやり直し 114 スレッドで 1, 化身 2 アクセスできませんでした

上記のエラーが発生した場合は、RMANでデータベースをフラッシュバックできます.

RMAN> scnへのフラッシュバックデータベース 5986520769578;
でフラッシュバックを開始 2019:12:06 11:27:11
リカバリカタログの代わりにターゲットデータベース制御ファイルを使用する
割り当てられたチャネル: ORA_DISK_1
チャネルORA_DISK_1: SID = 5860デバイスタイプ=ディスク

例: テーブルを指定された時間にフラッシュバックします

の開始機能 “行の動き”
SQL>ALTER TABLE YOUR_TABLENAME ENABLE ROW MOVEMENT;

指定された時間へのフラッシュバックテーブル
SQL> FLASHBACK TABLE YOUR_TABLENAME TO TIMESTAMP
TO_TIMESTAMP(‘2018-04-23 16:06:00′,’yyyy-mm-dd hh24:私:ss ’);

ただし、データベースの読み取りと書き込みができることを確認する必要があります
そうしないと、次のエラーが発生します.

行のエラー 1:
今-00604: 再帰SQLレベルでエラーが発生しました 1
ORA-16000: 読み取り専用アクセス用にデータベースを開いています

の停止機能 “行の動き”
SQL>ALTER TABLE YOUR_TABLENAME DISABLE ROW MOVEMENT;

アタッチメント

データベースがフラッシュバックできる最も早いSCNを確認します

SQL> 選択する * v $ flashback_database_logから;
OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
5984398987742 09-11月19日 57600 188668223488 0

フラッシュバックログファイルの詳細を確認する

SQL> 選択する * v $ flashback_database_statから;
BEGIN_TIM END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE
07-19年12月19日19年12月8日 8192 9342976000 0 0

フラッシュバックログの詳細を確認してください

SQL> 選択する * v $ flashback_database_logfileから;
………………
NAME LOG#THREAD#SEQUENCE#BYTES FIRST_CHANGE#FIRST_TIM TYPE
/パス../flashback/o1_mf_7t11_.flb 28 1 28 16777216000 0 10-11月19日通常
/パス../flashback/o1_mf_t2o3_.flb 29 1 29 33554432000 0 11-11月19日通常
/パス../flashback/o1_mf_v7ml_.flb 30 1 30 42949672960 0 12-11月19日通常
………………

返信を残します