クライアントからデータベースサーバ上のデータベースに接続するには、クライアント側で接続するデータベースサーバのホスト名やリスナーなどの接続情報を指定する必要があります。クライアント側でOracle netを構成し、データベースサーバ側で接続要求待ちをしているリスナーと接続する。

■サービス

データベースは、クライアントからは1つのサービスとして見える。クライアントがデータベースサーバ上のデータベースに接続する際に、指定するのはデータベースのサービス名です。

データベースのサービス名は、SERVICE_NAMES初期化パラメータに指定されている。

SERVICE_NAMES初期化パラメータのデフォルトは、グローバルデータベース名です。通常は、グローバルデータベース名をサービス名として、指定する。

グローバルデータベース名は、以下の要素で構成される。

データベース名(DB_NAMEパラメータ値)+ドメイン名(DB_DOMAINパラメータ値)

■サービスについて

1つのデータベースには、複数のサービス名を対応付けることができる。なぜ、複数のサービス名を対応付けることができるのかというと、処理を区別できるようにするため。データベースで色々な処理を行う上で、各サービスを区別することで、クライアントからの処理を識別できるようになる。

■データベースへの接続

▼接続記述子

クライアントは、データベースの場所とサービス名を指定して、データベースサーバ上のデータベースに接続する。こういったデータベースへの接続情報のことを接続記述子という。

接続記述子には、決まった書式があり、リスナーのプロトコルアドレスと、宛先となっているサービスに対する接続情報を記述する。

■接続文字列

クライアントからデータベースに接続するには、接続文字列を指定する。接続文字列は、接続するのに必要な項目であるユーザ名、パスワード、@、接続識別子で構成されている。

接続識別子は、データベースへ接続するための情報となる。前述した接続記述子そのもの、またはネットサービス名という、情報リポジトリに格納されたマッピング情報を使用して、接続識別子に解決される名前となる。

○ネットサービス名

接続識別子は、長い文字列であるため、接続する際に指定すると入力ミスが起きやすくなる。ミスを防ぐために、ネットサービス名を使用する。

ネットサービス名とは、接続識別子に付けた単純な名前となる。電話番号で例えれば、電話番号が接続識別子であり、ネットサービス名が短縮ダイヤル番号となる。

ユーザは、データベースサーバに接続する際に、長い接続識別子の代わりにネットサービス名を使用できる。SQL *Plusを使用してログインする場合は、下記のように記述する。

▼ネットサービス名を使用した接続文字列

connect ユーザ名/パスワード@ネットサービス名

■ネーミングメソッド

ネーミングメソッドとは、ネットサービス名を接続記述子に変換する方法(名前解決方法)のこと。接続文字列にネットサービス名が使用されると、その文字列は、情報リポジトリに保存されている情報を元に名前解決されて、接続識別子に変換される。

情報リポジトリとは、ネットサービス名と接続記述子のマッピング情報を格納している場所です。どの情報リポジトリを使用するかは、ネーミングメソッドの種類によって、異なります。Oracle Netでは、下記のネーミングメソッドがサポートされています。

▼ネーミングメソッドの種類

種類情報リポジトリ説明
ローカル・ネーミングクライアントに保存されているtnsnames.oraファイルネットサービス名とマッピングされる接続記述子をクライアントコンピュータのローカルにtnsnames.oraファイルとして格納する
ディレクトリ・ネーミングLDAP準拠のディレクトリサーバネットサービス名とマッピングされる接続記述子をLDAP準拠のディレクトリサーバに格納し、集中管理する
簡易接続ネーミングなしTCP/IP接続文字列をどこかに格納するのではなく、直接入力して接続する
外部ネーミングOracle以外のネーミングサービスサポートされているOracle以外のネーミングサービスにネットサービス名を格納する

ローカル・ネーミングの場合、クライアントコンピュータのローカルにtnsnames.oraという設定ファイルを格納する。一方で、ディレクトリ・ネーミングや外部ネーミングの場合は、別途LDAP準拠のディレクトリサーバや、サポートされているネーミングサービスを構成する必要がある。

また、簡易接続ネーミングの場合は、事前に情報リポジトリを構成する必要はないが、入力する文字列が長いため、入力ミスをしないよう注意する必要がある。

■ローカル・ネーミングの構成方法

ローカル・ネーミングの場合は、ネットサービス名とそれにマッピングする接続記述子を、クライアントコンピュータのローカルにtnsnames.oraファイルとして、保存する。

tnsnames.oraファイルは、ネットワーク構成用のツールであるNetCAやNet Managerなどで構成できる。Enterprise Manager Cloud Controlを使用して構成することも可能。

■簡易接続ネーミングの構成方法

簡易接続ネーミングでは、ネットサービス名は作成せずに、クライアントから直接TCP/IP接続文字列を入力して接続する。

▼簡易接続ネーミングによる接続

connect ユーザ名/パスワード@ホスト名[:リスナーのポート番号][/サービス名]