リスクの高いアプリ移行作業の直前の状態へ、失敗時に確実に DB 全体を戻せるようにしたい。ただし通常時の Flashback Database ログ収集(FLASHBACK ON)は有効にしていない。DB は ARCHIVELOG モードで、高速リカバリ領域(FRA, DB_RECOVERY_FILE_DEST)は構成済み。次を実行した。
SQL> CREATE RESTORE POINT before_migration 2 GUARANTEE FLASHBACK DATABASE; Restore point created.
この保証付きリストアポイント(guaranteed restore point)の説明として最も適切なものを選べ。(単一選択)
- A
FLASHBACK DATABASE TO RESTORE POINT before_migrationでこの時点へ巻き戻せる。Flashback Database ログ収集(FLASHBACK ON)を有効化していなくても、保証付きリストアポイント作成以降に必要なフラッシュバックログが保持されるため戻せる。前提として ARCHIVELOG と FRA が必要 - B保証付きリストアポイントを作るには、事前に
ALTER DATABASE FLASHBACK ON;を実行して通常の Flashback Database を有効化しておく必要がある - C保証付きリストアポイントは SCN にラベルを付けるだけで、戻すにはその時点の完全なバックアップからのリストアが別途必要
- D保証付きリストアポイントは作成後に自動失効し、一定時間で消えるため移行作業のような長時間用途には使えない
正解・解説・誤答理由・ひっかけを見る▼ open
解説
保証付きリストアポイント(guaranteed restore point)は、その時点へ FLASHBACK DATABASE で戻せることを保証する仕組みである。
通常の Flashback Database(FLASHBACK ON による継続的なフラッシュバックログ収集)を有効にしていなくても、
保証付きリストアポイントを作ると、その時点へ戻すのに必要なフラッシュバックログが確実に保持される。
前提条件:
- DB が ARCHIVELOG モード。
- 高速リカバリ領域(FRA)が構成済み(フラッシュバックログの保存先)。
移行に失敗したら SHUTDOWN → STARTUP MOUNT → FLASHBACK DATABASE TO RESTORE POINT before_migration; → ALTER DATABASE OPEN RESETLOGS; で当該時点へ戻せる。
作業が成功して不要になったら DROP RESTORE POINT before_migration; で保証を解除すると、保持されていたフラッシュバックログが解放される
(保持し続けると FRA を圧迫し得る点には注意)。
- Bここが核心。通常の
FLASHBACK ONは不要。保証付きリストアポイント単体で、その時点に限り戻せるよう必要なログが保持される(“移行直前だけ戻せれば良い”用途にちょうど合う)。 - C単なる SCN ラベルではない。フラッシュバックログが保持され、バックアップからのリストア無しに
FLASHBACK DATABASEで戻せる。 - D自動失効しない。明示的に
DROP RESTORE POINTするまで保持され続ける(だからこそ放置すると FRA を圧迫する)。短時間で消える「通常のリストアポイント(保証なし)」とは別物。
FLASHBACK DATABASE で戻すなら必ず FLASHBACK ON が要る(B)」という思い込み。
保証付きリストアポイントは FLASHBACK ON 無しでも特定時点へ戻せるのが最大の特長。
また保証あり(明示 DROP まで残る)と保証なし(自動失効し得る)のリストアポイントの違い(D)も頻出。