対策する資格
Java Silver ・ 近日ORACLE Silver ・ 近日
Gold 保有者 監修1Z0-083 対応
RMAN(ブロックメディアリカバリ BMR)難易度 高無料

ARCHIVELOG モードで OPEN 中の DB で、SELECT 実行中に ORA-01578(データブロック破損)が報告された。破損は1つのデータファイルの数ブロックに限定されている。V$DATABASE_BLOCK_CORRUPTION に該当ブロックが登録済みで、有効な全体(レベル0)バックアップとアーカイブ REDO が揃っている。次を実行する。

RMAN> RECOVER CORRUPTION LIST;

ブロックメディアリカバリ(BMR)の挙動・前提として正しいものを選べ。(単一選択)

  1. ABMR は破損ブロックを含むデータファイル全体をオフラインにしてからリストア&リカバリする。その間そのデータファイルにはアクセスできない
  2. BBMR は破損したブロックだけを復旧し、データファイル(および DB)はオンラインのまま。残りの正常なブロックには引き続きアクセスできる。ARCHIVELOG モードが前提で、復旧には全体/レベル0 バックアップ等を使い、増分レベル1 バックアップは BMR には使えない
  3. CBMR は NOARCHIVELOG モードでも、直近のレベル1 増分バックアップだけで破損ブロックを復旧できる
  4. DBMR を行うには DB を MOUNT 状態に落とす必要があり、OPEN のままでは RECOVER ... BLOCK は実行できない
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BGold監修

解説

ブロックメディアリカバリ(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 の対象になる)
Gold 保有者による書き下ろし解説・実機で検証済
この分野をもっと解いて、得点源に
RMAN を含む全問を分野別に演習できます(無料)。
演習する →