OracleDB 8の概要:共有サーバー・モードの構成

この記事は、オラクルの接続モード専用サーバーと共有サーバーから複製されていますが、独自の変更が少し加えられています。

1.まとめ

ORACLEデータには2つの接続モードがあります。1つはセッションが接続を確立する専用サーバーモードで、もう1つは複数のセッションが1つの接続を共有する共有サーバーモードです。さまざまなシナリオで、適切に使用すると、アプリケーションのアクセス効率とコマンド実行効率を大幅に向上させることができます。

2.専用サーバー

専用サーバーとは、その名前が示すように、サーバー接続は1人のユーザーのみが利用でき、他のユーザーと共有できないことを意味します。ユーザーが専用サーバーを使用して接続を要求すると、サーバーはユーザーがサービスを提供するための接続プロセスを作成します。プロセス名はoracle + $ ORACLE_SIDです。ここで、ORACLE_SIDはインスタンスIDです。

[oracle@2e607b5e45a9 admin]$ ps -aux | grep oracle$ORACLE_SID
oracle     637  0.0  3.4 391252 68832 ?        Ss   11:04   0:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle     802  0.0  0.0   2936   444 ?        S+   11:38   0:00 grep --color=auto oracleorcl

専用サーバーの概略図は次のとおりです。

ユーザーがログインすると、セッションに特化したサービスを提供するプロセスが常に作成されます。新しいセッションが確立されるたびに、リスナーは専用サーバーを作成して専用サービスを提供し、セッションは専用サーバーに1対1で対応します。ユーザーのクライアントプロセスは、特定のネットワークチャネルを介して専用サーバーと直接通信し、送信するSQLおよびPL / SQL呼び出しに応答します。

3.共有サーバー

共有サーバーは、接続プールの原則と同様に理解できます。セッションは多数ありますが、使用可能な接続の数は確実です。リソーススケジューリングにより、セッションを動的に管理してインスタンスとの接続を確立します。これらの接続は、すべてのセッションで共有されます。これにより、リソースの負荷を効果的に減らすことができます。

 

共有サーバーの原理を次の図に示します。

        共有サーバープロセスの共有により、スケジューリングの有効性を確保するために、クライアントプロセスと共有サーバー通信の間にスケジューリングメカニズム(スケジューリングプログラム)を確立する必要があります。ユーザーは接続要求を行います。接続要求を受信した後、リスナーは呼び出すことができるディスパッチャの1つを選択し、接続ポートなどの情報をユーザーに返します。ディスパッチャは対応するポートで待機し、クライアントプロセスコーディネーターに接続します。スケジューラーに接続した後、ユーザー要求はSGAの要求キューに転送され、最初のアイドル状態の共有サーバーが要求を取得して処理します。処理が完了すると、共有サーバーは結果を応答キューに配置します。スケジューラーは常に応答キューを監視しており、結果が見つかると、その結果をユーザーに渡します。

         上記のように、共有サーバーモデルにはさらに2つのプロセスがあります。スケジューリングプロセスと共有サーバープロセスです。ユーザープロセスはリスナーに接続し、リスナーはスケジューリングプロセスへのリンクをディスパッチする責任があります。このようにして、ユーザープロセスはスケジューリングプロセスに直接リンクされます。スケジューリングプロセスも関連するポートを監視していることがわかります。このプロセスはTCP接続プロセスに似ています。サーバーのリッスンハンドルが接続のディスパッチを担当し、サーバーへの実際の接続は受け入れ後のハンドルです。 。

4.共有サーバーモードの設定を設定します

専用サーバーこれはORACLEのデフォルトの起動オプションであり、追加の設定は必要ありません。さらに、一部の管理コマンド(起動など)は専用サーバーを介して接続する必要があります。以下に、共有サーバーモードの構成について説明します。

1.パラメーター:SHARED_SERVERS

SHARED_SERVERSの値が0より大きい場合は、共有モードがアクティブになっていることを示します。

共有サーバーの数:

alter systemset shared_servers = 10;

共有サーバーの最大数(オプション)

alter systemset max_shared_servers = 5 scope=both ;

2.パラメーター:DISPATCHERS

alter systemset dispatchers=’ (PROTOCOL=TCP) (dispatchers=2) ‘;

PROTOCOLは、接続のプロトコルを表します。

ディスパッチャは、ディスパッチャの数を表します。

3.クライアントのtnsnames.ora設定

CONNECT_DATA設定で、共有サーバー接続を使用するには、SERVERの値をDEDICATEDからSHARED(専用接続の場合はDEDICATEDと入力)に変更します。

クライアントのTNSでの構成は次のとおりです。

orcl =

  (説明=

    (アドレス=(プロトコル= TCP)(ホスト= 127.0.0.1)(ポート= 1521))

    (CONNECT_DATA =

      (サーバー=共有

      (SERVICE_NAME = orcl)

    )。

  )。

 

5.サーバーモードの判断

共有サーバーが現在起動されているかどうかを確認するには、次のビューから起動できます。

1. V $ session

    sqlplusを使用してインスタンスとの共有サーバーを確立したことがわかります。SERVERタイプはSHAREDであり、NONEの場合は、共有サーバーが有効になっていることも意味します。また、システムのすべてのバックグラウンドプロセスが専用サーバープロセスを開始していることもわかります。

6.共有サーバーモードをオフにします

共有サーバーモードを無効にするには、パラメーターshared_serversの値を0に設定します。

コマンドは次のとおりです。

 alter systemset shared_servers = 0 ;

 

おすすめ

転載: blog.csdn.net/zhaogang1993/article/details/103772806