Pnt11416_005さんの投稿一覧
【ご自身で既に試したこと・理解できたこと】 現在、Oracle Databaseのインスタンス管理について学習しております。教材の「インスタンス起動フロー」に基づき、NOMOUNT時の手順を以下のように理解しています。,
手順 ②: SGAの割当て,
手順 ③: バックグラウンド・プロセスの起動,
「停止(SHUTDOWN)は起動(STARTUP)の逆の手順で行われる」という原則に従うと、停止時の最後の手順は以下のようになると考えました。
手順 5: バックグラウンド・プロセスの停止(手順③の逆)
手順 4: SGAをメモリーから削除(手順②の逆)
したがって、理論上の順序は 「5 → 4」 になると理解しております。
【理解できないこと(具体的な疑問点)】 しかし、手元の問題集の解説では、正しい停止順序が以下のように記載されていました。
3(チェックポイント)→ 1(データファイル等のクローズ)→ 6(アンマウント)→ 2(制御ファイルのクローズ)→ 4(SGA削除)→ 5(プロセス停止)
ここで、以下の2点について疑問があります。
なぜ 「4. SGAをメモリーから削除」 が 「5. バックグラウンド・プロセスを停止」 よりも前に行われるのでしょうか?
プロセスがまだ動作している状態(手順5の前)で、そのプロセスが使用している共有メモリ領域(手順4)を先に削除することは、技術的な整合性として正しいのでしょうか?
【解説などの誤りと判断された根拠】 教材の起動フロー(手順②・③)では、「メモリの確保が先、プロセスの起動が後」とされています。, 停止がその完全な鏡像(ミラーリング)であるならば、リソースを解放する前にまず利用者を停止させる必要があるため、「プロセス停止が先(5)、メモリ解放が後(4)」であるべきだと考えたためです。
【正しくはどうあるべきか】 起動手順の逆順に基づき、順序は 3 → 1 → 6 → 2 → 5 → 4 が妥当ではないかと考えております。
正解が「4 → 5」となっている理由や、私の理解が及んでいない点(段階の定義など)がございましたら、ご教示いただけますと幸いです。よろしくお願いいたします。