この章では、データベース・サーバーへのクライアント接続に関する接続情報の構成方法について説明します。
この章の内容は、次のとおりです。
簡易接続ネーミング・メソッドを使用すると、TCP/IP環境でtnsnames.oraファイルでサービス名を検索する必要がなくなります。実際に、このメソッドを使用するとネーミング・システムやディレクトリ・システムは必要ありません。
このネーミング・メソッドを利用すると、データベースへのTCP/IP接続を簡単に行えるようになります。これは、クライアントがデータベースのホスト名の他にオプションのポートとサービス名を使用してデータベース・サーバーに接続できるようにすることで、ホスト・ネーミング・メソッドの機能を拡張します。
CONNECTusername@[//]host[:port][/[service_name][:server]][/instance_name]] Enter password:password
この接続識別子は、次のような接続記述子に変換されます。
(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port)) (CONNECT_DATA= (SERVICE_NAME=service_name) (SERVER=server) (INSTANCE_NAME=instance_name)))
Oracle Databaseを「標準」モードでインストールした場合、oracleインスタンスで使用されるデフォルトのサービス名はORCLであり、次の簡易接続構文を使用してそのインスタンスに接続できます。
CONNECTusername@"host//ORCL" Enter password:password
表8-1では、簡易接続構文要素とそれぞれの説明を示しています。
表8-1 簡易接続ネーミング・メソッドのための接続識別子
| 構文要素 | 説明 |
|---|---|
|
// |
URLに URLまたはJDBCに接続するには、接続識別子の前にダブル・スラッシュ(
scott@//sales-server
Enter password:
SQLに接続するには、オプションで接続識別子の前にダブル・スラッシュ(
SQL> CONNECT scott@sales-server
Enter password:
SQL> CONNECT scott@//sales-server
Enter password: |
|
host |
必須。データベース・ホスト・コンピュータのホスト名またはIPアドレスを指定します。 ホストは単純なホスト名または完全修飾ホスト名にすることができます。単純なホスト名を指定すると、ローカル・オペレーティング・システム構成でドメインを指定している場合、参照中にホスト名はドメインで修飾されることがあります。 値としてIPv4またはIPv6アドレスを使用できます。IPv6アドレスは、[2001:0DB8:0:0::200C:417A]のように大カッコで囲む必要があります。 |
|
port |
オプション。リスニング・ポートを指定します。 デフォルトは、1521です。 |
|
service_name |
オプション。データベースのサービス名を指定します。 ユーザーがサービス名を指定した場合、リスナーはその特定のデータベースにユーザーを接続します。サービス名を指定しない場合、リスナーは |
|
server |
オプション。使用するデータベース・サーバーのタイプを指定します。 このパラメータを指定すると、リスナーはクライアントを特定のタイプのサービス・ハンドラに接続します。 serverパラメータの値は、 注意: Oracle Call Interfaceのマニュアルでは、serverは |
|
instance_name |
オプション。アクセスするデータベース・インスタンスを識別するために使用します。 インスタンス名は、初期化パラメータ・ファイルの |
|
関連項目: DEFAULT_SERVICE_listener_nameパラメータおよびINSTANCE_NAME初期化パラメータの構成の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
例8-1の接続文字列は、クライアントをデータベース・サービスのsales.us.example.comに接続します。このとき、1521のリスニング・エンドポイントは、データベース・サーバーsales-serverにあります。
例8-1 簡易接続文字列
CONNECT scott@sales-server:1521/sales.us.example.com CONNECT scott@//sales-server/sales.us.example.com CONNECT scott@//sales-server.us.example.com/sales.us.example.com
例8-1の各接続文字列の後に、データベース・サービスに接続するためのパスワードを入力する必要があります。
例8-1の接続文字列は、次のような接続記述子に変換されます。
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
次の条件が満たされると、クライアントは、簡易接続ネーミングを使用して、Oracle Databaseに接続できます。
Oracle Net Servicesソフトウェアがクライアントにインストールされている。
Oracle TCP/IPプロトコルは、クライアントとデータベース・サーバーの両方でサポートされている。
拡張接続記述子を必要とする機能がない。
接続プーリング、外部プロシージャの呼出し、異機種間サービスなどの追加の接続情報が必要な拡張機能を備えた大規模で複雑な環境には、簡易接続ネーミングは不向きです。このような場合は、別のネーミング・メソッドの使用をお薦めします。
簡易接続ネーミングは、インストール時に自動的に構成されます。使用前には、EZCONNECTがsqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータで指定されていることを確認してください。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用できるネーミング・メソッドの順序を指定します。
簡易接続ネーミング・メソッドが構成されていることを検証する手順は、次のとおりです。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」を展開し、次に「プロファイル」を選択します。
右ペインのリストから、「ネーミング」を選択します。
「メソッド」タブをクリックします。
「選択メソッド」リストにEZCONNECTがリストされていることを確認します。リストされていない場合は、ステップ5に進みます。リストされている場合は、ステップ7に進みます。
「使用可能なメソッド」リストから「EZCONNECT」を選択し、右矢印ボタンをクリックします。
「選択メソッド」リストで「EZCONNECT」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにhostnameが最初に表示されます。
NAMES.DIRECTORY_PATH=(ezconnect, tnsnames)
Oracle Database 11gのホスト・ネーミング・メソッドで提供されているように、ホスト名にDNS別名をオプションとして構成できます。ホスト・ネーミングでは、クライアントは、次のパターンを使用する接続文字列を使用します。
CONNECTusername@DNSaliasEnter password:password
DNSの別名を構成するには、次の手順に従います。
リスナーにデータベース・サービスが登録されていることを確認します。
データベースがリスナーを検出できる場合は、サービス名を含むデータベース・サービスに関する情報は、サービス登録中に動的にリスナーに登録されます。リスナーは、次の条件が満たされる場合に検出されます。
デフォルトの名前がLISTENERのリスナーが、ポート1521のTCP/IP上で実行されている場合
LOCAL_LISTENERパラメータが初期化ファイルに設定されている場合
データベースがリスナーを検出できない場合は、次の例に示すように、GLOBAL_DBNAMEパラメータを使用してlistener.oraファイルを構成する必要があります。
SID_LIST_listener= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=sales.us.example.com) (SID_NAME=sales) (ORACLE_HOME=/u01/app/oracle)) DEFAULT_SERVICE_listener=sales.us.example.com
ホスト名解決環境を確立します。
DNS、NISまたは集中管理されているTCP/IPホスト・ファイルの/etc/hostsなどのメカニズムを構成できます。たとえば、あるデータベースのsales-serverというサービス名が、sales.us.example.comという名前のコンピュータ上に存在する場合、/etc/hostsファイルのエントリは次のようになります。
#IP address of server host name alias 192.168.2.35 sales.us.example.com sales-server
サービス名のドメイン部分は、ネットワーク・ドメインと一致する必要があります。
DNSの別名を使用してデータベースに接続します。
前の手順の例を使用すると、クライアントは、次のように接続文字列でsales.example.comを使用できます。
CONNECTusername@sales.us.example.com Enter password:password
クライアントとサーバーが同じus.example.comなどのドメインに所属していれば、クライアントは接続文字列にsalesを入力するだけでかまいません。
表8-2は、簡易接続ネーミング構文の例と、各文字列がどのように接続記述子に変換されるかを示しています。
表8-2 簡易接続ネーミングの例
| ネーミング・オプション | 接続文字列 | 接続記述子 |
|---|---|---|
|
ホスト指定の簡易接続文字列。 ホスト名は |
sales-server |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=))
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=1521)))
|
|
ホストおよびポート指定の簡易接続文字列。 ホスト名は |
sales-server:3456 |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=))
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=3456)))
|
|
ホストおよびサービス名指定の簡易接続文字列。 ホスト名は |
sales-server/sales |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=sales))
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=1521)))
|
|
IPv6アドレス指定の簡易接続文字列。 ホストのIPv6アドレスは |
[2001:0DB8:0:0::200C:417A]:80/sales IPv6ホスト名は大括弧で囲む必要があります。 |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=sales)
(ADDRESS=
(PROTOCOL=TCP)
(HOST=2001:0DB8:0:0::200C:417A)
(PORT=80)))
|
|
IPv6ホスト・アドレス指定の簡易接続文字列。 ホストのIPv6アドレスは |
sales-server:80/sales |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=sales)
(ADDRESS=
(PROTOCOL=TCP)
(HOST=2001:0DB8:0:0::200C:417A)
(PORT=80)))
|
|
ホスト、サービス名およびサーバー指定の簡易接続文字列。 ホスト名は |
sales-server/sales:dedicated/inst1 |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=sales)
(INSTANCE_NAME=inst1)
(SERVER=dedicated))
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=1521)))
|
|
ホストおよびインスタンス名指定の簡易接続。 ホスト名は |
sales-server//inst1 |
(DESCRIPTION=
(CONNECT_DATA=
(SERVICE_NAME=)
(INSTANCE_NAME=inst1))
(ADDRESS=
(PROTOCOL=TCP)
(HOST=sales-server)
(PORT=1521)))
|
ローカル・ネーミング・メソッドでは、ネット・サービス名をtnsnames.oraファイルに追加します。各ネット・サービス名は、接続記述子にマップされます。
例8-2は、DESCRIPTIONに含まれる接続記述子にマップされるネット・サービス名salesを示しています。DESCRIPTIONセクションにはプロトコル・アドレスが含まれており、接続先データベース・サービスを識別します。この例では、プロトコルはTCP/IP、ポートは1521です。
例8-2 接続記述子
sales=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=sales.us.example.com)))
例8-3は、IPv6アドレスおよびポート番号1522で識別されるホストに接続するための有効なtnsnames.oraエントリを示しています。
例8-3 IPv6接続の接続記述子
salesdb =
( DESCRIPTION =
( ADDRESS=(PROTOCOL=tcp)(HOST=2001:0DB8:1:1::200C:417A)(PORT=1522) )
( CONNECT_DATA =
(SERVICES_NAME=sales.example.com) )
)
次の項目で説明するように、ローカル・ネーミングは、インストール中またはインストール後に構成できます。
Oracle Net Configuration Assistantを使用すると、クライアントに対するネット・サービス名の構成が可能となります。Oracle Universal Installerは、ソフトウェアのインストール後にOracle Net Configuration Assistantを起動します。構成は、インストール・モードによって異なります。
管理者またはランタイム・インストレーション: Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、tnsnames.oraファイル中のネット・サービス名を構成するように求められます。
カスタム・インストレーション: Oracle Net Configuration Assistantでは、使用するネーミング・メソッドを選択するように求められます。ローカル・ネーミングを選択した場合、Oracle Net Configuration Assistantでは、Oracle Databaseサービスへ接続するために、tnsnames.oraファイル中のネット・サービス名を構成するように求められます。
ネット・サービス名は、インストール後、いつでもtnsnames.oraファイルに追加できます。ローカル・ネーミング・メソッドを構成するには、次の作業を実行します。
|
注意: Oracle Netとの接続を構成する前に、基礎となるネットワーク接続が稼働している必要があります。 |
ネット・サービス名を構成するには、次のいずれかの方法を使用します。
それぞれの方法で同様の機能が提供されます。ただし、Oracle Net Managerにはsqlnet.oraファイルでの追加の構成オプションがあります。
Oracle Enterprise Managerを使用した構成
Oracle Enterprise Managerを使用してtnsnames.oraファイルのネット・サービス名を構成する手順は次のとおりです。
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストから「ローカル・ネーミング」を選択し、構成ファイルの場所が含まれるOracleホームを選択します。
「実行」をクリックします。
「ローカル・ネーミング」ページが表示されます。データベース・サーバーへのログインを求められる場合があります。
「類似作成」をクリックします。
「ネット・サービス名の作成」ページが表示されます。
「ネット・サービス名」フィールドに任意の名前を入力します。
ネット・サービス名は、クライアントのドメインで修飾できます。sqlnet.oraファイルのパラメータNAMES.DEFAULT_DOMAINが設定されていると、ネット・サービス名は自動的にドメインによって修飾されます。
データベース情報セクションで次のようにサービス・サポートを設定します。
宛先サービス名を入力します。
データベース接続タイプを選択します。
接続タイプには「データベースのデフォルト」のデフォルト設定をお薦めします。共有サーバーが初期化パラメータ・ファイルで構成される場合、「専用サーバー」を選択すると共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させることができます。共有サーバーが初期化パラメータ・ファイルで構成され、接続時に常に共有サーバーが使用されるようにする場合は、「共有サーバー」を選択します。
アドレス・セクションで次のようにプロトコル・サポートを設定します。
「追加」をクリックします。
「アドレスの追加」ページが表示されます。
「プロトコル」リストからリスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。
提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。
|
関連項目: プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
オプションで、拡張パラメータ・セクションを使用して、このセッションにおける送受信操作に必要なI/Oバッファ・スペース制限を「合計送信バッファ・サイズ」および「合計受信バッファ・サイズ」フィールドに指定します。
「OK」をクリックします。
プロトコル・アドレスは、アドレス・セクションに追加されます。
「OK」をクリックして、ネット・サービス名を追加します。
ネット・サービス名が「ローカル・ネーミング」ページに追加されます。
アドレスに対して接続時フェイルオーバーおよびクライアント・ロード・バランシング・オプションを選択します。
「OK」をクリックします。
|
関連項目:
|
Oracle Net Managerを使用した構成
Oracle Net Managerを使用してtnsnames.oraファイルのネット・サービス名を構成する手順は次のとおりです。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」メニューから「サービス・ネーミング」を選択します。
ツールバーで「+」をクリックするか、「編集」メニューから「作成」を選択します。
「ネット・サービス名」フィールドに名前を入力します。
ネット・サービス名は、クライアントのドメインで修飾できます。sqlnet.oraファイルのパラメータNAMES.DEFAULT_DOMAINが設定されていると、ネット・サービス名は自動的にドメインによって修飾されます。
「次へ」をクリックします。
「プロトコル」ページが表示されます。
リスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。
「次へ」をクリックします。
「プロトコル設定」ページが表示されます。
提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。
|
関連項目: プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
「次へ」をクリックします。
「サービス」ページが表示されます。
リリースの選択、宛先サービス名の入力、またオプションでデータベース接続タイプの選択を行います。
オラクル社では、接続タイプには「データベースのデフォルト」のデフォルト設定の使用をお薦めします。共有サーバーが初期化パラメータ・ファイルで構成される場合、「専用サーバー」を選択すると共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させることができます。共有サーバーが初期化パラメータ・ファイルで構成され、接続時に常に共有サーバーが使用されるようにする場合は、「共有サーバー」を選択します。
「次へ」をクリックします。
「テスト」ページが表示されます。
「テスト」をクリックすると、そのネット・サービス名が機能するかどうかを確認できます。また、「終了」をクリックすると、「Netサービス名ウィザード」を終了できます。
「テスト」をクリックすると、Oracle Netは構成済の接続記述子情報を使用して、データベース・サーバーに接続します。このため、リスナーとデータベースを実行していなければテストを正常に実行できません。データベースやリスナーが実行されていない場合は、テストの前に、「Oracle Net ListenerとOracle Databaseサーバーの起動」を参照してコンポーネントを起動してください。テスト中、ステータスとテスト結果を示す「接続テスト」ダイアログ・ボックスが表示されます。テストが成功すると、次のメッセージが表示されます。
The connection test was successful.
テストが成功した場合は、「閉じる」をクリックして「接続テスト」ダイアログ・ボックスを閉じてから手順13に進みます。
テストが正常終了しなかった場合は、次の処置を行ってください。
データベースとリスナーが実行されていることを確認し、「テスト」をクリックします。
「ログインの変更」をクリックして、接続に使用するユーザー名とパスワードを変更し、「テスト」をクリックします。
「終了」をクリックして、「Netサービス名ウィザード」を終了します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
|
関連項目:
|
Oracle Net Configuration Assistantを使用した構成
Oracle Net Configuration Assistantを使用してtnsnames.oraファイルのネット・サービス名を構成する手順は次のとおりです。
Oracle Net Configuration Assistantを起動します。
「ようこそ」ページが表示されます。
「ローカル・ネット・サービス名構成」を選択してから、「次へ」をクリックします。
「ネット・サービス名の構成」ページが表示されます。
「追加」をクリックしてから「次へ」をクリックします。
「ネット・サービス名の構成」ページが表示されます。
「サービス名」フィールドにネット・サービス名を入力します。
「次へ」をクリックします。
ウィザードのプロンプトとオンライン・ヘルプに従って、ネット・サービス名を作成します。
sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータで第1番目のネーミング・メソッドとして指定するローカル・ネーミングを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用するネーミング・メソッドの順序を指定します。
第1番目のネーミング・メソッドとしてローカル・ネーミング・メソッドを構成するには、次のいずれかの方法を使用します。
それぞれの方法で同じ機能が提供されます。
Oracle Enterprise Managerを使用した構成
Oracle Enterprise Managerを使用して第1番目のネーミング・メソッドとしてローカル・ネーミングを指定するには、次の手順に従います。
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストからネットワーク・プロファイルを選択します。
「ネーミング・メソッド」を選択します。
「使用可能なメソッド」リストから「TNSNAMES」を選択します。
「移動」をクリックして、選択したメソッドを「選択したメソッド」リストに移動します。
「上へ」ボタン(^)を使用してTNSNAMESをリストの最上位に移動します。
「OK」をクリックします。
Oracle Net Managerを使用した構成
Oracle Net Managerを使用して第1番目のネーミング・メソッドとしてローカル・ネーミングを指定するには、次の手順に従います。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。
右ペインのリストから、「ネーミング」を選択します。
「メソッド」タブをクリックします。
「使用可能なメソッド」リストから「TNSNAMES」を選択し、右矢印ボタンをクリックします。
「選択メソッド」リストで「TNSNAMES」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにtnsnamesが最初に表示されます。
NAMES.DIRECTORY_PATH=(tnsnames, EZCONNECT)
クライアントを1台構成してから、tnsnames.oraとsqlnet.oraの構成ファイルを他のクライアントの同じ場所に単純にコピーする方法が最も確実です。これによって、ファイルの一貫性が保たれます。その他に、Oracle Net Assistantをすべてのクライアント上で使用できます。
サーバー上のリスナーは、ネット・サービス名用に構成したものと同じプロトコル・アドレスを使用してリスニングするように構成する必要があります。デフォルトでリスナーは、ポート1521のTCP/IPプロトコルを使用するように構成されています。
クライアントは、次の構文を使用してデータベースへ接続できます。
CONNECTusername@net_service_nameEnter password:password
ディレクトリ・ネーミング・メソッドでは、Oracle Internet DirectoryやMicrosoft Active DirectoryなどのLDAP準拠ディレクトリ・サーバーに含まれる接続記述子に接続識別子をマップします。ディレクトリでは、データベース・サービスおよびネット・サービス名の集中管理が提供され、サービスの追加または再配置が容易になります。
データベース・サービス・エントリは、インストール時にDatabase Configuration Assistantを使用して作成されます。ネット・サービス名のエントリとネット・サービス別名のエントリを作成および変更し、データベース・サービス・エントリを変更するには、Oracle Enterprise ManagerおよびOracle Net Managerを使用します。クライアントは、データベースへの接続にこれらのエントリを使用できます。
ディレクトリ・ネーミング・メソッドを構成するには、次の作業を実行します。
ネット・サービス名を作成しようとしているコンピュータから次の検証手順を実行します。
コンピュータにOracle Net Serviceソフトウェアの最新リリースがインストールされていることを確認します。リリース情報は、「ヘルプ」メニューの「バージョン情報」オプションにあります。
Oracle Internet Directoryコンフィギュレーション・アシスタントを実行して、ディレクトリ・サーバー、Oracleコンテキスト、Oracleスキーマのリリースを確認します。
|
関連項目: ディレクトリ・サーバーの使用の構成手順は、『Oracle Internet Directory管理者ガイド』を参照してください。 |
Oracle Net Configuration Assistantが、構成時にディレクトリでOracleスキーマのリリースおよびOracleコンテキストをチェックする際、次のエラーが発生する場合があります。

また、エラーが発生すると、次のメッセージがエラー・ログに追加されます。
Configuration exception: Could not check for the Oracle Schema: oracle.net.config.ConfigException: TNS-04409: Directory Service Error
このエラーは通常、次の状況で発生します。
ディレクトリにOracleコンテキストが存在しない。この場合、Oracle Internet Directoryインストーラまたは他のOracle Internet Directoryツールを使用して、Oracleコンテキストを作成する必要があります。
Oracle Internet Directoryディレクトリがリリース11である場合、デフォルトでは匿名バインドを使用できず、Oracle Net Configuration AssistantはOracleコンテキストにアクセスできません。Oracle Internet Directoryサーバー構成の次のパラメータを確認してください。パラメータが0に設定されている場合は、1に変更します。
dn: cn=oid,cn=osdldapd,cn=subconfigsubentry orlanonymousbindsflag: 1
データベース・サービス・エントリではなくネット・サービス名を使用するようにクライアントを構成できます。ネット・サービス名を作成するには、次の手順に従います。
|
注意:
|
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
「実行」をクリックします。
「ディレクトリ・ネーミング」ページが表示されます。
「ネット・サービス名」タブをクリックします。
結果セクションの「作成」をクリックします。
「一般」タブのある「ネット・サービス名の作成」ページが表示されます。
「ネット・サービス名」フィールドに任意の名前を入力します。
データベース情報セクションで次のようにサービス・サポートを設定します。
宛先サービス名を入力します。
宛先サービス名がOracle9iデータベース以降の場合は、「サービス名の使用」を選択し、「サービス名」フィールドにサービス名を入力します。
データベース接続タイプを選択します。オラクル社では、接続タイプには「データベースのデフォルト」の使用をお薦めします。初期化パラメータ・ファイルで共有サーバーが構成されている場合は、次のオプションを使用できます。
共有サーバー構成を使用せずに、リスナーに専用サーバーを起動させるには、「専用サーバー」を選択します。
接続時に常に共有サーバーが使用されるようにするには、「共有サーバー」を選択します。
アドレス・セクションで次のようにプロトコル・サポートを設定します。
「追加」をクリックします。
「アドレスの追加」ページが表示されます。
「プロトコル」リストからリスナーがリスニングするように構成されているプロトコルを選択します。このプロトコルも、クライアント上にインストールする必要があります。
提供されたフィールドで選択したプロトコルに対して適切なパラメータ情報を入力します。
|
関連項目: プロトコル・パラメータの設定の詳細は、『Oracle Database Net Servicesリファレンス』を参照してください。 |
(オプション)「拡張パラメータ」セクションを使用して、このセッションにおける送受信操作に必要なI/Oバッファ・スペース制限を「合計送信バッファ・サイズ」および「合計受信バッファ・サイズ」フィールドに指定します。
「OK」をクリックします。
プロトコル・アドレスは、アドレス・セクションに追加されます。
「OK」をクリックして、ネット・サービス名を追加します。
ネット・サービス名が「ネット・サービス名」タブの結果セクションに追加されます。
|
関連項目:
|
ディレクトリ・ネーミングへのデータベース登録が完了すると、Database Configuration Assistantによりディレクトリにデータベース・サービス・エントリが作成されます。デフォルトでは、このエントリにはプロトコル・アドレスで表されたリスナーの位置を含む、ネットワーク・ルート情報が含まれています。この情報を再作成したり、既存のネットワーク・ルート情報を変更できます。
|
注意: OracleNetAdminsグループまたはOracleContextAdminsグループのメンバーであるユーザーのみが、ディレクトリ内のデータベース・サービスに関するネットワーク情報を変更できます。これらのグループに対してユーザーを追加または削除する方法は、「OracleNetAdminsグループへのユーザーの追加」を参照してください。 |
データベース・サービスのネットワーク・ルート情報を作成または変更するには、次の手順に従います。
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
「実行」をクリックします。データベース・サーバーおよびディレクトリ・サーバーへのログインを求められる場合があります。
「ディレクトリ・ネーミング」ページが表示されます。
「データベース・サービス」タブをクリックします。
簡易検索セクションで「Oracleコンテキスト」と検索基準を選択し、Oracleコンテキストのネット・サービス名を確認します。
データベース・サービス名が結果セクションに表示されます。
結果セクションでデータベース・サービスを選択し、「編集」をクリックします。
ディレクトリ・サーバーのネット・サービス別名によって、クライアントはデータベース・サービスまたはネット・サービス名を代替名で参照できます。たとえば、salesというネット・サービス名に対してsalesaliasというネット・サービス別名を作成できます。salesaliasをCONNECT scott@salesaliasとして使用してデータベースに接続すると、salesの接続記述子情報に解決されて使用されます。
ネット・サービス別名の主な使用方法は、次の2つです。
クライアントがデータベース・サービスまたはネット・サービス名を別の名前で参照する手段としてネット・サービス別名を使用する方法。
データベース・サービスの1つのOracleコンテキストでネット・サービス別名を使用し、別のOracleコンテキストでネット・サービス名を使用する方法。この方法によって、データベース・サービスまたはネット・サービス名をディレクトリ・サーバーで一度定義すると、他のOracleコンテキストを使用するクライアントで参照できます。
|
注意:
|
ネット・サービス別名を作成するには、次のいずれかの方法を使用します。
それぞれの方法で同様の機能が提供されます。
Oracle Enterprise Managerを使用した構成
Oracle Enterprise Managerを使用してネット・サービス別名を構成するには、次の手順に従います。
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
「実行」をクリックします。
「ディレクトリ・ネーミング」ページが表示されます。
「ネット・サービス別名」タブをクリックします。
結果セクションの「作成」をクリックします。
「ネット・サービス別名の作成」ページが表示されます。
「ネット・サービス別名」フィールドに別名として名前を入力します。
参照サービスの詳細セクションで、フィールドに次の情報を入力します。
Oracleコンテキスト: データベース・サービスまたはネット・サービス名のOracleコンテキストを、リストから選択するかフィールドに入力して選択します。
参照サービス名: データベース・サービスのDNまたはネット・サービス名を選択します。
「OK」をクリックして、ネット・サービス別名を追加します。
ネット・サービス別名が「ディレクトリ・ネーミング」ページに追加されます。
Oracle Net Managerを使用した構成
Oracle Net Managerを使用してネット・サービス別名を構成するには、次の手順に従います。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ディレクトリ」メニューから「サービス・ネーミング」を選択します。
「別名」を選択します。
「編集」メニューから「作成」を選択します。
「ネット・サービス別名」フィールドにネット・サービス別名を入力します。
Oracleコンテキストと名前を選択します。
「作成」をクリックします。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータで、使用する第1番目のネーミング・メソッドとしてディレクトリ・ネーミングを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用するネーミング・メソッドの順序を指定します。LDAPを第1番目のネーミング・メソッドとして構成するには、次のいずれかの方法を使用できます。
Oracle Enterprise Managerを使用した構成
Oracle Enterprise Managerを使用して第1番目のネーミング・メソッドとしてディレクトリ・ネーミングを指定するには、次の手順に従います。
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストからネットワーク・プロファイルを選択します。
「ネーミング・メソッド」を選択します。
「使用可能なメソッド」リストから「LDAP」を選択します。
「移動」をクリックして、選択したメソッドを「選択したメソッド」リストに移動します。
「上へ」ボタン(^)を使用してLDAPをリストの最上位に移動します。
「OK」をクリックします。
Oracle Net Managerを使用した構成
Oracle Net Managerを使用して第1番目のネーミング・メソッドとしてディレクトリ・ネーミングを指定するには、次の手順に従います。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。
右ペインのリストから、「ネーミング」を選択します。
「メソッド」タブをクリックします。
「使用可能なメソッド」リストから「LDAP」を選択し、右矢印ボタンをクリックします。
「選択メソッド」リストで「LDAP」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにldapが最初に表示されます。
NAMES.DIRECTORY_PATH=(ldap, tnsnames, hostname)
サーバー上のリスナーは、ネット・サービス名用に構成したものと同じプロトコル・アドレスを使用してリスニングするように構成する必要があります。デフォルトでリスナーは、ポート1521のTCP/IPプロトコルでリスニングするように構成されています。
データベース・サービスやネット・サービス名のディレクトリの場所と一致するディレクトリ・エントリがデフォルトに構成されているクライアントは、次の構文を使用してデータベースに接続できます。
CONNECTusername@connect_identifierEnter password:password
エントリのディレクトリの場所と一致しないディレクトリ・エントリがデフォルトに構成されているクライアントは、エントリの識別名または完全修飾名を使用する必要があります。
クライアントに、複数のOracleコンテキストが含まれるディレクトリでの検出機能を使用させる必要がある場合は、基本のadminコンテキストにorclCommonContextMap属性を定義できます。これはorclDefaultSubscriber属性をオーバーライドします。名前参照を実行すると、検出操作によって2つの属性値が戻され、クライアントはそれらの値に基づいて、使用するOracleコンテキストを決定します。
orclCommonContextMap属性が定義されていない場合は、orclDefaultSubscriberがデフォルトとして使用されます。orclCommonContextMapが定義されている場合、クライアントは、DNSドメインに関連付けられているデフォルトのOracleコンテキストをorclCommonContextMapから検索します。複数のデフォルト・コンテキストを有効にするには、デフォルトのoracleContextとして使用するドメインとDN間の関連付けリストを付けて、orclCommonContextMapを定義します。たとえば、LDIFファイルのエントリは次のようになります。
$ ldapmodify -v -h sales-server -p 1389 -D cn=orcladmin -q dn: cn=Common,cn=Products,cn=OracleContext replace: orclCommonContextMap orclCommonContextMap: (contextMap= (domain_map=(domain=us.example.com)(DN="dc=example,dc=com")) (domain_map=(domain=uk.example.com)(DN="dc=sales,dc=com")) )
contextMapエントリは、改行を含めずに入力する必要があります。
|
関連項目: コンテキストのマッピングのためにディレクトリを構成する方法の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。 |
この項では、tnsnames.oraファイルに格納されたデータをディレクトリ・サーバーにエクスポートする方法を説明します。この項で説明するタスクは、次のとおりです。
tnsnames.oraファイルがすでに存在する場合、そのネット・サービス名は、ディレクトリ・サーバーへエクスポートできます。エクスポート手順は、一度に1つのドメインに対して実行します。
tnsnames.oraファイルからデータをエクスポートする作業を次に示します。
|
注意: これらのタスクでは、ディレクトリ・サーバーがインストールされて実行中であると想定しています。 |
ディレクトリ・サーバーで、ネット・サービス名をインポートする構造のディレクトリ情報ツリー(DIT)を作成します。Oracleコンテキストの先頭までの構造を作成します。
たとえば、tnsnames.oraファイルがドメイン構造example.comをサポートしていて、このドメインをディレクトリにレプリケートする場合は、図8-1に示すように、このディレクトリにdc=comおよびdc=exampleのドメイン・コンポーネント・エントリを作成します。
現在tnsnames.oraで使用しているドメイン構造をレプリケートできます。または、完全に異なる構造を作成することもできます。完全に異なる構造を導入すると、クライアントが接続文字列にネット・サービス名を入力する方法が変更されます。構造を変更する前に、相対ネーミングおよび完全修飾ネーミングを検討することをお薦めします。
Oracle Internet Directoryコンフィギュレーション・アシスタントを使用して、タスク1で作成した各DITの位置の下にOracleコンテキストを作成します。Oracleコンテキストには、cn=OracleContextの相対識別名(RDN)があります。Oracleコンテキストには、その他のOracleコンポーネントのエントリとともに、ネットワーク・オブジェクト・エントリが格納されます。図8-2のcn=OracleContextは、dc=example,dc=comの下に作成されます。
|
関連項目:
|
Oracleコンテキストを作成する際に作業の一部として構成が終了していない場合、Oracleホームをディレクトリ・サーバーで使用できるように構成します。Oracleホームは、エクスポートを実行できる構成にする必要があります。
|
関連項目: ディレクトリ・サーバーの使用の構成手順は、『Oracle Internet Directory管理者ガイド』を参照してください。 |
tnsnames.oraファイルのネット・サービス名をディレクトリにエクスポートするには、Oracle Enterprise ManagerまたはOracle Net Managerを使用します。
Oracle Enterprise Managerを使用してオブジェクトをエクスポートするには、次の手順に従います。
Oracle Enterprise Managerの「Net Services管理」ページにアクセスします。
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
「実行」をクリックします。
「ディレクトリ・ネーミング」ページが表示されます。
「ネット・サービス名」タブをクリックします。
関連リンク・セクションで「ディレクトリ・サーバーへのネット・サービス名のインポート」をクリックします。
「ディレクトリ・サーバーへのネット・サービス名のインポート」ページが表示されます。
Oracle Internet Directory Server接続先セクションの「Oracleコンテキスト」リストから、選択したネット・サービス名のエクスポート先であるOracleコンテキストを選択します。
インポートするネット・サービス名セクションでネット・サービス名を選択します。
「追加」をクリックして、ネット・サービス名をディレクトリに追加します。
ネット・サービス名が「ディレクトリ・ネーミング」ページに追加されます。
Oracle Net Managerを使用してオブジェクトをエクスポートするには、次の手順に従います。
Oracle Net Managerを起動します。
エクスポートするtnsnames.oraファイルがOracle Net Managerにロードされていない場合は、「ファイル」メニューから「ネットワーク構成を開く」を選択して、ディレクトリにエクスポートするtnsnames.oraファイルを選択します。
「ツール」メニューから「ディレクトリ」を選択し、「ネット・サービス名のエクスポート」を選択します。
「次へ」をクリックします。
tnsnames.oraファイルで、複数ドメインを持つネット・サービス名が検出された場合は、「ドメインの選択」ページが表示されます。ステップ5に進みます。
ネット・サービス名がドメインで修飾されていない場合、「ネット・サービス名の選択」ページが表示されます。ステップ6にスキップします。
エクスポート用のネット・サービス名のネットワーク・ドメインを選択して、「次へ」をクリックします。
「ネット・サービス名の選択」ページが表示されます。
エクスポートするリストからネット・サービス名を選択して、「次へ」をクリックします。
「接続先コンテキストの選択」ページが表示されます。
「接続先コンテキストの選択」ページで、次を実行します。
「ディレクトリ・ネーミング・コンテキスト」リストから、Oracleコンテキストを含むディレクトリ・エントリを選択します。ディレクトリ・ネーミング・コンテキストは、1つまたは複数のOracleコンテキストを含むディレクトリ・サブツリーの一部です。
「Oracleコンテキスト」リストから、選択したネット・サービス名のエクスポート先であるOracleコンテキストを選択します。
「次へ」をクリックします。
「ディレクトリ・サーバーの更新」ページがエクスポート操作のステータスで表示されます。
「終了」をクリックして、ディレクトリ・サーバー移行ウィザードを終了します。
ディレクトリ・ネーミング・エントリの作成後、そのエントリをローカルのtnsnames.oraファイルにエクスポートし、さらにそのファイルをクライアントに配布します。ディレクトリ・サーバーが一時的に使用できないときは、クライアントはローカルに保存したファイルを使用できます。
ディレクトリ・ネーミング・エントリをローカルのtnsnames.oraファイルにエクスポートするには、次の手順に従います。
Oracle Enterprise ManagerのOracle Netの管理ページにアクセスします。
「管理」リストから「ディレクトリ・ネーミング」を選択し、ディレクトリ・サーバーのあるOracleホームを選択します。
「実行」をクリックします。
「ディレクトリ・ネーミング」ページが表示されます。
「ネット・サービス名」タブをクリックします。
簡易検索セクションで「Oracleコンテキスト」と検索基準を選択し、特定のOracleコンテキストのネット・サービス名を確認します。
ネット・サービス名が結果セクションに表示されます。
結果セクションで、「tnsnames.oraに保存」をクリックします。
外部ネーミングとは、Network Information Service(NIS)のような、サード・パーティのネーミング・サービスに格納されるネット・サービス名をネットワーク・アドレスに解決する方法です。システム・インフラストラクチャの一部としてNISを使用している組織や企業のために、NIS外部ネーミングを使用してNIS内にOracleネット・サービス名とアドレスを格納するオプションが用意されています。
たとえば、ユーザーが次のようなコマンドを入力し、payrollはネット・サービス名であるとします。
sqlplus scott@payroll
Enter password: password
クライアント・プログラム(またはクライアント・プログラムとしての役割を果すデータベース・サーバー)を実行するノード上のNIS外部ネーミングは、ネットワーク上にあるNISサーバーに接続し、ネット・サービス名をNISサーバーに渡します。NISサーバーはネット・サービス名をOracle Netアドレスに変換し、このアドレスをクライアント・プログラム(またはサーバー)に返します。次に、クライアント・プログラムはこのアドレスを使用してOracle Databaseに接続します。
NISサーバーは、名前要求を処理するypservと呼ばれるプログラムを実行します。ypservプログラムでは、マップと呼ばれる特殊なファイルに異なるタイプのデータが格納されます。たとえば、パスワードはpasswd.bynameと呼ばれるマップに格納されます。Oracle Databaseサービス名は、tnsnamesと呼ばれるマップに格納されます。
ユーザーが接続文字列を使用すると、NIS外部ネーミングはRPCコールを使用してypservプログラムに接続し、Oracleネット・サービス名とマップの名前を渡します。ypservプログラムは、payrollなどの名前とネット・サービス名のアドレスをtnsnamesマップ内で検索します。このアドレスはクライアントに返され、クライアント・プログラムはこのアドレスを使用してデータベース・サーバーに接続します。
|
注意: 一部のプラットフォームでは、NIS外部ネーミング・メソッドを使用できません。adaptersコマンドを使用し、システムでNIS外部ネーミングを使用できるかどうかを確認してください。使用できる場合、次のようにOracle Netネーミング・メソッドの下にリストされます。
$ adapters
Installed Oracle Net naming methods are:
Local Naming (tnsnames.ora)
Oracle Directory Naming
Oracle Host Naming
NIS Naming
詳細は、Oracleプラットフォーム固有のマニュアルを参照してください。 |
この項で説明するタスクは、次のとおりです。
NIS外部ネーミングをサポートするようにサーバーを構成する前に、Oracle Databaseネット・サービス名を変換する必要があるNISサーバー上でNISが構築され、動作していることを確認してください。具体的には、NISのマニュアルを参照してください。このタスクを完了するには、tnsnamesマップを既存のNISマップに追加し、tnsnamesマップが正しくインストールされていることを確認してください。
「ローカル・ネーミング・メソッドの構成」の説明に従って、tnsnames.oraファイルを作成します。
|
注意: tnsnames.oraファイルのコピーは、なるべくORACLE_HOME/network/adminディレクトリに保管してください。このファイルを後でもう一度使用して、ネット・サービス名をNISマップにロードする必要があります。 |
次のようなtns2nisプログラムを使用して、tnsnames.oraファイルの内容をtnsnamesに変換します。
tns2nis tnsnames.ora
tns2nisプログラムは、カレント・ディレクトリからtnsnames.oraファイルを読み込みます。tnsnames.oraファイルがカレント・ディレクトリにない場合は、フルパス名を使用してその位置を指定します(/etc/tnsnames.oraまたはORACLE_HOME/network/admin/tnsnames.oraなど)。
これによりtnsnamesマップが、現行の作業ディレクトリに書き込まれます。
|
注意: tns2nisプログラムは、NIS外部ネーミングで提供されます。 |
tnsnamesをNISサーバーにコピーします。
NISプログラムのmakedbmを使用してtnsnamesマップをインストールします。
|
注意: この手順は、NISの管理担当者が行ってください。 |
makedbmプログラムは、tnsnamesマップをNISサーバーが読取り可能な2つのファイルにマップします。これらのファイルの位置は、オペレーティング・システムによって異なります。
|
関連項目: 詳細は、Oracleのオペレーティング・システム固有のマニュアルを参照してください。 |
たとえば、Linuxでtnsnamesマップを生成してインストールするには、rootユーザーとしてコマンドラインから次のように入力します。
# makedbm tnsnames /var/yp/'domainname'/tnsnames
次のコマンドを使用して、tnsnamesが正しくインストールされていることを確認します。
ypmatch net_service_name tnsnames
たとえば、次のコマンドを入力できます。
ypmatch example.com tnsnames
次のようにアドレスの長さ(文字数)の付いたアドレスが戻されます。
99 (description=(address=(protocol=tcp) (host=sales)(port=1999))) (connect_data=(service_name=dirprod)))
クライアントを構成するには、sqlnet.oraファイルのNAMES.DIRECTORY_PATHパラメータに指定する第1番目のネーミング・メソッドとしてNISを構成します。このパラメータは、Oracle Netが接続識別子を接続記述子に解決する際に使用できるネーミング・メソッドの順序を指定します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ローカル」メニューから「プロファイル」を選択します。
右ペインのリストから、「ネーミング」を選択します。
「メソッド」タブをクリックします。
「使用可能なメソッド」リストから「NIS」を選択し、右矢印ボタンをクリックします。
「選択メソッド」リストで「NIS」を選択し、「上へ」ボタンを使用して選択済項目をリストの最上位に移動します。
「ファイル」メニューから「ネットワーク構成の保存」を選択します。
sqlnet.oraファイルは、NAMES.DIRECTORY_PATHパラメータで更新され、次のようにnisが最初に表示されます。
NAMES.DIRECTORY_PATH=(nis, hostname, tnsnames)