Re: 問題ID:23428(白本との答えの食い違いについて)

この質問の投稿一覧へ

なし Re: 問題ID:23428(白本との答えの食い違いについて)

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-7-29 22:44
quensan  長老   投稿数: 119
引用:
ping-tだとUNDOデータを使用してロールバックしてからデータベースをオープンするのが正解である一方、白本だとオープンしてからロールバックするのが正解になっています。
23428の解説には「SHUTDOWN ABORT後に初めてデータベースをオープンした時に、SMONプロセスによって「インスタンス・リカバリ」が自動的に実行されます。」とあります。
ロールバックしてからオープンするというよりも、
1.startup時にオープンしようとするけど、不整合があるのでインスタンス・リカバリ開始
2.ロールフォワード
3.ロールバック
4.整合性がとれたのでDBオープンが完了
という流れではないですかね。

SHUTDOWN ABORTではDBオープン前にインスタンス・リカバリが必要とあります。
https://docs.oracle.com/cd/E57425_01/121/CNCPT/startup.htm#CNCPT-GUID-CD115A39-2FAE-4B94-BB3E-59818AD42803
引用:
SHUTDOWN ABORTでは、オープン状態のデータファイルのチェックポイントが実行されないため、データベースを再オープンする前にインスタンス・リカバリが必要です。その他の停止モードでは、データベースを再オープンする前にインスタンス・リカバリを実行する必要はありません。

そして、インスタンス・リカバリにはロールフォワードとロールバックが含まれます。
https://docs.oracle.com/cd/E57425_01/121/CNCPT/startup.htm#GUID-EC07F1A7-EAB6-4B56-8065-CDDEA6969D1E

ちなみに以下はshutdown abort後のstartup時のalert_orcl.logからの抜粋ですが(11gですが)、上記の説明の流れになっていました。
なので、23428の正解は間違ってないと思います。

ALTER DATABASE OPEN
Beginning crash recovery of 1 threads <-インスタンス・リカバリ開始
SMON: enabling cache recovery <-ロールフォワード
SMON: enabling tx recovery <-ロールバック
Completed: ALTER DATABASE OPEN <-オープン完了

引用:
またその解説では、「REDOログファイルを読み込みロールフォワードを行った後、データベースをオープンし、先に一般ユーザをデータベースへ接続可能な状態にします。これはダウンタイムを短くするためです。次にコミットされていないトランザクションをロールバックし、一貫性のある状態にリカバリします。」と説明されていました。

この情報は初めて知りました。こちらは白本の発行元に問い合わせてみてはいかがでしょうか。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.