COL: CSS:



Naming Methods (1)

ネーミングメソッド

Oracle Database に接続するには,クライアント側で Oracle Net を構成し,リスナーと連絡を取らなければならない。Oracle Net では,ネーミングメソッドと呼ばれる Oracle サーバへ接続するための情報を管理する機構を用いて接続する。

ネーミングメソッドの構成方法は以下の通り。

  1. どのネーミングメソッドを使うかを選択する。
  2. 選択したネーミングメソッドで使用する接続情報 (接続記述子) を,単純な名前にマップする。
  3. 選択したネーミングメソッドを使用するクライアントを構成する。
    構成後のクライアントでは,マップのために準備した単純な名前を利用して接続することができる。

クライアントからサーバに接続するために必要な送信情報は以下の 3 つ。

  • ユーザ名
  • パスワード
  • サービス名 (データベースサービス名 / ネットサービス名)

ネーミングメソッドには,以下の 4 種類が存在する。

Table050301: ネーミングメソッド一覧
ネーミングメソッド詳細
簡易接続ネーミング
(ホストネーミング)
TCP/IP プロトコルを利用した簡単なネーミング手法。
サーバと接続するために必要な情報を全て文字列として代入し,接続要求を送信する。そのため,データベース・サービス名が長くなる時などには記述が長くなる。
ローカルネーミング各クライアント側に用意したローカルネーミング構成ファイル tnsnames.ora に記述した接続情報 (接続記述子) を利用して接続する。上述の通り,各クライアント側で tnsnames.ora ファイルを用意してやらなければならない。接続情報の変更が頻繁に行われるような環境では不向き。
ディレクトリネーミングLDAP (Lightweight Directory Access Protocol) サーバ上で管理されている接続情報を利用して接続する。ローカルネーミングと違って各クライアントに接続情報を設ける必要がなく,LDAP サーバによる一元管理が可能。
外部ネーミング外部ネーミングサービスにより提供される接続情報を利用する。

接続識別子 / 接続記述子

クライアントからサーバに接続する際に送信されるサービス名のことを "接続識別子" と呼ぶ。接続識別子は,接続記述子,または接続記述子にマップする単純な名前でも構わない。

接続識別子が単純な名前だった場合,そのデータベースに対応したネーミングメソッドによって接続記述子に解決される。

接続記述子の書式は以下の通り。※ 動的サービス登録による listener.ora への情報登録では,下記 SERVICE_NAMEINSTANCE_NAME パラメータの値は,初期化パラメータファイルの SERVICE_NAMESINSTANCE_NAME パラメータから取得される。

/* Code050301: foo という単純な名前にマップされた接続記述子 */

foo=                               ← 単純な名前 (ネット・サービス名)
  (DESCRIPTION= 
    (ADDRESS=                      ← リスナー・プロトコル・アドレス
      (PROTOCOL=tcp)                     ├ プロトコル
      (HOST=foo-srv)                     ├ ホスト名
      (PORT=1521)                        └ ポート番号
    )
    (CONNECT_DATA=                 ← 宛先サービス情報
      (SERVICE_NAME=foo.bar.com)         ├ データベース・サービス名
      (INSTANCE_NAME=foo)                ├ インスタンス名
      (SID=foo)                          └ インスタンス識別子
    )
  )