日本語PDF

4 ネットワーク環境の構成

Oracle Databaseのインストールしたら、最小限に構成されたクライアント/サーバー・ネットワーク環境で十分に機能的なデータベースとなります。この章は、クライアント/サーバー・ネットワークを構成するのに役立ちます。

これらの項では、クライアント/サーバー・ネットワークの完全な構成について説明します。

4.1 ネットワーク構成の理解

クライアントは、Oracle Databaseに接続してデータを送信または取得する任意のアプリケーションです。Oracle Databaseクライアント・アプリケーションは、Oracle Databaseクライアント・ソフトウェアがインストールされている任意のコンピュータに配置できます。Oracle Netはクライアント・コンピュータおよびOracle Databaseのホスト・コンピュータに存在するソフトウェア・レイヤーです。ネットワークを介してクライアント・アプリケーションおよびデータベース間の接続を確立および保持し、業界標準プロトコルを使用してメッセージを交換します。

クライアント・アプリケーションとデータベースが通信するには、クライアント・アプリケーションで接続するデータベースを識別できる必要があり、データベースは識別情報を提供する必要があります。サービス名を使用してデータベースに接続できます。サービス名はデータベースを論理的に表示したもので、この方法によってクライアントにデータベースを提示します。単一のデータベースを複数のサービスとして提示できます。

サービス名では、クライアント・アプリケーションがサーバーの位置を把握する必要のない、位置の透過性を提供できます。データベースを別の位置に移動する場合は、Oracle Netの再構成のみが必要です。クライアント・アプリケーションへの変更は不要です。

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

4.1.1 Oracle Netリスナー構成

データベース・ホスト上のOracle Netリスナー(リスナー)は、クライアント接続要求をリスニングするプロセスです。着信中のクライアント接続要求を受信し、データベース・サーバーに対する要求の通信量を管理します。

デフォルトのリスナー構成ファイルはlistener.oraという名前で、Oracleホーム・ディレクトリのサブディレクトリnetwork/adminにあります。たとえば、使用するOracleホーム・ディレクトリが/u01/app/oracle/product/11.2.0/dbhome_1の場合は、デフォルトで、listener.oraファイルが/u01/app/oracle/product/11.2.0/dbhome_1/network/adminディレクトリに作成されます。

このファイルには、データベースを識別するプロトコル・アドレスが含まれています。このアドレスはリスナーがリスニングを実行するプロトコルと、プロトコル固有のその他の情報を定義します。たとえば、リスナーを次のプロトコル・アドレスでリスニングを実行するように設定できます。

(DESCRIPTION=
   (ADDRESS=(PROTOCOL=tcp)(HOST=dbhost.example.com) (PORT=1521)))

この例は、リスナーのホスト・コンピュータおよびポート番号を指定するTCP/IPプロトコル・アドレスを示しています。リスナーは、IPバージョン4(IPv4)またはIPバージョン6(IPv6)のいずれかのアドレスを含むネットワーク・インタフェース上で接続要求をリスニングできます。

listener.oraファイルは、インストール時に自動的に構成されます。

構成パラメータにデフォルト値があるため、構成せずにリスナーを起動して使用できます。このデフォルトのリスナーはLISTENERという名前で、起動時にはサービス名をサポートせず、次のTCP/IPプロトコル・アドレスをリスニングしています。

(ADDRESS=(PROTOCOL=tcp)(HOST=host_name)(PORT=1521))

Oracle Databaseは、起動後1分程度でリスナーに登録されます。リスナーによるクライアント要求の転送先になるサービス名またはデータベースは、listener.oraファイルで構成できます。この情報は、リスナーに動的に登録することもできます。リスナーによるサービスおよびデータベースの動的登録は、サービス登録と呼ばれます。

サービス登録は、各データベース・インスタンスのリスナー登録(LREG)プロセス(インスタンスのバックグラウンド・プロセス)によって実行されます。動的サービス登録の場合、listener.oraファイルの変更は必要ありません。

関連項目:

4.1.2 クライアント接続

この項では、データベースへのクライアント接続の要素について説明します。次に例を示します。

接続記述子

クライアントは、接続記述子を使用して接続先のデータベースを指定します。この接続記述子には、プロトコルとデータベース・サービス名が含まれています。データベースには複数のサービス名を定義できるため、接続するサービスの名前を接続記述子に指定する必要があります。事前構成されたデータベースでは、サービス名は1つしかなく、デフォルトでグローバル・データベース名に設定されています。

次の例は、クライアントがmydb.us.example.comというサービス名のデータベースに接続できるようにする接続記述子を示しています。

DESCRIPTION=
   (ADDRESS=(PROTOCOL=tcp)(HOST=my-server)(PORT=1521))
   (CONNECT_DATA=
      (SERVICE_NAME=mydb.us.example.com))

接続要求

ユーザーは接続文字列を指定することで接続要求を開始します。接続文字列には、ユーザー名とパスワード、および接続識別子が含まれています。この接続識別子は、接続記述子そのもの、または1つ以上のリポジトリに格納されたマッピング情報を使用して接続記述子に解決される名前です。リポジトリへのアクセスには、ネーミング・メソッドで説明するネーミング・メソッドを使用します。この名前をネット・サービス名と呼びます。

ネーミング・メソッド

ネーミング・メソッドとは、クライアント・アプリケーションがデータベース・サービスへの接続を試みるときに、接続識別子を接続記述子に解決するために使用する解決方法です。

Oracle Netでは、次のネーミング・メソッドがサポートされています。

  • 簡易接続ネーミング

    簡易接続ネーミング・メソッドでは、クライアントはホスト名とサービス名で構成されるTCP/IP接続文字列のみを使用してOracle Databaseに接続できます。簡易接続ネーミング・メソッドは構成の必要がありません。簡易接続ネーミングの例は、クライアント・コンピュータからOracle Databaseへの接続を参照してください。

  • ローカル・ネーミング

    ローカル・ネーミング・メソッドでは、ネット・サービス名によって識別される接続記述子がtnsnames.oraというクライアント構成ファイルに格納されます。このファイルは、ORACLE_HOME/network/adminディレクトリにあります。Oracle Database Configuration Assistant(DBCA)を使用してデータベースを作成する場合、ローカル・ネーミングは自動的に構成されます。その後、Net Configuration Assistantを使用して接続記述子およびその接続記述子に対応するネット・サービス名を作成する必要があります。

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

    ディレクトリ・ネーミングでは、データベース・サービス、ネット・サービス名またはネット・サービス別名がLDAP準拠のディレクトリ・サーバーに格納された接続記述子に解決されます。

関連項目:

4.1.3 ネットワーク構成ツール

Oracle Databaseにはネットワーク構成を管理するためのツールが提供されています。次に例を示します。

Net Configuration Assistant

データベースの標準インストールでは、Net Configuration Assistantによって、TCP/IPリスニング・プロトコル・アドレスを持つLISTENERと呼ばれるリスナーがデータベースに対して自動的に構成されます。カスタム・インストールを実行する場合は、選択したリスナー名およびプロトコル・アドレスを構成するよう求められます。

データベースのインストール後の初期ネットワーク構成にはNet Configuration Assistantを使用します。その後、Oracle Net Managerをネットワークの構成および管理に使用できます。

Oracle Net Manager

Oracle Net Managerは、プロファイルの構成を含む様々なネットワーク構成機能を提供します。

注意:

Microsoft Windowsオペレーティング・システムでのみ、データベースのインストール時に、管理者ではない、権限の低いWindowsユーザー・アカウントをOracleホーム・ユーザーとして指定した場合、Net Configuration AssistantおよびOracle Net Managerにアクセスすると、Oracleホームのユーザー・パスワードの入力を求められます。

関連項目:

4.2 リスナー構成の表示

Oracle Netリスナー(リスナー)はデータベース・ホストで実行され、クライアントからの受信リクエストを処理します。リスナーのステータスはコマンドラインから表示可能です。

コマンドラインからリスナーの情報を表示するには、次のようにします。

  1. コマンド・ウィンドウを開きます。
  2. 「オペレーティング・システムの環境変数の構成」のステップに従います。
  3. 次のコマンドを入力します。
    lsnrctl status

4.3 リスナーの起動および停止

Oracleリスナーは、ホストが再起動するたびに自動的に起動するように設定されています。ただし、システムに予期しない状況が起きたときまたは手動でリスナーを停止したときはコマンドラインで再起動できます。

コマンドラインからリスナーを起動または停止するには、次のようにします。

  1. コマンド・ウィンドウを開きます。
  2. 「オペレーティング・システムの環境変数の構成」のステップに従います。
  3. リスナーを起動するか、または停止するかに応じて、次のいずれかのコマンドを入力します。
    lsnrctl start
    lsnrctl stop

4.4 クライアント・コンピュータからOracle Databaseへの接続

この項では、SQL*Plusの使用方法、およびクライアント・コンピュータからOracle Databaseに接続するための簡易接続ネーミング・メソッドについて説明します。通常、SQL*Plusは、Oracle Databaseクライアント・ソフトウェアのインストール時にインストールされます。簡易接続ネーミング・メソッドを使用すると、Oracle Net Servicesを構成せずにデータベースへのTCP/IP接続を確立できます。

この項の手順を使用すると、ネットワーク構成をテストできます。

簡易接続ネーミングを使用してクライアント・コンピュータからOracle Databaseに接続するには、次の手順を実行します。

  1. オペレーティング・システムの環境変数の構成のステップを完了します。
  2. 次のいずれかの操作を実行してSQL*Plusを起動します。
    • (UNIX、LinuxまたはWindowsシステム)コマンド・ウィンドウを開いて次のコマンドを入力します。

      sqlplus
      
    • (Windowsシステムのみ)「スタート」をクリックし、「プログラム」(または「すべてのプログラム」)→「Oracle - HOME_NAME」→「Application」「Development」「SQL*Plus」を選択します。

  3. プロンプトが表示されたら、ユーザー名の後にアットマーク(@)と接続識別子を入力します。接続識別子の書式は次のとおりです。
    "host[:port][/[service_name][:server][/instance_name]]"
    

    接続識別子の書式で使用されるプレース・ホルダーには次の意味があります。

    • host: Oracle Databaseホスト・コンピュータの名前またはIPアドレスです。

      IPv4とIPv6の両方のアドレスがサポートされています。IPv6アドレスは大カッコで囲む必要があります。IPv6アドレスの使用の詳細は、Oracle Database Net Services管理者ガイドを参照してください。

    • port(オプション): Oracle Netリスナーが接続をリスニングするTCPポート番号です。

      portを除外すると、標準ポート番号1521が想定されます。

    • service_name: データベース・サービス名です。

      データベース・サービス名が定義されていない場合は、データベース用に作成されるデフォルト・サービスの名前を使用できます。このサービス名には、次のようにDB_NAMEDB_DOMAIN初期化パラメータで構成されるグローバル・データベース名が使用されます。

      DB_NAME.DB_DOMAIN
      

      DB_DOMAINがNULLの場合、標準サービス名はDB_NAMEのみになります。

    • server: サービス・ハンドラのタイプです。有効な値は、dedicatedsharedおよびpooledです。省略されている場合、サーバーのデフォルトのタイプはリスナーによって選択され、構成されている場合は共有サーバー、それ以外の場合は専用サーバーになります。

    • instance_name: 接続先のインスタンスです。インスタンス名のみを指定した場合、デフォルトのデータベース・サービスに接続されます。デフォルトのサービスがlistener.oraファイルに構成されていない場合は、エラーが生成されます。インスタンス名はINSTANCE_NAME初期化パラメータから取得できます。

    たとえば、ホストdbhost.example.comのデータベース・サービスorcl.example.comにユーザーNICKとして接続する場合は、ユーザー名のプロンプトに次のように入力します。

    nick@"dbhost.example.com/orcl.example.com"
    

    次の例では、ホスト名がIPv4およびIPv6のアドレスに置き換えられています。

    nick@"192.0.2.1/orcl.example.com"
    nick@"[2001:0DB8:0:0::200C:417A]/orcl.example.com"
    
  4. プロンプトが表示されたら、ユーザー・パスワードを入力します。

注意:

Oracle Databaseリリース19c以降、簡易接続ネーミングの構文が拡張されています。詳細は、簡易接続プラスについてを参照してください。

関連項目:

4.4.1 簡易接続プラスについて

Oracle Databaseリリース19c以降、簡易接続ネーミングの構文が拡張されています。

接続識別子の書式は次のとおりです。

"[[protocol:]//]host1{,host12}[:port1]{,host2:port2}[/[service_name][:server]
[/instance_name]][?parameter_name=value{&parameter_name=value}]"

接続識別子の書式で使用されるプレース・ホルダーには次の意味があります。

  • protocol: Oracle Databaseのホスト・コンピュータへの接続に使用する必要があるトランスポート・プロトコルです。サポートされている値は、TCPおよびTCPSです。デフォルト値はTCPです。

  • host1{,host12}[:port1]{,host2:port2}

    Oracle Databaseリリース19c以降、接続識別子で複数のホストまたはポートを使用できます。このことは、クライアント接続のロード・バランシングに役立ちます。

    たとえば、salesserver1:1521,salesserver2,salesserver3:1522/sales.us.example.comは、次の接続記述子に変換されます。

    (DESCRIPTION=(LOAD_BALANCE=ON)
    		(ADDRESS=(PROTOCOL=tcp)(HOST=salesserver1)(PORT=1521))
    		(ADDRESS=(PROTOCOL=tcp)(HOST=salesserver2)(PORT=1522))
    		(ADDRESS=(PROTOCOL=tcp)(HOST=salesserver3)(PORT=1522))
    	(CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
    
  • parameter_name=value(オプション): 名前と値のペアおよびその値。疑問符(?)は、名前と値のペアの開始を示し、アンパサンド(&)は名前と値のペアの間のデリミタです。

    たとえば、tcps://salesserver1:1521/sales?ssl_server_cert_dn="cn=sales,cn=OracleContext,dc=us,dc=example,dc=com"&wallet_location="\tmp\oracle"は次に変換されます。
    (DESCRIPTION=
         (ADDRESS=(PROTOCOL=tcps)(HOST=salesserver1)(PORT=1521))
         (SECURITY=
         (SSL_SERVER_DN_MATCH=TRUE) (MY_WALLET_DIRECTORY=/tmp/oracle)
         (SSL_SERVER_CERT_DN=cn=sales,cn=OracleContext,dc=us,dc=example,dc=com))      
         (CONNECT_DATA=(SERVICE_NAME=sales)))

    wallet_locationssl_server_cert_dnの名前と値のペアに加えて、他の名前と値のペアも接続識別子に指定できます。詳細は、Oracle Database Net Services管理者ガイドを参照してください。

serverservice_nameおよびinstance_nameの詳細は、「クライアント・コンピュータからOracle Databaseへの接続」を参照してください

4.5 ネットワーク環境の構成: Oracle by Example Series

Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEシリーズでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。

シリーズは次のチュートリアルで構成されます。
  1. リスナー制御ユーティリティを使用したリスナーの管理

  2. クライアント・コンピュータからOracle Databaseへの接続

前述のチュートリアルには2つの方法でアクセスできます。
  • 前述のチュートリアルのクリック可能なリストを表示するには、「ネットワーク環境の構成シリーズ」に移動します。

  • チュートリアル・シリーズを介してシームレスにナビゲートするには、次のリンクにアクセスしてください。

    ネットワーク環境の構成

    ペイン下部にある「>」ボタンをクリックして、チュートリアル間を移動できます。