【問題形式で学ぶOracle】第3回:ユーザー・プロセスの正体を暴く!データベースに命令を届ける第一歩
Oracle Database の内部アーキテクチャを語る上で欠かせないのが、プロセス(作業員たち)の役割分担である。
「サーバープロセス」「バックグラウンド・プロセス」、そして今回焦点を当てる「ユーザー・プロセス」など、似たような言葉が多くて混乱しやすいポイントだ。
今回は、Oracleのプロセス構造の基本となる「ユーザー・プロセス」について、4択の練習問題を通じてスッキリ整理してみよう。
本日の問題
【問】Oracle Database のアーキテクチャにおける「ユーザー・プロセス」の定義として、最も適切なものを次の選択肢から1つ選べ。
- A. データベースのメモリ領域(SGA)を常時監視し、インスタンス異常時の自動リカバリを行うバックグラウンド・プロセスのこと。
- B. ユーザーが実行するSQL文や各種ユーティリティ(SQL*Plusなど)の操作に伴って起動するプロセスのこと。
- C. ユーザー・プロセスからの要求を直接受け取り、ディスク上のデータファイルを読み書きするサーバー側の専用プロセスのこと。
- D. 複数のインスタンス間(RAC環境など)でデータの一貫性を保つために、キャッシュブロックを転送し合う専用の連携プロセスのこと。
正解と解説
【正解】
B. ユーザーが実行するSQL文や各種ユーティリティ(SQL*Plusなど)の操作に伴って起動するプロセスのこと。
詳しい解説
Oracle Database に接続して作業を行うとき、私たちの操作を支えるプロセスにはいくつかの階層がある。
- ユーザー・プロセス(User Process):
私たちがクライアント側(PCなど)でsqlplusなどのツールを起動したり、SQL文を実行したりしたときに生成されるプロセス。いわば「データベースへの入口・発信源」である。 - サーバー・プロセス(Server Process):
ユーザー・プロセスからの要求を受け取り、データベース(インスタンス)のメモリやデータファイルにアクセスして実際に処理を実行するプロセス。 - バックグラウンド・プロセス(Background Process):
データベースの全体管理やメモリ・ファイルの同期を行うために、インスタンス起動時に自動で立ち上がるプロセス(DBWn, LGWR, SMON, PMONなど)。
試験や実務のトラブルシューティングでも、「ユーザーが直接操作する側(ユーザー・プロセス)」と「データベース側で裏方として処理を代行する側(サーバー・プロセス)」の区別が問われやすいので、この違いをしっかり押さえておこう。
まとめ
| プロセスの種類 | 誰が・何のために起動するか | 主な役割 |
|---|---|---|
| ユーザー・プロセス | ユーザー(クライアント側) | SQLやSQL*Plusなどのユーティリティの実行 |
| サーバー・プロセス | Oracle Database(サーバー側) | ユーザー・からの要求を受け取り、処理を代行する |
| バックグラウンド・プロセス | Oracle Database(インスタンス起動時) | メモリ管理、ロギング、障害監視などの全体管理 |
普段何気なく打っている sqlplus / as sysdba の裏側でも、こうしたプロセス同士の連携が動いている。仕組みをイメージできるようになると、エラーが出たときも原因の切り分けがぐっとスムーズになるはずだ。
次回も基礎固めに最適な4択問題をお届け予定なのでお楽しみに!
PR