RMAN(ブロックメディアリカバリ BMR)難易度 高無料
ARCHIVELOG モードで OPEN 中の DB で、SELECT 実行中に ORA-01578(データブロック破損)が報告された。破損は1つのデータファイルの数ブロックに限定されている。V$DATABASE_BLOCK_CORRUPTION に該当ブロックが登録済みで、有効な全体(レベル0)バックアップとアーカイブ REDO が揃っている。次を実行する。
RMAN> RECOVER CORRUPTION LIST;
ブロックメディアリカバリ(BMR)の挙動・前提として正しいものを選べ。(単一選択)
- ABMR は破損ブロックを含むデータファイル全体をオフラインにしてからリストア&リカバリする。その間そのデータファイルにはアクセスできない
- BBMR は破損したブロックだけを復旧し、データファイル(および DB)はオンラインのまま。残りの正常なブロックには引き続きアクセスできる。ARCHIVELOG モードが前提で、復旧には全体/レベル0 バックアップ等を使い、増分レベル1 バックアップは BMR には使えない
- CBMR は NOARCHIVELOG モードでも、直近のレベル1 増分バックアップだけで破損ブロックを復旧できる
- DBMR を行うには DB を
MOUNT状態に落とす必要があり、OPENのままではRECOVER ... BLOCKは実行できない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:B✓Gold監修
解説
ブロックメディアリカバリ(Block Media Recovery, BMR)は、メディア破損した個々のブロックだけを復旧する機能である
(RECOVER ... BLOCK または、登録済み破損を一括処理する RECOVER CORRUPTION LIST)。
核心となる性質:
- 粒度がブロック単位:データファイル全体を復旧する必要がない。破損ブロック以外は触らない。
- オンラインのまま:対象データファイルも DB もオフラインにせず、復旧中も正常ブロックにはアクセスできる(可用性が高い)。
- ARCHIVELOG が前提:破損ブロックの過去イメージを古いバックアップから取り出し、アーカイブ REDO を適用して現在時点まで追いつかせる。よって NOARCHIVELOG では成立しない。
- 増分バックアップは使えない:BMR でブロックの基となるイメージに使えるのは全体/レベル0 バックアップ・イメージコピー・(あれば)フラッシュバックログ等であり、レベル1 増分バックアップは BMR には使用できない。
- ABMR の利点はまさに「ファイル全体をオフラインにしない」点。データファイル全体オフライン+全体リストアは通常のデータファイルリカバリであって BMR ではない。
- CBMR は ARCHIVELOG が前提でアーカイブ REDO を適用する。NOARCHIVELOG では不可。さらに増分レベル1 は BMR に使えないので二重に誤り。
- DBMR は
OPEN(またはMOUNT)状態で実行できる。むしろ「オンラインのまま破損ブロックだけ直す」のが目的で、OPEN不可という前提は誤り。
ひっかけ: 「リカバリ=ファイル単位でオフラインにして戻す」という固定観念(A・D)。BMR はブロック単位・オンラインが眼目。
さらに「増分があるならそれを使えば速い」という直感に反し、BMR には増分(レベル1)が使えないのが頻出ひっかけ。
実機確認の答え合わせ
ORA-01578: ORACLE data block corrupted (file # 7, block # 1234) (破損検知。V$DATABASE_BLOCK_CORRUPTION に登録され、RECOVER CORRUPTION LIST の対象になる)
公式ドキュメント・関連Backup and Recovery User's Guide ― Performing Block Media Recovery(オンライン・ブロック単位・増分は使用不可)↗
✓Gold 保有者による書き下ろし解説・実機で検証済