Oracle共有サーバ接続を利用するORACLE MASTER Silver DBA講座(16)

ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!

» 2007年06月20日 00時00分 公開
[有限会社 G.F.インフィニティ (Project - ∞)]

 本連載第14回「Oracleのネットワークのサーバ側構成とは?」、第15回「Oracleのネットワークのクライアント側構成を知る」で、Oracle Net Servicesを学びました。今回はOracle共有サーバを紹介します。

Oracle共有サーバ

ポイント

 共有サーバ構成に必要な手順と、共有サーバ接続を行った場合の特徴について確認します。特に共有サーバ接続時の処理の流れやアーキテクチャの特徴については、詳細な部分も含めて理解しておきましょう。

専用サーバ接続と共有サーバ接続

 Oracle Netを使用した接続には、専用サーバ接続と共有サーバ接続があります。共有サーバ接続を使用するためには、Oracleサーバ側を共有サーバ構成にする必要があります。

  • 専用サーバ接続

専用サーバ接続では、ユーザープロセスとサーバプロセスが1対1で対応付けられます。そのため、セッションに関する情報やカーソル情報、作業領域などを含むUGA(User Global Area)は、サーバプロセスが持つPGA(Program Global Area)に格納されます。セッションごとにサーバプロセスが必要となるため、多くのセッションが確立される環境では、サーバ側に多くのCPUとメモリリソースが必要となります。

図1 専用サーバ接続 図1 専用サーバ接続
  • 共有サーバ接続

共有サーバ接続では、サーバプロセスは複数のユーザープロセスからのSQL処理要求を受け止めることが可能です。共有サーバ構成では、最低1つのディスパッチャプロセスが起動し、ユーザープロセスとの接続を確立します。セッションが切断されるまでは同一のディスパッチャが使用され、ディスパッチャからサーバプロセスにSQL処理が渡されます。多くのセッションが確立されていても、SQL処理が少ない環境では少ないサーバプロセスで済むため、サーバ側で使用するCPUとメモリリソースが減少します。

図2 共有サーバ接続 図2 共有サーバ接続

 共有サーバ構成では、SGA(System Global Area)内に要求キューと応答キューが確保されます。ディスパッチャが受け止めたSQLは、要求キューに格納され、サーバプロセスがSQLを取り出して処理します。SQL処理の結果は、ディスパッチャごとに用意される応答キューに格納され、ディスパッチャが結果を取り出してユーザープロセスに戻します。

図3 共有サーバ構成 図3 共有サーバ構成

共有サーバ接続の構成

 共有サーバ構成においては、必要なディスパッチャ、共有されるサーバプロセスの数を初期化パラメータで構成します。

 関連する初期化パラメータには次のものがあります。

  • DISPATCHERS

ディスパッチャの初期起動数をプロトコルごとに構成します。共有サーバ構成では、1つ以上のディスパッチャが必要です。同時接続50に対し、1つのディスパッチャを用意するのが目安となります。

 ディスパッチャは自動で追加されることはありません。ディスパッチャ数を変更するには、手動で起動する必要があります。

DISPATCHERS =

'(PROTOCOL=TCP)(DISPATCHERS=2)',

'(PROTOCOL=IPC)(DISPATCHERS=1)',

  • SHARED_SERVERS

共有サーバプロセスの初期起動数を構成します。共有サーバ構成では、1つ以上の共有サーバプロセスが必要です。同時接続25に対し、1つの共有サーバプロセスを用意するのが目安ですが、同時に実行されるSQL数によっては、もう少し多くの同時接続に対応することができます。

 共有サーバプロセスは、必要に応じて、自動で追加起動されます。

SHARED_SERVERS = 5

  • MAX_SHARED_SERVERS

起動される共有サーバプロセスの最大数を構成します。共有サーバプロセスは必要に応じて自動起動されますが、MAX_SHARED_SERVERSを超えることはありません。サーバマシンのリソースのうち、共有サーバプロセスに割り当て可能なリソースを基に、あらかじめ設定しておきます。デフォルトでは無制限となっています。

  • CIRCUITS

ディスパッチャと共有サーバプロセスを使用したユーザーからの接続は、Oracleサーバ内では仮想サーキットというもので管理されています。CIRCUITS初期化パラメータは、仮想サーキットの最大数を構成します。デフォルトでは共有サーバ構成の際、SESSIONS初期化パラメータと等しい値が設定されます。接続総数を制限する必要がある場合に構成します。

  • SHARED_SERVER_SESSIONS

共有サーバ接続を行うセッションの最大数を構成します。このパラメータを使用することで、最大セッション数(SESSIONS)との差分を専用サーバ接続分として予約できるようになります。デフォルトでは無制限となっています。

問題

問題1

共有サーバの構成に関する説明として正しいものを2つ選択しなさい。

a.カーソル領域とセッション情報は共有プールまたはラージプールに割り当てられる
b.カーソル領域とセッション情報はSGAの外に割り当てられる
c.スタック空間は共有プールに割り当てられる
d.スタック空間はラージプールに割り当てられる
e.スタック空間はSGAの外に割り当てられる

正解:a、e

解説

 前回、宿題とした問題です。

 ユーザーセッションに関連したメモリはUGAと呼ばれ、次のメモリが含まれます。

  • カーソル領域

取得した行などのSQL文の実行メモリを含みます。

  • セッション情報

セキュリティやリソース使用率に関する情報を含みます。

 Oracleサーバに接続するプロセス(バックグラウンドプロセス、サーバプロセス)は、それぞれPGAを獲得します。サーバプロセスの場合、PGAにスタック空間(プロセスのローカル変数を含む)が獲得されます。

 共有サーバ接続では、専用サーバ接続とはUGAの使用方法が異なります。

  • 専用サーバ接続時

UGA、スタック空間ともにPGA内に獲得されます。

  • 共有サーバ接続時

UGAはSGA内(共有プールまたはラージプール)、スタック空間はPGA内に獲得されます。

 専用サーバ接続の場合は選択肢b、eが、共有サーバ接続の場合は選択肢a、e(正解)が当てはまります。

問題2

共有サーバ接続時に、最終的にユーザープロセスと接続を確立するプロセスを選択しなさい。

a.共有サーバプロセス
b.ディスパッチャ
c.リスナー
d.PMON

正解:b

解説

 共有サーバ接続時は、リスナーを経由してディスパッチャが選択されます。ユーザープロセスはディスパッチャと接続を確立します(正解b)。

 そのほかの選択肢の不正解の理由は次のとおりです。

選択肢a:共有サーバプロセスは、ユーザープロセスと直接通信は行いません。ユーザーが発行したSQL文はディスパッチャに送信され、ディスパッチャからSGA内のキューを介して共有サーバに渡されます。結果もまた、ディスパッチャからユーザーに戻されます。

選択肢c:ユーザープロセスが最初に接続を要求するのはリスナーですが、実際に接続を確立するのはリスナーではありません。専用サーバ接続であればサーバプロセスと、共有サーバ接続であればディスパッチャと接続を確立します。

選択肢d:PMONは、ユーザーセッションの確立に直接の関係はありません。ユーザーセッションの異常終了時に対応するサーバプロセスをクリーンアップしたり、ディスパッチャの異常時に再起動したりするのがPMONの役割です。

問題3

共有サーバ構成のキューに関する説明として正しいものを2つ選択しなさい。

a.応答キューは、インスタンスに1つ存在する
b.応答キューは、ディスパッチャごとに存在する
c.要求キューは、ディスパッチャごとに存在する
d.要求キューは、インスタンスに1つ存在する

正解:b、d

解説

 共有サーバ構成では、SGA内に2つのキューが獲得されます。

  • 要求キュー

インスタンスに1つ存在し(正解d)、すべてのディスパッチャで共有します。要求キューに要求(SQL)があれば、共有サーバプロセスが順番に処理を行います。

  • 応答キュー

ディスパッチャごとに1つ存在し(正解b)、クライアントへ戻す結果情報が格納されます。共有サーバプロセスによる処理結果の格納が行われると、ディスパッチャは応答キューから結果を取り出してクライアントに戻します。

宿題

 次回は、「UNDO管理」を確認します。次の宿題を解いておいてください。

問題

データに対する問い合わせ中に次のエラーが発生しました。

ORA-01555: スナップショットが古すぎます。

このエラーを回避するために調整できる設定を3つ選択しなさい。

a.SYSTEM表領域のサイズ
b.UNDO保存期間
c.UNDO表領域のサイズ
d.UNDO保存の保証
e.UNDO表領域の配置場所

IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、「Silver DBA(Oracle10g)」をはじめOracle関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。



Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。