Chapter 01

セッションの確立まで

Me
Me
2021.11.23に更新

セッションの確立

クライアントとOracleDB間にセッションを作成する際、OracleDBサーバ側の構成として、専用サーバ構成または共有サーバ構成を設定することが出来る. 専用サーバ構成の場合、ユーザ毎に専用のサーバ・プロセスが用意され、単一のユーザ・プロセスのみの処理を行う. 反対に、共有サーバ構成の場合は複数のユーザ・プロセス処理に同じ共有サーバ・プロセスを利用する.


専用サーバ構成の場合

  1. DBに接続を行いたいクライアント側で立ち上がるユーザ・プロセスが、DBサーバへ接続要求を行う.
  2. DBサーバのリスナーが接続要求を受け取り、DBサーバ内に専用のサーバ・プロセスを立ち上げ、接続の確立を行う (以後のSQL処理の実行命令や実行結果の返却はサーバ・プロセスを介して行われる).
  3. ユーザが接続介してログイン処理を行い、成功後にセッションが確立される.


専用サーバ構成の簡易図


共有サーバ構成の場合

  1. DBに接続を行いたいクライアント側で立ち上がるユーザ・プロセスが、DBサーバへ接続要求を行う.
  2. DBサーバのリスナーが接続要求を受け取り、DBサーバ内の負荷の最も低いディスパッチャに接続を中継する (以後のSQL処理の実行命令や実行結果の返却はディスパッチャを経由し、SGA内のキューに溜め込まれ、共有サーバ・プロセスで処理される).
  3. ユーザが接続を介してログイン処理を行い、成功後にセッションが確立される.


共有サーバ構成の簡易図

尚、デフォルトで起動するディスパッチャの数は1つであり、複数起動したい場合は初期化パラメータのDISPATCHERSを指定する. 共有サーバ・プロセスは負荷や構成に応じて自動的にスケールされるが、同時に実行できる共有サーバ・プロセス数の最大値は初期化パラメータのMAX_SHARED_SERVERSで指定できる.


専用サーバ構成と共有サーバ構成の使い分け

共有サーバ構成は、ユーザ毎にサーバ・プロセスを生成する専用サーバ構成と比較して、前もって生成された1つ以上の共有サーバ・プロセスを使用するため、リソースを効率的に使用することが出来る.

以下のような場合は専用サーバ・構成を使用する.

  1. ローカル接続を行う場合 (常に専用サーバ接続が行われる).
  2. バッチ処理など、継続的にサーバ・プロセスに負荷を与える処理の場合.
  3. Recovery Manager(RMAN)を使用して、データベースのバックアップ/リストア/リカバリを行う場合.