この章では、一般的で単純な構成のTCP/IPネットワークによるクライアント・アプリケーションとデータベース接続について、初心者でも設定およびテストできるように説明します。
この章の内容は、次のとおりです。
このクイック・スタート・ガイドのタスクは、クライアント・コンピュータとデータベース・サーバーとのTCP/IP接続について示します。データベース・サーバーとクライアント・コンピュータは次の条件を満たす必要があります。
データベース・サーバー・コンピュータ
クライアントと同じネットワークで実行中であること。
Oracleデータベースがインストールされていること。
TCP/IPプロトコル・サポートがインストールされていること。
リスナーが構成されていること。
クライアント・コンピュータ
データベース・サーバーと同じネットワークで実行中であること。
Oracleクライアントがインストールされていること。
TCP/IPプロトコル・サポートがインストールされていること。
Oracle Netをクライアント・コンピュータとデータベース・サーバーとの接続に使用する前に、クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できるかどうかを確認します。ネットワークの接続性を評価しておくと、ネットワークに起因するエラーを排除できます。
ネットワークの接続性を確認する手順は次のとおりです。
データベース・サーバーのコンピュータが、ループバック・テストによって自分自身と通信できることを確認します。
ループバック・テストは、データベース・サーバーからそのデータベース・サーバーに戻る接続です。多数のネットワーク・プロトコルが、ネットワーク接続をテストする方法を用意しています。ユーティリティPINGは、TCP/IPネットワークに使用できます。
TCP/IPネットワークでは、各コンピュータは一意のIPアドレスを持ちます。ドメイン・ネーム・システム(DNS)などの名前解決サービスは、そのホスト名を持つコンピュータのIPアドレスをマップするために使用します。名前解決サービスを使用しない場合、マッピングは通常hostsと呼ばれるファイルに格納されるため、集約化して保守されます。このファイルは、UNIXでは/etcディレクトリに、Windowsでは\winntディレクトリにあります。たとえば、sales-serverという名前のデータベース・サーバーのコンピュータのエントリは、次のようになります。
#IP address of server host name alias 192.0.2.203 sales-server sales.us.example.com
PINGを使用するには、コマンドラインから次のように入力します。
ping database_server_host
database_server_hostは、データベース・サーバーのコンピュータのホスト名です。たとえば、次のように指定します。
ping sales-server
ループバックに失敗した場合は、そのデータベース・サーバーのIPアドレスでもう一度試してください。たとえば、次のように指定します。
ping 192.0.2.203
クライアント・コンピュータがデータベース・サーバーのコンピュータと正常に通信できることを確認します。
この方法は、ネットワーク・プロトコルによって様々です。TCP/IPでは、PING、FTP、TELNETユーティリティを使用できます。クライアント・コンピュータがサーバーに接続できない場合、ネットワークのケーブル接続やネットワーク・インタフェース・カードが正しく接続されているかを確認します。これらの問題を解消するには、ネットワーク管理者に連絡してください。
Oracle Net ListenerとOracle Databaseサーバーは、データベース・サーバーが接続を受け取る順番で実行している必要があります。
リスナー制御ユーティリティを使用してリスナーを起動します。コマンドラインから、次のように入力します。
lsnrctl LSNRCTL> START [listener_name]
listener_nameは、listener.oraファイルで定義したリスナーの名前です。LISTENERという名前のデフォルトを使用している場合は、リスナーを識別する必要はありません。
リスナーが正常に起動したことを示すステータス・メッセージが表示されます。
データベースを起動します。
データベースに接続せずにSQL*Plusを起動します。
sqlplus /nolog
SYSDBAとしてデータベースに接続します。
SQL> CONNECT username AS SYSDBA
たとえば、SYSTEMは、SYSDBAユーザーです。パスワードの入力を求めるメッセージが表示されます。
次のように、データベース名とパラメータ・ファイルのフルパスを指定して、STARTUPコマンドを入力します。
SQL> STARTUP database_name pfile=file
PFILEオプションを使用しない場合、Oracleデータベースは標準の初期化パラメータ・ファイルを使用します。このファイルは、UNIXプラットフォーム上では$ORACLE_HOME/dbsディレクトリ、Windows上では、%ORACLE_HOME%\databaseディレクトリにあります。データベース名を指定しない場合、データベースは、初期化パラメータ・ファイルで指定されているDB_NAMEパラメータの値を使用します。
リスナーへのデータベース・サービス登録が、完了していることを確認します。リスナー制御ユーティリティから、次のように入力します。
LSNRCTL> SERVICES [listener_name]
SERVICESコマンドは、データベースがサポートするサービスと、1つ以上の使用可能なサービス・ハンドラの一覧を示します。
ネットワークの接続が確認されると、簡易接続ネーミングを使用して、データベースに接続できます。
|
注意: Oracle Databaseでは、Oracle Database 10gからOracle Namesの使用をサポートしていません。 Oracle Database 11gクライアントおよびデータベースでは、LDAPプロキシを含めて、Oracle Namesで名前を解決することはできません。Oracle8iおよびOracle9iのクライアントでは、引き続きOracle Namesを使用してOracle Database 11gデータベースの名前を解決できますが、Oracle Database 11gの新機能を活用するために、LDAPに移行することをお薦めします。 |
簡易接続ネーミング・メソッドを使用すると、TCP/IP環境でtnsnames.oraファイル内をサービス名で検索する必要がなくなります。このネーミング・メソッドを利用することで、データベースへのTCP/IP接続を簡単に行えるようになります。これにより、クライアントは、データベースのホスト名に加え、次に示すようにオプションのポートやサービス名を使用してデータベース・サーバーに接続できるため、ホスト・ネーミング・メソッドの機能を拡張できます。
CONNECT username@host[:port][/service_name][:server][/instance_name]
|
注意: Oracle Call Interfaceのマニュアルでは、 serverはconnect_typeと呼ばれています。 |
Oracle Databaseサーバーのインストールを「標準」モードで実行した場合、oracleインスタンスで使用されるデフォルトのサービス名はORCLであり、次の簡易接続構文を使用してそのインスタンスに接続できます。
CONNECT username@host/ORCL Enter password: password
Oracle Net Configuration Assistantを使用した代替接続
簡易接続ネーミング・メソッドを使用しない場合は、Oracle Net Configuration Assistantを使用して、データベース・サービスのネット・サービス名、つまり単純な名前を作成できます。ネット・サービス名は、接続記述子に、つまり、データベースのネットワーク・アドレスとデータベース・サービスの名前に解決されます。クライアントはネット・サービス名を使用してデータベースに接続します。
次の例に示すネット・サービス名は、salesと呼ばれ、sales.us.example.comと呼ばれるデータベースの接続記述子にマップされます。 クライアントは、sales.us.example.comへの接続にマップされているsalesを使用できます。
sales=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
ネット・サービス名でクライアントを構成する手順は次のとおりです。
Oracle Net Configuration Assistantを起動します。
「ようこそ」ページが表示されます。
「ローカル・ネット・サービス名構成」を選択します。
「次へ」をクリックします。
「ネット・サービス名の構成」ページが表示されます。
「追加」をクリックしてから「次へ」をクリックします。
「ネット・サービス名の構成」ページの「データベース・バージョン」が表示されます。
宛先サービスがOracle9iまたはOracle8iのデータベースの場合は、Oracle8i以上のデータベースまたはサービスを選択します。宛先サービスがOracle8リリース8.0データベースの場合は、Oracle8リリース8.0のデータベースまたはサービスを選択します。
「次へ」をクリックします。
「ネット・サービス名の構成」ページの「サービス名」が表示されます。
データベースを識別する名前を入力します。
サービス名は、データベースの作成時に定義されます。サービス名が不明な場合は、データベースを作成したデータベース管理者に問い合せてください。
「次へ」をクリックします。
「ネット・サービス名の構成-プロトコルの選択」ページが表示されます。
リスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。デフォルトでは、リスナーはTCP/IPでリスニングを実行するように構成されています。
「次へ」をクリックします。
選択したプロトコルに適切なページが表示されます。
表示されたフィールドで選択したプロトコルに対して適切なプロトコル・パラメータを入力し、「次へ」をクリックします。
「ネット・サービス名の構成」ページの「テスト」が表示されます。
「はい。テストを実行します。」をクリックします。
テスト中、Oracle Net Configuration Assistantは、リモート・データベース・サービスに接続し、接続を確立してから終了します。
テストが成功すると、次のメッセージが表示されます。
Connecting...Test successful.
テストが失敗した場合、原因として考えられることは次のとおりです。
デフォルトのユーザー名(scott)とパスワード(tiger)が有効ではない
プロトコル・アドレスの情報がリスナーの情報と一致していない
リスナーが動作していない
接続先データベース・サービスが停止している
問題の診断に基づいて、次のいずれかのタスクを実行します。
「ログインの変更」をクリックして、接続に使用するユーザー名とパスワードを変更します。
「前へ」をクリックして、プロトコル・アドレスの情報を検討します。
「タスク2: Oracle Net ListenerとOracle Databaseサーバーの起動」で説明されているように、サーバー上でリスナーまたはOracle Databaseを起動します。
「次へ」をクリックします。
「ネット・サービス名の構成」ページの「ネット・サービス名」が表示されます。
デフォルトのネット・サービス名を受け入れるか、別のネット・サービス名を「ネット・サービス名」フィールドに入力します。入力する名前は、クライアントを一意に識別できる必要があります。
「次へ」をクリックします。
「ネット・サービス名の構成-別のネット・サービス名」ページが表示されます。
「いいえ」をクリックしてから「次へ」をクリックします。
「ネット・サービス名の構成が終了しました」ページが表示されます。
クライアント・コンピュータから、次のようにデータベース・サーバーに接続します。
SQL*Plusを起動します。
sqlplus
次のようにデータベースに接続します。
CONNECT username@net_service_name Enter password: password
ここで、usernameとpasswordは、データベース・ユーザーとパスワードです。また、net_service_nameは「タスク3: データベースに接続するためのクライアントの構成」で作成したネット・サービス名です。