ヘッダーをスキップ
Oracle Database Net Services管理者ガイド
11g リリース1(11.1)
E05725-04
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 ネットワークの計画

Oracle Net Servicesには柔軟性のある使用しやすい各種オプションが用意されているためネットワークの設計と管理を容易に実行できます。Oracle Net Servicesでは拡張性と管理容易性が向上したため様々な環境をサポートするためのネットワークを構築できます。これらの環境が単純なワークグループであるか大規模でミッション・クリティカルな企業であるかどうかは関係ありません。

この章では、Oracle Net Servicesを使用してネットワークを計画するときに考慮する必要がある点を説明します。またネットワーク製品の関係と今後ネットワークを拡張してさらに効率的に管理するためのオプションを説明します。

この章の内容は、次のとおりです。

7.1 組織内でのネットワークのデプロイ

図7-1で示すように内部ネットワークは多くの場合、様々なクライアントで構成されています。データベース・サーバーへのアクセスを必要とする従来のクライアントの他にWebクライアントもアクセスを必要としています。クライアントのタイプと数は他のネットワーキングの問題と同様、デプロイする機能の種類に影響します。

図7-1 内部ネットワークのレイアウト

図7-1の説明は次にあります。
画像の説明

この項では内部ネットワークのデプロイメント時の考慮点について次のカテゴリに分けて説明します。

7.1.1 拡張性

数百または数千のクライアントからなる組織では拡張性が最も重要な問題です。Oracle Net Servicesは共有サーバー接続プーリング、およびセッションの多重化などデータベース・サーバーの拡張性を改善できる多数の機能を提供します。

7.1.1.1 共有サーバー

共有サーバー・アーキテクチャではサーバー・プロセスの小規模プールによる多数のクライアントの処理が可能になります。このためサーバーのメモリー要件を軽減します。接続プーリングとセッションの多重化機能は共有サーバーによって可能になります。

7.1.1.2 接続プーリング

接続プーリングによってデータベース・サーバーはプロトコル接続をタイムアウトできるため、その接続をアクティブなセッションへのサービス提供に使用できます。

7.1.1.3 セッションの多重化

Oracle Connection Managerで使用可能なセッションの多重化によって、複数のクライアント・セッションを単一のプロトコル接続を経由して集中化できます。

セッションの多重化を接続プーリングと一緒に使用すると、サーバーが処理できるクライアント・セッションの合計数を増加できます。

表7-1では、接続プーリングとセッションの多重化を使用するときの相対的なメリットをまとめ、ネットワーク内でそれらを使用するための推奨事項を示します。

表7-1 接続プーリングとセッションの多重化

機能 メリット デメリット 推奨環境

接続プーリング

  • 各プロセスに対して使用されるネットワーク・リソース数を削減します。

  • より多数のクライアントがサポートされます。

  • 一定数に制限されたプロセス接続数に対するクライアント/サーバー・セッション数を最大化します。

  • ネットワーク接続の帯域幅など、ネットワークの通信量とネットワーク・リソースの利用を最適化します。

  • 実ユーザーの識別および監視が可能になります。

  • 中間層Webアプリケーション・サーバー、またはバックエンド・データベースにアクセスする必要があるアプリケーションが、Oracle Application Serverなどの追加サービスをサポートできるようになります。

  • 複数のアプリケーションを持つクライアントに対して必要なトランスポートが1つのみで済みます。

  • データベース・リンクに対して必要なネットワーク接続が1つのみで済みます。

データベース・セッションは、IDLE_TIMEリソース・パラメータを使用する必要があります。

メッセージ送信、OLAPなど、対話形式の評価/検索の時間頻度が高いアプリケーションを多数のクライアントで実行するようなネットワーク

セッションの多重化

  • 各プロセスに対して使用されるネットワーク・リソース数を制限します。

  • 多数のクライアントがサポートされます。

  • 一定数に制限されたプロセス接続数に対するクライアント/サーバー・セッション数を最大化します。

  • リソースの利用を最適化します。

  • 実ユーザーの識別および監視が可能になります。

  • 中間層のアプリケーションによって追加サービスをサポートできるようになります。

  • 複数のアプリケーションを持つクライアントに対して必要なトランスポートが1つのみで済みます。

  • データベース・リンクに対して必要なネットワーク接続が1つのみで済みます。

  • Oracle8以前のクライアントへのサポートを提供します。

クライアントはOracle Connection Managerに接続する必要があります。

持続的接続が必要なネットワーク


7.1.2 可用性

データベースへの可用性を実現することは内部ネットワークでは重大な問題です。複数のリスナーを同じデータベース・サービスへのクライアント接続要求が処理できるように構成できます。これは特に各インスタンスにリスナーが対応付けられているOracle Real Application Clusters構成で理想的な構成です。複数のリスナー構成では、接続時フェイルオーバー接続ロード・バランシング機能を利用できます。

この項で説明する項目は、次のとおりです。

7.1.2.1 接続時フェイルオーバー

接続時フェイルオーバーではクライアントは最初のリスナーが失敗した場合に別のリスナー(通常は異なるノード上の)に要求を送ることができます。

7.1.2.2 クライアント・ロード・バランシング

クライアント・ロード・バランシングではクライアントは複数のリスナー(通常は異なるノード上)に要求をランダム化できます。

これらの機能は一緒に、または別々に使用できます。一緒に使用するとデータベースへのアクセスの確実性が高められ単一のリスナーが過負荷にならないように負荷を分散できます。

7.1.3 ネーミング・メソッド

接続記述子に名前をマッピングする適切なネーミング・メソッドの選択は組織の規模によって決まります。

データベースが少ない小規模な組織では、簡易接続ネーミングを使用してデータベース・サーバーのホスト名にTCP/IP接続するか、またはローカル・ネーミングを使用してクライアント上のtnsnames.oraファイルに名前を格納します。

データベースが多い大規模な組織では、ディレクトリ・ネーミングを使用して中央のディレクトリ・サーバーに名前を格納します。


関連項目:


ネーミング・メソッドの選択の詳細は、「ネーミングの考慮事項」を参照してください。

7.1.4 JDBCドライバ

Javaクライアント・アプリケーションは、OracleデータベースにJava Database Connectivity(JDBC)ドライバを介してアクセスします。これはJavaからリレーショナル・データベースへの接続を提供する標準のJavaインタフェースです。オラクル社は次のドライバを提供します。

  • クライアント側とWebアプリケーション・サーバーのOCIドライバはOracleクライアント・インストレーションと一緒に使用します。

  • クライアント側のシン・ドライバはOracleをインストールせずに特にアプレットと一緒に使用します。

7.1.5 セキュリティ

内部ネットワークがファイアウォール内にデプロイされているか確認してください。


関連項目:


内部ネットワーク向けセキュリティの提供の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

7.1.6 チューニングとパフォーマンス

Oracle Net Servicesはネットワーク上のラウンドトリップ時間を短縮しリスナーのパフォーマンスを改善して使用するプロトコルの数を削減できる多数の機能を提供します。

この項で説明する項目は、次のとおりです。

7.1.6.1 リスナー・キュー・サイズ

リスニング・プロセスに対する多数の接続要求を受信することが予想される場合はリスナー・キューのサイズを増大できます。

7.1.6.2 セッション・データ・ユニット(SDU)サイズ

ネットワーク上にデータを送信する前にOracle Netはデータをバッファリングして、セッション・データ・ユニット(SDU)にカプセル化します。バッファが一杯になりフラッシュされるか、データベース・サーバーがデータを読み出そうとするとOracle Netはこのバッファに格納されているデータを送信します。大量のデータを転送する場合やメッセージのサイズが一貫している場合は、SDUバッファのサイズを調整することによって、パフォーマンス、ネットワークの使用率、メモリー消費を改善できます。SDUはクライアント、Webアプリケーション・サーバーおよびデータベース・サーバーにデプロイできます。

7.1.6.3 プロトコル変換

データベースは、たとえクライアントが他のプロトコルを使用するとしても、あるひとつのプロトコル・アドレスでリスニングするように構成するのみで済みます。Oracle Connection Managerはプロトコル変換機能を提供するため、異なるネットワーキング・プロトコルで設定されたクライアントとデータベース・サーバーがお互いに通信できるようになります。

7.2 インターネットでのネットワークのデプロイ

図7-2で示すように、インターネット・ネットワークは通常ファイアウォールで保護されたWebアプリケーション・サーバーにアクセスするWebクライアントで構成されています。また、このWebアプリケーション・サーバーはデータベースに接続します。インターネット・ネットワークには内部ネットワークと同じ要件が多数求められますが、内部ネットワークにはない独自の要件もあります。

この項では両方の要件を説明しており、説明する項目は次のとおりです。

図7-2 インターネット・ネットワークのレイアウト

図7-2の説明は次にあります。
画像の説明

7.2.1 拡張性

内部ネットワークのようにデータベース・サーバーで共有サーバー、接続プーリング、セッションの多重化を採用すればインターネットの拡張性を改善できます。セッションの多重化はWebアプリケーション・サーバーの層ででも構成できます。これはWebアプリケーション・サーバーのネットワークI/Oの負荷を一部軽減できるためスループットが向上します。

7.2.2 可用性

データベースへの可用性の実現はファイアウォールを導入したインターネット・ネットワークでは重大な問題です。1つのファイアウォールが停止した場合に備えてOracle Connection ManagerファイアウォールまたはOracle Netファイアウォール・プロキシを少なくとも2つデプロイすることが重要です。

7.2.3 ネーミング・メソッド

インターネット・ネットワークではローカル・ネーミング・メソッドでデータベースに接続するために必要なWebアプリケーション・サーバーを構成します。


関連項目:


ネーミング・メソッドの選択の詳細は、「ネーミングの考慮事項」を参照してください。

7.2.4 JDBCドライバ

Webアプリケーション・サーバーに常駐するJavaアプリケーションはJDBC OCIドライバが必要です。

7.2.5 セキュリティ

データベースへのアクセスを制御するには、インターネット・ネットワークのセキュリティが重要です。

この項で説明する項目は、次のとおりです。

7.2.5.1 アクセス制御

安全なネットワーク環境を構築するためには、データベースへのアクセスの付与や制限が重要です。アクセス制御はファイアウォールを介すか、データベース上で構成できます。ファイアウォール・サポートについては、Oracle Connection Managerをファイアウォールとして機能するように構成できます。これにより、特定のデータベース・サービスやコンピュータへのアクセスを、フィルタリング・ルールのセットに基づいてクライアントに許可したり、あるいは制限します。データベースについては、sqlnet.oraファイルでアクセス制御パラメータを構成でき、特定のプロトコルを使用するクライアントのアクセスを許可または制限するように指定できます。

7.2.5.2 リスナーおよびデータベース・サーバー接続の制限

権限のないクライアントによるリスナーやデータベース・サーバーへのDoS攻撃を防止するには、認証以前にリソースを保持できる時間の制限を構成します。構成した制限を超えようとするクライアントは接続終了となり、クライアントのIPアドレスを含む監査証跡がロギングされます。

7.2.5.3 チューニングとパフォーマンス

「チューニングとパフォーマンス」で説明されているパフォーマンスとチューニング機能は、インターネット・ネットワークでもデプロイできます。

7.3 ネーミングの考慮事項

表7-2では、各ネーミング・メソッドの相対的なメリットおよびデメリットをまとめ、ネットワーク内でそれらのネーミング・メソッドを使用するための推奨事項を示します。

表7-2 ネーミング・メソッド: メリットおよびデメリット

ネーミング・メソッド メリット/デメリット 推奨環境

ローカル・ネーミング

メリット:

  • ネット・サービス名アドレスを解決する比較的簡単な方法です。

  • 異なるプロトコルを実行しているネットワーク間でネット・サービス名を解決します。

デメリット: すべてのネット・サービス名とアドレス変更をローカル側で構成する必要があります。

ほとんど変更がなくサービス数の少ない単純な分散ネットワーク

ディレクトリ・ネーミング

メリット:

  • ネットワーク名とアドレスを1箇所に集中させるため、名前の変更と更新が管理しやすくなります。このため管理者は数百、数千のクライアントに対して変更を行う必要がありません。

  • ディレクトリはこの他のサービスの名前も格納します。

  • ツールを使用して簡単に構成ができます。

デメリット: ディレクトリ・サーバーにアクセスする必要があります。

頻繁に変更する大規模で複雑なネットワーク(20以上のデータベースを持つ)

簡易接続ネーミング

メリット:

  • 最小のユーザー構成で済みます。ユーザーは接続を確立するためにデータベース・ホスト名のみを指定します。

  • ローカル名構成ファイル(tnsnames.ora)の作成とメンテナンスの必要がありません。

デメリット: 推奨環境の欄に示すように使用できる環境に制限があります。

次に示す条件に合致する単純なTCP/IPネットワーク

  • クライアントおよびサーバーはTCP/IPを使用して接続していること。

  • 拡張接続記述子を必要とする機能がないこと。

外部ネーミング

メリット: 管理者は使用方法を熟知しているツールおよびユーティリティを使用してOracleネット・サービス名をサイト固有のネーム・サービスにロードできます。

デメリット: Oracle Net製品では管理できないサード・パーティのネーミング・サービスが必要です。

既存のネーム・サービスを持つネットワーク


7.4 パフォーマンスに関する考慮事項

この項ではパフォーマンスに関する考慮事項を説明します。この項で説明する項目は、次のとおりです。

7.4.1 リスナー・キュー・サイズ

TCP/IPを介してリスニング・プロセス(リスナー、Oracle Connection Managerなど)に対する多数の接続要求を受信することが予想される場合は、Oracle Netを使用してシステム・デフォルトより高い値になるようにリスニング・キューを設定できます。

7.4.2 セッション・データ・ユニットのサイズによるデータ転送の最適化

ネットワーク間の往復回数を減らすようにアプリケーションをチューニングすることは、ネットワーク・パフォーマンスを向上させる最も効果的な方法です。これを行った後セッション・データ・ユニット(SDU)のサイズを調整してデータ転送を最適化することもできます。

SDUは、Oracle Netがネットワーク間でデータを転送する前にデータを配置するバッファです。Oracle Netがバッファ内のデータを送信するのは、データ送信が要求されたときか、バッファがフルのときです。

表7-3はSDUのサイズを変更する際の考慮事項についてまとめています。

表7-3 SDUの考慮事項

SDUサイズの変更が適切な時期 SDUサイズの変更が適切でない時期
  • サーバーから戻されるデータが個別のパケットに分かれる場合

  • 遅延の起こる広域ネットワーク(WAN)上にいる場合

  • パケット・サイズが一定している場合

  • 戻されるデータ量が多い場合

  • 「SDUサイズの変更が適切な時期」の欄に記載されている遅延を回避するためにアプリケーションをチューニングできる場合

  • データ伝送の影響がほとんどない高速ネットワークを使用している場合

  • 要求によってサーバーから戻されるデータ量が少ない場合


7.4.3 TCP/IPの固定バッファ・フラッシング

TCP/IPを使用するアプリケーションがいくつかある状況では、Oracle Netのパケットがネットワークにすぐに送出されません。この動作は大量のデータを送出するときに頻繁に実行されます。TCP/IPの実装自体がフラッシュの欠如が原因で許容範囲を超える遅延を引き起こすおそれがあります。この問題を修正するためにはバッファ・フラッシング・プロセスで遅延なしを指定します。


関連項目:


TCP.NODELAYパラメータの詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。

7.5 計画のサマリー

表7-4は、デプロイ可能な機能をまとめたものです。

表7-4 Oracle Netの機能の概要

機能 関連項目

拡張性機能

 


接続プーリング

「接続プーリングの使用」

セッションの多重化

「セッションの多重化の有効化」

共有サーバー

「ディスパッチャの構成」

可用性機能

 


クライアント・ロード・バランシング

「アドレス・リスト・パラメータの構成」


接続時フェイルオーバー

「アドレス・リスト・パラメータの構成」


ネーミング・メソッド機能

 


ディレクトリ・ネーミング

「ディレクトリ・ネーミング・メソッドの構成」


簡易接続ネーミング

「簡易接続ネーミング・メソッドの使用」


ローカル・ネーミング

「ローカル・ネーミング・メソッドの構成」


JDBCドライバ

『Oracle Database JDBC開発者ガイドおよびリファレンス』


セキュリティ機能

 


アクセス制御

Oracle Connection Managerを構成する手順は、「アクセス制御の有効化」を参照してください。

sqlnet.oraのアクセス制御パラメータを構成する手順は、「データベース・アクセス制御の構成」を参照してください。

リスナーおよびデータベース・サーバー接続の制限

「権限のないユーザーによるリソース使用を制限するためのリスナーおよびOracle Databaseの構成」


チューニングとパフォーマンスの機能

 


リスナー・キュー・サイズ

「リスナーの起動と停止」

SDUサイズ

「セッション・データ・ユニットの構成」


プロトコル変換

第11章「Oracle Connection Managerの構成と管理」