SMON(インスタンスリカバリの2段階)難易度 高無料
ある単一インスタンス構成の DB サーバーが、ハードウェア障害でクラッシュ(インスタンスも OS も異常終了)した。その後サーバーを再起動し、Oracle を STARTUP したところ、正常にオープンできた。この間に自動的に行われたインスタンスリカバリの流れとして最も適切なものを選べ。(単一選択)
- A
STARTUP時に SMON が自動的に、①REDOログを適用してクラッシュ時点までロールフォワードし、②その後、未コミットのトランザクションをUNDOでロールバックする。DBA の手動操作は不要 - B未コミットのトランザクションのロールバックだけが行われ、ロールフォワード(REDOの適用)は発生しない
- Cデータファイルが破損している可能性を考慮し、RMAN による全データファイルのリストアが自動的に実行されてからロールフォワードが行われる
- DDBA が
RECOVER DATABASEコマンドを手動で実行しない限り、Oracle は起動せずエラーで停止する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
インスタンスリカバリ(STARTUP 時に SMON が自動的に実行)は、2段階で構成される。
- ① ロールフォワード(前進リカバリ):最後にディスクへ反映されていた時点(最終チェックポイント)以降の REDOログ(オンラインREDOログファイル)を適用し、クラッシュ直前のコミット済み・未コミットを問わずすべての変更をデータファイルへ再現する。これにより、クラッシュ時点でメモリ上にしかなかった変更(ダーティバッファの内容)を復元する。
- ② ロールバック(後退リカバリ):ロールフォワードによって復元されたデータの中には、クラッシュ時点でまだコミットされていなかったトランザクションの変更も含まれる。これらは UNDO 情報を使ってロールバックし、コミット済みの一貫した状態に戻す。
この一連の処理は SMON が自動的に行い、通常は DBA が明示的に何かを実行する必要はない(メディアリカバリ=データファイル喪失時のリストア&リカバリとは別物)。
- Bロールバックの前に、まずロールフォワード(REDO適用)でクラッシュ直前の状態まで復元する必要がある。ロールバックのみでは不十分。
- C本問はインスタンスクラッシュ(データファイル自体は無事)を想定しており、データファイルのリストアは不要。それが必要なのはメディア障害(ファイル喪失)の場合。
- D通常のインスタンスクラッシュからの回復(インスタンスリカバリ)は
STARTUPだけで SMON が自動実行する。RECOVER DATABASEの手動実行が必要なのはメディアリカバリの場面。
ひっかけ: 「ロールバックだけ行われる(ロールフォワードは不要)」という誤解(B)。ロールフォワードが先、ロールバックが後という順序と、両方が必要である点が核心。
また「DBA が手動でコマンドを実行しないと復旧しない」という誤解(D)も罠=
STARTUP だけで SMON が自動実行する。AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)