Net Service ユーティリティ (tnsping と trcroute)

接続識別子での導通テスト(TNSPING)

接続識別子と接続文字列は、ホスト名と IP アドレスの関係に似ており TNS 用の ping コマンドが用意されている。
接続識別子から接続文字列を取得することも可能

tnsping をネットサービス名で使う

# tnsping net_service_name [ try_count ]
  .........
 Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (...
                        ↑ 接続文字列に変換される
 .........
 OK (200ミリ秒)

tnsping を接続文字列で使う

tnsping は接続文字列を直接記述でも可能 SERVICE_NAME の指定は使わないので無くても良い。
lsnrctl status などで出てくる「リスニング・エンドポイントのサマリー」の文字列をコピー&ペーストするとミスがない。

# lsnrctl status
………
リスニング・エンドポイントのサマリー...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbserver_host)(PORT=1521)))
 ↑ この文字列をコピーペーストして使うと打ち間違いがない
# tnsping (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbserver_host)(PORT=1521)))

注意 tnsping ユーティリティは Net Service(TNS)を経由したネットワークの導通を確認するものでインスタンスに接続できることを確認するものではない。

telnet による導通テスト

OS 標準の telnet を使っての指定ポートの導通確認(※1) も可能ではあるが、厳しそうな環境では万が一にもネットワーク管理者ににらまれるようなことに無いように tnsping の方がよいと思う。
※ 作業の意味がわからない人も実行しないでください。

# telnet dbserver_host 1521
 接続中: dbserver_host...ホストへ接続できませんでした。 ポート番号 1521: 接続に失敗しました

リスナーが起動しているのに接続に失敗する場合にはファイアウォールでポートが塞がっている可能性がある。

(※1) ping コマンドではポートの指定はできない。

ネットワーク経路情報 (TRCROUTE) UNIX 系のみ

サーバーまでの経路情報を取得するためのコマンド
tnsping が ping ユーティリティに該当するなら trcroute は traceroute/tracert に該当する。 複雑な経路を通過する場合において tnsping で接続できない場合に有効である。

# trcroute <netservice_name>|<{hostname|ipaddress}[:port]>
 .........
Route of TrcRoute:
-------------------------------------------------------------
Node: Client            Time and address of entry into node:
-------------------------------------------------------------
13-OCT-2005 12:28:59 ADDRESS= PROTOCOL=TCP  HOST=192.168.1.1  PORT=15210

Node: Server            Time and address of entry into node:
-------------------------------------------------------------
13-OCT-2005 12:28:59 ADDRESS= PROTOCOL=TCP  HOST=192.168.1.1  PORT=15210
 


関連事項

tnsping and trcrouteの関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー