忍者ブログ
データベースエンジニアのための実践ブログ。Oracle・PostgreSQL・MySQLなどの環境構築、実行計画の読み方やチューニングといった現場で役立つノウハウ、DB基礎知識までを発信しています。

【問題形式で学ぶOracle】第5回:サイレントガーディアン「SMON」!データベースの整合性とリカバリを陰で支えるバックグラウンド・プロセス

前回は、ユーザーの代わりに実際にSQLの処理を行う「サーバー・プロセス」について学んだ。

今回は、インスタンスの起動中からバックグラウンドで静かに稼働し、データベースの安全と一貫性を守り続ける最も重要なプロセスのひとつ、「SMON(システム・モニター・プロセス)」を取り上げる。Oracle 26ai でも変わらず活躍するこのプロセスの役割を、4択の練習問題を通じてスッキリ整理してみよう。


本日の問題

【問】Oracle Database のアーキテクチャにおけるバックグラウンド・プロセス「SMON(System Monitor)」の主な役割として、最も適切なものを次の選択肢から1つ選べ。

  • A. ユーザーからのネットワーク経由の接続要求を最初に受け付け、各サーバー・プロセスへの振り分け(リスニング)を行う。
  • B. データベースのメモリ領域(SGA)にある更新データを、定期的にディスク上のデータファイルへ書き込んで同期する。
  • C. データベースの一貫性を監視し、インスタンス障害からの起動時におけるクラッシュ・リカバリや、不要になった一時セグメントのクリーンアップを行う。
  • D. ユーザーがコミットしたトランザクションのRedoログ・バッファへの書き込みをリアルタイムでディスクへ吐き出す。

正解と解説

【正解】
C. データベースの一貫性を監視し、インスタンス障害からの起動時におけるクラッシュ・リカバリや、不要になった一時セグメントのクリーンアップを行う。

詳しい解説

Oracle のバックグラウンド・プロセスにはそれぞれ明確な担当業務がある。SMON(System Monitor)は、まさにデータベースの「健康と安全を守る守護神」のような存在だ。

  • インスタンス・リカバリ(クラッシュ・リカバリ):
    万が一、電源断や異常終了などでデータベースがクラッシュした際、次に STARTUP したときに自動で走って整合性を復旧する。
  • クリーンアップ作業:
    異常終了したセッションが残したデッド・トランザクションのロールバックや、不要になった一時セグメントの解放などをバックグラウンドで自動的に片付ける。

ちなみに、選択肢 B は DBWn(データベース・ライター)、選択肢 D は LGWR(ロガー・ライター)の役割である。Oracle 26ai の最新環境であっても、この基本的なバックグラウンド・プロセスの分担構造は変わっていない。トラブルシューティングや試験対策では、プロセス名と役割の組み合わせを確実に一致させられるようにしておこう。


まとめ

プロセス名正式名称主な役割・特徴
SMON System Monitor インスタンス・リカバリ、一貫性の監視、一時セグメントのクリーンアップ
DBWn Database Writer メモリ(SGA)のダーティデータをデータファイルへ書き込む
LGWR Log Writer Redoログ・バッファの内容をRedoログ・ファイルへ書き込む

データベースが安全に起動し続けられるのは、こうしたバックグラウンド・プロセスが裏でしっかりと働いてくれているおかげである。

次回もOracleの仕組みがスッキリわかる4択問題をお届けするので、お楽しみに!

PR