クライアントからデータベースサーバ上のデータベースに接続するには、クライアント側で接続するデータベースサーバのホスト名やリスナーなどの接続情報を指定する必要があります。クライアント側で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 ユーザ名/パスワード@ホスト名[:リスナーのポート番号][/サービス名]