助け合いフォーラム

Oracle DB

Oracle Master Bronze DBA 2019(1Z0-085)
問題ID : 29809
問題を開く
SHUTDOWNコマンドを実行した後の処理の順序として、正しいものはどれですか。      1. データファイルとREDOログ・ファイルをクローズする  2. 制御ファイルをクローズする  3. チェックポイントが発生し、SGA内のデータをデータファイルとREDOログ・ファイルに書き込む  4. SGAをメモリーから削除する  5. バックグラウンド・プロセスを停止する  6....

この問題はプレミアムコンテンツです。

上に戻る

SHUTDOWN時の「SGA削除」と「バックグラウンド・プロセス停止」の順序について

投稿日 2026/03/15

【ご自身で既に試したこと・理解できたこと】 現在、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」となっている理由や、私の理解が及んでいない点(段階の定義など)がございましたら、ご教示いただけますと幸いです。よろしくお願いいたします。

2026/03/17 19:53

ORACLE 詳しくないので間違ってたらごめんなさい。
ただ、ちょっとよくわからないのですが

「停止(SHUTDOWN)は起動(STARTUP)の逆の手順で行われる」という原則に従うと、停止時の最後の手順は以下のようになると考えました。
したがって、理論上の順序は 「5 → 4」 になると理解しております。

これって解説にある順序と違いますよね?

手元の問題集の解説では、正しい停止順序が以下のように記載されていました。

「手元の問題集」が何を指すのかわかりませんが、少なくともご質問の最強問題集の問題 ID で参照できる解説でも同じ順序が記載されています。

なぜ 「4. SGAをメモリーから削除」 が 「5. バックグラウンド・プロセスを停止」 よりも前に行われるのでしょうか?

バックグラウンドプロセスが停止したら、それ以上管理操作が行えなくなるから、ということではないですか?

プロセスがまだ動作している状態(手順5の前)で、そのプロセスが使用している共有メモリ領域(手順4)を先に削除することは、技術的な整合性として正しいのでしょうか?

正常に終了処理を完了する前にプロセスを落とすと終了処理が完了できずに終わってしまうのではないかと思うので、この順序に整合性はあると思います。

起動フロー(手順②・③)では、「メモリの確保が先、プロセスの起動が後」とされています。, 停止がその完全な鏡像(ミラーリング)であるならば

この仮定が正しいのかどうか、というところがメインになるのではと思いますが、そもそも Oracle 公式の記述(参考URL)でも以下のように「SGA メモリー占有中止(=メモリ解放)→ バックグラウンドプロセス停止」となっていますので、「完全な鏡像(ミラーリング)」という仮定が誤っているのではないかと思います。

インスタンスの停止方法
データベース停止の最後の操作は、インスタンスの停止です。データベース・インスタンスが停止すると、SGAではメモリーの占有を中止し、バックグラウンド・プロセスが終了します。


コメント

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?