Oracle Net Servicesには柔軟性のある使用しやすい各種オプションが用意されているためネットワークの設計と管理を容易に実行できます。Oracle Net Servicesでは拡張性と管理容易性が向上したため様々な環境をサポートするためのネットワークを構築できます。これらの環境が単純なワークグループであるか大規模でミッション・クリティカルな企業であるかどうかは関係ありません。
この章では、Oracle Net Servicesを使用してネットワークを計画するときに考慮する必要がある点を説明します。またネットワーク製品の関係と今後ネットワークを拡張してさらに効率的に管理するためのオプションを説明します。
この章の内容は、次のとおりです。
図7-1で示すように内部ネットワークは多くの場合、様々なクライアントで構成されています。データベース・サーバーへのアクセスを必要とする従来のクライアントの他にWebクライアントもアクセスを必要としています。クライアントのタイプと数は他のネットワーキングの問題と同様、デプロイする機能の種類に影響します。
この項では内部ネットワークのデプロイメント時の考慮点について次のカテゴリに分けて説明します。
数百または数千のクライアントからなる組織では拡張性が最も重要な問題です。Oracle Net Servicesは共有サーバー、接続プーリング、およびセッションの多重化などデータベース・サーバーの拡張性を改善できる多数の機能を提供します。
共有サーバー・アーキテクチャではサーバー・プロセスの小規模プールによる多数のクライアントの処理が可能になります。このためサーバーのメモリー要件を軽減します。接続プーリングとセッションの多重化機能は共有サーバーによって可能になります。
Oracle Connection Managerで使用可能なセッションの多重化によって、複数のクライアント・セッションを単一のプロトコル接続を経由して集中化できます。
セッションの多重化を接続プーリングと一緒に使用すると、サーバーが処理できるクライアント・セッションの合計数を増加できます。
表7-1では、接続プーリングとセッションの多重化を使用するときの相対的なメリットをまとめ、ネットワーク内でそれらを使用するための推奨事項を示します。
機能 | メリット | デメリット | 推奨環境 |
---|---|---|---|
接続プーリング |
|
データベース・セッションは、 |
メッセージ送信、OLAPなど、対話形式の評価/検索の時間頻度が高いアプリケーションを多数のクライアントで実行するようなネットワーク |
セッションの多重化 |
|
クライアントはOracle Connection Managerに接続する必要があります。 |
持続的接続が必要なネットワーク |
データベースへの可用性を実現することは内部ネットワークでは重大な問題です。複数のリスナーを同じデータベース・サービスへのクライアント接続要求が処理できるように構成できます。これは特に各インスタンスにリスナーが対応付けられているOracle Real Application Clusters構成で理想的な構成です。複数のリスナー構成では、接続時フェイルオーバーと接続ロード・バランシング機能を利用できます。
この項で説明する項目は、次のとおりです。
接続記述子に名前をマッピングする適切なネーミング・メソッドの選択は組織の規模によって決まります。
データベースが少ない小規模な組織では、簡易接続ネーミングを使用してデータベース・サーバーのホスト名にTCP/IP接続するか、またはローカル・ネーミングを使用してクライアント上のtnsnames.ora
ファイルに名前を格納します。
データベースが多い大規模な組織では、ディレクトリ・ネーミングを使用して中央のディレクトリ・サーバーに名前を格納します。
Javaクライアント・アプリケーションは、OracleデータベースにJava Database Connectivity(JDBC)ドライバを介してアクセスします。これはJavaからリレーショナル・データベースへの接続を提供する標準のJavaインタフェースです。オラクル社は次のドライバを提供します。
クライアント側とWebアプリケーション・サーバーのOCIドライバはOracleクライアント・インストレーションと一緒に使用します。
クライアント側のシン・ドライバはOracleをインストールせずに特にアプレットと一緒に使用します。
Oracle Net Servicesはネットワーク上のラウンドトリップ時間を短縮しリスナーのパフォーマンスを改善して使用するプロトコルの数を削減できる多数の機能を提供します。
この項で説明する項目は、次のとおりです。
ネットワーク上にデータを送信する前にOracle Netはデータをバッファリングして、セッション・データ・ユニット(SDU)にカプセル化します。バッファが一杯になりフラッシュされるか、データベース・サーバーがデータを読み出そうとするとOracle Netはこのバッファに格納されているデータを送信します。大量のデータを転送する場合やメッセージのサイズが一貫している場合は、SDUバッファのサイズを調整することによって、パフォーマンス、ネットワークの使用率、メモリー消費を改善できます。SDUはクライアント、Webアプリケーション・サーバーおよびデータベース・サーバーにデプロイできます。
データベースは、たとえクライアントが他のプロトコルを使用するとしても、あるひとつのプロトコル・アドレスでリスニングするように構成するのみで済みます。Oracle Connection Managerはプロトコル変換機能を提供するため、異なるネットワーキング・プロトコルで設定されたクライアントとデータベース・サーバーがお互いに通信できるようになります。
図7-2で示すように、インターネット・ネットワークは通常ファイアウォールで保護されたWebアプリケーション・サーバーにアクセスするWebクライアントで構成されています。また、このWebアプリケーション・サーバーはデータベースに接続します。インターネット・ネットワークには内部ネットワークと同じ要件が多数求められますが、内部ネットワークにはない独自の要件もあります。
この項では両方の要件を説明しており、説明する項目は次のとおりです。
内部ネットワークのようにデータベース・サーバーで共有サーバー、接続プーリング、セッションの多重化を採用すればインターネットの拡張性を改善できます。セッションの多重化はWebアプリケーション・サーバーの層ででも構成できます。これはWebアプリケーション・サーバーのネットワークI/Oの負荷を一部軽減できるためスループットが向上します。
データベースへの可用性の実現はファイアウォールを導入したインターネット・ネットワークでは重大な問題です。1つのファイアウォールが停止した場合に備えてOracle Connection ManagerファイアウォールまたはOracle Netファイアウォール・プロキシを少なくとも2つデプロイすることが重要です。
データベースへのアクセスを制御するには、インターネット・ネットワークのセキュリティが重要です。
この項で説明する項目は、次のとおりです。
安全なネットワーク環境を構築するためには、データベースへのアクセスの付与や制限が重要です。アクセス制御はファイアウォールを介すか、データベース上で構成できます。ファイアウォール・サポートについては、Oracle Connection Managerをファイアウォールとして機能するように構成できます。これにより、特定のデータベース・サービスやコンピュータへのアクセスを、フィルタリング・ルールのセットに基づいてクライアントに許可したり、あるいは制限します。データベースについては、sqlnet.ora
ファイルでアクセス制御パラメータを構成でき、特定のプロトコルを使用するクライアントのアクセスを許可または制限するように指定できます。
権限のないクライアントによるリスナーやデータベース・サーバーへのDoS攻撃を防止するには、認証以前にリソースを保持できる時間の制限を構成します。構成した制限を超えようとするクライアントは接続終了となり、クライアントのIPアドレスを含む監査証跡がロギングされます。
「チューニングとパフォーマンス」で説明されているパフォーマンスとチューニング機能は、インターネット・ネットワークでもデプロイできます。
表7-2では、各ネーミング・メソッドの相対的なメリットおよびデメリットをまとめ、ネットワーク内でそれらのネーミング・メソッドを使用するための推奨事項を示します。
表7-2 ネーミング・メソッド: メリットおよびデメリット
ネーミング・メソッド | メリット/デメリット | 推奨環境 |
---|---|---|
メリット:
デメリット: すべてのネット・サービス名とアドレス変更をローカル側で構成する必要があります。 |
ほとんど変更がなくサービス数の少ない単純な分散ネットワーク |
|
メリット:
デメリット: ディレクトリ・サーバーにアクセスする必要があります。 |
頻繁に変更する大規模で複雑なネットワーク(20以上のデータベースを持つ) |
|
メリット:
デメリット: 推奨環境の欄に示すように使用できる環境に制限があります。 |
次に示す条件に合致する単純なTCP/IPネットワーク
|
|
メリット: 管理者は使用方法を熟知しているツールおよびユーティリティを使用してOracleネット・サービス名をサイト固有のネーム・サービスにロードできます。 デメリット: Oracle Net製品では管理できないサード・パーティのネーミング・サービスが必要です。 |
既存のネーム・サービスを持つネットワーク |
この項ではパフォーマンスに関する考慮事項を説明します。この項で説明する項目は、次のとおりです。
TCP/IPを介してリスニング・プロセス(リスナー、Oracle Connection Managerなど)に対する多数の接続要求を受信することが予想される場合は、Oracle Netを使用してシステム・デフォルトより高い値になるようにリスニング・キューを設定できます。
ネットワーク間の往復回数を減らすようにアプリケーションをチューニングすることは、ネットワーク・パフォーマンスを向上させる最も効果的な方法です。これを行った後セッション・データ・ユニット(SDU)のサイズを調整してデータ転送を最適化することもできます。
SDUは、Oracle Netがネットワーク間でデータを転送する前にデータを配置するバッファです。Oracle Netがバッファ内のデータを送信するのは、データ送信が要求されたときか、バッファがフルのときです。
表7-3はSDUのサイズを変更する際の考慮事項についてまとめています。
表7-3 SDUの考慮事項
SDUサイズの変更が適切な時期 | SDUサイズの変更が適切でない時期 |
---|---|
|
|
表7-4は、デプロイ可能な機能をまとめたものです。
表7-4 Oracle Netの機能の概要
機能 | 関連項目 |
---|---|
拡張性機能 |
|
接続プーリング |
|
セッションの多重化 |
|
共有サーバー |
|
可用性機能 |
|
クライアント・ロード・バランシング |
|
接続時フェイルオーバー |
|
ネーミング・メソッド機能 |
|
ディレクトリ・ネーミング |
|
簡易接続ネーミング |
|
ローカル・ネーミング |
|
JDBCドライバ |
『Oracle Database JDBC開発者ガイドおよびリファレンス』 |
セキュリティ機能 |
|
アクセス制御 |
Oracle Connection Managerを構成する手順は、「アクセス制御の有効化」を参照してください。 sqlnet.oraのアクセス制御パラメータを構成する手順は、「データベース・アクセス制御の構成」を参照してください。 |
リスナーおよびデータベース・サーバー接続の制限 |
「権限のないユーザーによるリソース使用を制限するためのリスナーおよびOracle Databaseの構成」 |
チューニングとパフォーマンスの機能 |
|
リスナー・キュー・サイズ |
|
SDUサイズ |
|
プロトコル変換 |
第11章「Oracle Connection Managerの構成と管理」 |