!!!Oracle Database10g 共有サーバー構成 [Oracle][Oracle Database10g] !![専用サーバー・プロセスと共有サーバー・プロセスの概要|http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19224-02/manproc.htm#211404] *インスタンスに接続されているユーザー・プロセスの要求を処理するために、サーバー・プロセスが作成されます。 *専用サーバー・プロセスは常に使用可能な状態ですが、共有サーバーは、1つ以上の初期化パラメータを特別に設定して、構成および使用可能にする必要がある ,サーバー・プロセス,内容 ,専用サーバー・プロセス,単一のユーザー・プロセスのみを処理 ,共有サーバー・プロセス,複数のユーザー・プロセスを処理 !専用サーバー・プロセス *次の状況では、ユーザーと管理者は、専用サーバー・プロセスを使用して明示的にインスタンスに接続する必要がある **バッチ・ジョブを実行する場合 **Recovery Manager(RMAN)を使用して、データベースをバックアップ、リストアまたはリカバリする場合 *Oracle Databaseが共有サーバー用に構成されている場合に専用サーバー接続を要求するには、専用サーバーを使用するように構成されているネット・サービス名を使用して接続する必要があります。具体的に言うと、ネット・サービス名の接続記述子にSERVER=DEDICATED句を含める !共有サーバー・プロセス *共有サーバー・アーキテクチャでは、接続ごとに専用サーバー・プロセスは必要ない ::接続手順 +クライアントのユーザー・プロセスはディスパッチャに接続します。 +ディスパッチャには、同時に複数のクライアント接続をサポートする機能があります。 +各クライアント接続はバーチャル・サーキットにバインドされます。 +バーチャル・サーキットとは、ディスパッチャがクライアントのデータベース接続要求と応答に使用する共有メモリーの一部です。 +ディスパッチャは、要求が到着すると、バーチャル・サーキットを共通キューに入れます。 +アイドル状態の共有サーバー・プロセスは、共通キューからバーチャル・サーキットを選択して要求を処理し、そのバーチャル・サーキットを解放して、共通キューから別のバーチャル・サーキットを取り出します。 *このアプローチでは、小さいサーバー・プロセス・プールで大量のクライアントを処理することが可能です。 *専用サーバー・モデルと比較した共有サーバー・アーキテクチャの大きな利点は、システム・リソースが少なくて済むため、ユーザー数の増加に対応できること。 !!共有サーバー構成 !共有サーバー用初期化パラメータ ,初期化パラメータ,内容 ,SHARED_SERVERS,起動する初期共有サーバー数および最低限保持する共有サーバー数を指定します。共有サーバーを使用するための必須パラメータはこのパラメータのみ。 ,MAX_SHARED_SERVERS,同時に実行可能な共有サーバーの最大数を指定。 ,SHARED_SERVER_SESSIONS,同時に実行可能な共有サーバー・ユーザー・セッションの合計数を指定。 ,DISPATCHERS,共有サーバー・アーキテクチャのディスパッチャ・プロセスを構成 ,MAX_DISPATCHERS,同時に実行可能なディスパッチャ・プロセスの最大数を指定。 ,CIRCUITS,受信および発信用のネットワーク・セッションに使用可能なバーチャル・サーキットの合計数を指定。 !共有サーバーの使用可能化 *共有サーバーを使用可能にするには、SHARED_SERVERS初期化パラメータに0(ゼロ)より大きい値を設定 *動的に起動するには、ALTER SYSTEM文を使用してSHARED_SERVERSパラメータに0(ゼロ)以外の値を設定する。 *またはデータベースの起動時にSHARED_SERVERSを初期化パラメータ・ファイルに組み込む。 !!共有サーバーを構成してみる !初期化パラメータを確認 ::既に[Oracle XML DB|http://www.google.co.jp/custom?hl=ja&safe=off&client=pub-4280062068315072&cof=FORID%3A1%3BGL%3A1%3BLBGC%3A336699%3BLC%3A%230000ff%3BVLC%3A%23663399%3BGFNT%3A%230000ff%3BGIMP%3A%230000ff%3BDIV%3A%23336699%3B&domains=typea.info%3Btypea.dip.jp&q=Oracle+XML+DB+%E5%89%8A%E9%99%A4&btnG=%E6%A4%9C%E7%B4%A2&sitesearch=]用に構成されている!? SQL> show parameters dispatchers NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dispatchers string (PROTOCOL=TCP) (SERVICE=oradb1XDB) max_dispatchers integer SQL> show parameters shared_servers NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ max_shared_servers integer shared_servers integer 1 !ALTER SYSTEM文を使用して、既存のディスパッチャ構成に対するDISPATCHERS属性の設定を変更 ::属性を変更 SQL> alter system set dispatchers = '(PROTOCOL=TCP) (DISPATCHERS=5)'; システムが変更されました。 ::リスナーの確認 $ lsnrctl service LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 15-JUL-2009 09:00:22 Copyright (c) 1991, 2005, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=vboxfedora10)(PORT=1521))) Services Summary... Service "oradb1.vboxfedora10.typea.info" has 1 instance(s). Instance "oradb1", status READY, has 6 handler(s) for this service... Handler(s): "DEDICATED" established:50 refused:0 state:ready LOCAL SERVER "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47992)) "D001" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=50261)) "D003" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47169)) "D002" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=32946)) "D004" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=54712)) Service "oradb1XDB.vboxfedora10.typea.info" has 1 instance(s). Instance "oradb1", status READY, has 0 handler(s) for this service... Service "oradb1_XPT.vboxfedora10.typea.info" has 1 instance(s). Instance "oradb1", status READY, has 6 handler(s) for this service... Handler(s): "DEDICATED" established:50 refused:0 state:ready LOCAL SERVER "D000" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47992)) "D001" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=50261)) "D003" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47169)) "D002" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=32946)) "D004" established:0 refused:0 current:0 max:1022 state:ready DISPATCHER (ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=54712)) The command completed successfully ::V$DISPATCHER ビューの確認 {{ref_image ora_disp01.jpg}} !SQL*Plusで接続し、共有サーバーに接続していることを確認 ::V$SESSION ビュー *V$SESSION ビューの、SERVER列が、'NONE'、'SHARED'なら共有サーバー。'DEDICATED' なら 専用サーバー {{ref_image ora_disp02.jpg}} ::V$CIRCUIT ビュー *V$CIRCUIT ビューでは、共有サーバーの情報のみが表示される {{ref_image ora_disp03.jpg}} !!共有サーバーとして構成されたデータベースに専用サーバー接続を行う !tnsnames.ora に (SERVER = DEDICATED) を追記 ORADB1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.24.56)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oradb1.vboxfedora10.typea.info) ) ) !接続 ::SQL*Plusから接続 SQL> conn exam/abc123@oradb1 接続されました。 ::確認 (SERVER = DEDICATED) になっている {{ref_image ora_disp04.jpg}}