問題ID:23428(白本との答えの食い違いについて)
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID:23428(白本との答えの食い違いについて)
msg# 1
smakise
投稿数: 1
「SHUTDOWN ABORT」コマンドでデータベースを停止しました。次に再起動した時に行われる処理の正しい順序はどれですか。
この問題と類似したものが、白本の模擬試験2の問20にありますが、ping-tだとUNDOデータを使用してロールバックしてからデータベースをオープンするのが正解である一方、白本だとオープンしてからロールバックするのが正解になっています。
またその解説では、「REDOログファイルを読み込みロールフォワードを行った後、データベースをオープンし、先に一般ユーザをデータベースへ接続可能な状態にします。これはダウンタイムを短くするためです。次にコミットされていないトランザクションをロールバックし、一貫性のある状態にリカバリします。」と説明されていました。
いったいどちらが正しいのでしょうか。
ご教授お願い致します。
この問題と類似したものが、白本の模擬試験2の問20にありますが、ping-tだとUNDOデータを使用してロールバックしてからデータベースをオープンするのが正解である一方、白本だとオープンしてからロールバックするのが正解になっています。
またその解説では、「REDOログファイルを読み込みロールフォワードを行った後、データベースをオープンし、先に一般ユーザをデータベースへ接続可能な状態にします。これはダウンタイムを短くするためです。次にコミットされていないトランザクションをロールバックし、一貫性のある状態にリカバリします。」と説明されていました。
いったいどちらが正しいのでしょうか。
ご教授お願い致します。
Re: 問題ID:23428(白本との答えの食い違いについて)
msg# 1.1
quensan
投稿数: 119
引用: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
引用:
そして、インスタンス・リカバリにはロールフォワードとロールバックが含まれます。
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 <-オープン完了
引用:
この情報は初めて知りました。こちらは白本の発行元に問い合わせてみてはいかがでしょうか。
ping-tだとUNDOデータを使用してロールバックしてからデータベースをオープンするのが正解である一方、白本だとオープンしてからロールバックするのが正解になっています。
ロールバックしてからオープンするというよりも、
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ログファイルを読み込みロールフォワードを行った後、データベースをオープンし、先に一般ユーザをデータベースへ接続可能な状態にします。これはダウンタイムを短くするためです。次にコミットされていないトランザクションをロールバックし、一貫性のある状態にリカバリします。」と説明されていました。
この情報は初めて知りました。こちらは白本の発行元に問い合わせてみてはいかがでしょうか。