ネットワークの構成が終了すると、接続を確立して各コンポーネントをテストし、ネットワークが正しく機能しているかどうかを確認する必要があります。Oracle Net Servicesには、リスナー、データベースおよびOracle Connection Managerを容易にテストできるツールがあります。
この章の内容は、次のとおりです。
ネットワークをテストする望ましい順序は、次のとおりです。
リスナーを個別に起動し、テストします。リスナーを起動するには、「Oracle Net ListenerとOracle Databaseサーバーの起動」で説明されている手順を実行します。
リスナーをテストするには、クライアントからそのリスナーによって制御される任意の有効なデータベースまでの接続を開始します。
Oracle Connection Managerがネットワークに含まれている場合は、各Oracle Connection Managerを起動し、テストします。Oracle Connection Managerを起動するには、「Oracle Connection Managerの起動」で説明されている手順を実行します。
Oracle Connection Managerをテストするには、クライアントから接続を開始して、Oracle Connection Managerに登録した任意の有効なデータベースまで接続を行います。
ループバック・テストまたはOracle Net Managerでサーバーをテストします。
ループバック・テストでは、Oracle Netを使用してデータベース・サーバーからInterprocess Communication(IPC)を利用せずにサーバー自体に戻ります。ループバックが正常に終了すると、Oracle Netがデータベース・サーバーで機能していることが確認できます。次の手順では、Oracle Net Managerを使用してループバック・テストを実行する方法について説明します。
Oracle Net Managerを起動します。
ナビゲータ・ペインで、「ディレクトリ」または「ローカル」を展開し、「サービス・ネーミング」を選択します。
ネットワーク・サービス名またはデータベース・サービスを選択します。
「ツール」を選択し、ネット・サービスのテストを選択します。
このテストでは、リスナーとデータベースが実行されている必要があります。データベースやリスナーが実行されていない場合は、「Oracle Net ListenerとOracle Databaseサーバーの起動」を参照してコンポーネントを起動してください。
テスト中、ステータスとテスト結果を示す「接続テスト」ダイアログ・ボックスが表示されます。テストが成功すると、次のメッセージが表示されます。
The connection test was successful.
テストが成功した場合は、手順eに進んでください。
テストが正常に終了しなかった場合は、エラー・メッセージを使用して対処方法を決定します。たとえば、エラー・メッセージが次の場合の対処方法について説明します。
Attempting to connect using userid: scott The test did not succeed. ORA-28000: the account is locked There may be an error in the fields entered, or the server may not be ready for a connection.
ロック解除されていることがわかっているアカウントにユーザー名を変更します。ユーザー名を変更するには、「ログインの変更」をクリックします。パスワードの入力を求められます。
「閉じる」をクリックして「接続テスト」ダイアログ・ボックスを閉じます。
クライアントで接続できるかどうかテストします。
ネットワーク内でいくつかの異なるクライアントをテストするには、次のコマンドを使用して各クライアントからデータベース・サーバーへの接続を開始します。
CONNECTusername
@connect_identifier
TNSPINGユーティリティでは、Oracle Netネットワーク上のサービスのリスナーに正常に到達できるかどうかを判断します。
TNSPINGユーティリティを使用してクライアントからサーバーに(または、あるサーバーから別のサーバーに)正常に接続できた場合は、Oracle Netサービスに到達するために必要な往復時間(ミリ秒単位)の概算が表示されます。
接続に失敗した場合は、発生したエラーを記述するメッセージが表示されます。これによって、データベース接続に対するオーバーヘッドなしで発生中のネットワーク・エラーを参照できます。
接続をテストするには、次のコマンドを使用します。
tnsping net_service_name
count
前述のコマンドでは、次の引数が使用されます。
net_service_name: NISなど、tnsnames.ora
ファイルまたは使用中のネーム・サービスに存在する名前にする必要があります。
count: プログラムがサーバーへの到達を試行する回数を指定します。この引数はオプションです。
指定されたネットワーク・サービス名がデータベース名の場合、TNSPINGでは、対応するリスナーへの接続を試みます。実際は、データベースが実行中かどうかは判別されません。SQL*Plusを使用して、データベースへの接続を試みます。
次にTNSPINGの例を示します。
注意: プラットフォームによってインタフェースが異なる場合がありますが、プログラムは同じ引数を受け入れられます。TNSPINGを呼び出すと、正しいインタフェース要件が表示されます。 |
例15-1は、TNSPING
コマンドを使用してsales
のネットワーク・サービス名で、データベースに対してリスナーを確認している例を示しています。
例15-1 TNSPINGによるリスナーの確認
TNSPING sales
これによって、次のメッセージが出力されます。
TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 21-NOV-2012 Copyright (c) 1997, 2012 Oracle Corporation. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = sales-server)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = sales.us.example.com))) OK (10 msec)
sales
データベースに対してリスナーを使用できるかどうかを判別し、TNSPINGを8回試行してから終了するように指定するには、次の構文を使用します。
tnsping sales 8
このコマンドによって、次のメッセージが出力されます。
TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 21-NOV-2012 Copyright (c) 1997, 2012 Oracle Corporation. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = sales-server)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = sales.us.example.com))) OK (10 msec) OK (0 msec) OK (10 msec) OK (0 msec) OK (10 msec) OK (10 msec) OK (10 msec) OK (0 msec)
例15-2は、無効なネットワーク・サービス名の使用を確認するTNSPINGの例を示しています。
例15-2 TNSPINGを使用した無効なネット・サービス名の確認
tnsping badname
この試行では、次のメッセージが出力されます。
TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 21-NOV-2012 Copyright (c) 1997, 2012 Oracle Corporation. All rights reserved. Used parameter files: TNS-03505: Failed to resolve name
例15-3は、TNSPINGを使用して名前を確認し、名前は有効であるが、解決されたアドレスにリスナーが配置されていない(たとえば、リスナーが起動されていないなど)場合の出力の例を示しています。
例15-3 TNSPINGを使用したリスナーなしの有効なネット・サービス名の確認
tnsping sales TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 21-NOV-2012 Copyright (c) 1997, 2012 Oracle Corporation. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = sales-server)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = sales.us.example.com))) TNS-12541: TNS:no listener
LinuxおよびUNIX環境では、管理者はTrace Routeユーティリティ(TRCROUTE)を使用して、クライアントからサーバーへのパスまたはルートを検出できます。TRCROUTEは、問題に遭遇すると、1つのエラーではなくエラー・スタックをクライアントに戻します。これらの追加エラー・メッセージによって、トラブルシューティングが簡単になります。
TRCROUTEは、特殊な種類の接続パケットとして送信される点でTNSPINGとは異なります。接続先に向かって移動するとき、TRCROUTE接続パケットは、経由するすべてのノードのTNSアドレスを収集します。エラーが発生した場合、TRCROUTEは、エラーの発生場所を示すエラー情報を収集します。TRCROUTEは、収集した情報をクライアント画面に表示します。TRCROUTEの出力は、ファイルにリダイレクトして印刷できます。
TRCROUTEは最小限のリソースを使用します。接続パケットの接続データ内の情報を収集します。通常の接続パケットは影響を受けません。
TRCROUTEは、サーバーに作用しません。リスナーがTRCROUTE接続パケットを受信し、処理します。リスナーは、拒絶パケットに情報を入れることによって、クライアントに情報を返します。サーバーは、新しいプロセスを起動したり、ダミー接続を処理する必要はありません。
TRCROUTEユーティリティを使用するには、次のコマンドを入力します。
trcroute net_service_name
例15-4は、Trace Routeパケットがクライアントからリスナーに正常に送信されたことを示します。
例15-4 正常なTrace Route
trcroute sales Trace Route Utility for Linux: Version 12.1.0.1.0 - Production on 21-NOV-2012 Copyright (c) 1999, 2012 Oracle Corporation. All rights reserved. Route of TrcRoute: ------------------ Node: Client Time and address of entry into node: ------------------------------------------------------------- 09-NOV-2012 21:48:48 ADDRESS= PROTOCOL=TCP HOST=10.150.21.136 PORT=14001 Node: Server Time and address of entry into node: ------------------------------------------------------------- 09-NOV-2012 21:48:05 ADDRESS= PROTOCOL=TCP HOST=10.150.21.136 PORT=14001
例15-5は、リスナーが起動していないため、Trace Routeパケットがそのリスナーへの到達に失敗したことを示します。
例15-5 エラーの発生したTrace Route
trcroute sales Trace Route Utility for Linux: Version 12.1.0.1.0 - Production on 21-NOV-2012 Copyright (c) 1999, 2012 Oracle Corporation. All rights reserved. Route of TrcRoute: ------------------ Node: Client Time and address of entry into node: ------------------------------------------------------------- 25-FEB-2012 14:43:05 ADDRESS= PROTOCOL=TCP HOST=sales-server PORT=1521 TNS-12543: TNS:unable to connect to destination TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-03601: Failed in route information collection