
本記事の目的
Oracle Database のフラッシュバック・データベースを利用して戻せるポイント(SCN)を確認する方法のメモ。
確認方法
V$FLASHBACK_DATABASE_LOGのOLDEST_FLASHBACK_SCN
すべてのインカネーションのフラッシュバック・データ内の最小システム変更番号(SCN)
簡易検証
環境:DBCS(VM) 19c Single環境で確認
事前準備:
0) FRAの確保 1) フラッシュバックログの有効化 2) DB_FLASHBACK_RETENTION_TARGETの設定調整 3) 保証付きリストアポイントの付与(オプション)
検証結果:
・SCNの確認 SQL> select * from V$FLASHBACK_DATABASE_LOG; OLDEST_FLASHBACK_SCN OLDEST_FL RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE CON_ID -------------------- --------- ---------------- -------------- ------------------------ ---------- 5601651 11-JUN-20 1440 3221225472 22437888 0 ⇒SCN=5601651以降ならフラッシュバックで戻せるはず。 ・OLDEST_FLASHBACK_SCN -1 の値を指定 SQL> flashback database to scn 5601650; flashback database to scn 5601650 * ERROR at line 1: ORA-38729: Not enough flashback database log data to do FLASHBACK. ⇒予想通りエラーとなる。 ・OLDEST_FLASHBACK_SCNを指定 SQL> flashback database to scn 5601651; Flashback complete. ⇒フラッシュバック成功
ちなみに、RMANから実行した場合のフラッシュバックログ不足は以下のエラー番号となる模様
RMAN-06796 Not enough flashback database log data to do FLASHBACK.
リストアポイントの確認方法
リストアポイントおよび保証付きリストアポイントの場合は、V$RESTORE_POINTにて確認可能。
実行例(マニュアルより抜粋)
SELECT NAME, SCN, TIME, DATABASE_INCARNATION#, GUARANTEE_FLASHBACK_DATABASE FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE='YES'; NAME SCN TIME DATABASE_INCARNATION# GUA --------------- ---------- --------------------- --------------------- --- BEFORE_CHANGES 5753126 04-MAR-12 12.39.45 AM 2 YES
参考情報
・マニュアル「フラッシュバックおよびデータベースのPoint-in-Timeリカバリの実行」
・しばちょう先生の試して納得!DBAへの道 第19回 フラッシュバック・データベースによる論理障害からの復旧
Leave a Reply