Oracle Database10g 共有サーバー構成
Oracle | Oracle Database10g |
- インスタンスに接続されているユーザー・プロセスの要求を処理するために、サーバー・プロセスが作成されます。
- 専用サーバー・プロセスは常に使用可能な状態ですが、共有サーバーは、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を初期化パラメータ・ファイルに組み込む。
共有サーバーを構成してみる
初期化パラメータを確認
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 <machine: vboxfedora10, pid: 2056>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47992))
"D001" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6791>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=50261))
"D003" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6834>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47169))
"D002" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6832>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=32946))
"D004" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6836>
(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 <machine: vboxfedora10, pid: 2056>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47992))
"D001" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6791>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=50261))
"D003" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6834>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=47169))
"D002" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6832>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=32946))
"D004" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER <machine: vboxfedora10, pid: 6836>
(ADDRESS=(PROTOCOL=tcp)(HOST=vboxfedora10)(PORT=54712))
The command completed successfully
V$DISPATCHER ビューの確認
SQL*Plusで接続し、共有サーバーに接続していることを確認
V$SESSION ビュー
- V$SESSION ビューの、SERVER列が、'NONE'、'SHARED'なら共有サーバー。'DEDICATED' なら 専用サーバー
V$CIRCUIT ビュー
- V$CIRCUIT ビューでは、共有サーバーの情報のみが表示される
共有サーバーとして構成されたデータベースに専用サーバー接続を行う
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) になっている