tnsnames.oraの場所を探す

2014-02-07 11:10:17 (Fri);

tnsnames.ora が見つからない場合の一番簡単な探し方。
(全バージョンで調べてませんので、できないのもあるかも。)

コマンドプロンプト開いて、
tnsping aaa(適当でOK)と入力して実行するだけ。


コマンドプロンプト
C:>tnsping aaa

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 07-FEB-2014 10:34:07

Copyright (c) 1997 Oracle Corporation. All rights reserved.

パラメータ・ファイルを使用しました:
C:\oracle\ora92\network\admin\sqlnet.ora

TNS-03505: 名前の決定に失敗しました。


sqlnet.ora と同じ場所にある事が多いのでその場所へいく。
ちなみにこれは Oracle9i のですが、
「C:\oracle\ora92\network\admin\」にあるということです。







(おまけ) tnsping ってなにか

おまけなので超初心者向け。

クライアントからOracleに接続する際には
ネットサービス名と呼ばれるものを利用します。

ネットサービス名は tnsnames.ora に記述します。

tnsnames.ora
net_service_name =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = service_name)
   )
 )


このネットサービス名、上記で言うと net_service_name は
正しく接続できるかな?(記述を間違えていないかな?)
と確認するのが tnsping です。


使ってみるとこんな感じ。


コマンドプロンプト
C:\>tnsping net_service_name

TNS Ping Utility for 32-bit Windows: Version 9.2.0.1.0 - Production on 07-FEB-2014 11:05:05

Copyright (c) 1997 Oracle Corporation. All rights reserved.

パラメータ・ファイルを使用しました:
C:\oracle\ora92\network\admin\sqlnet.ora


エイリアスを解決するためにTNSNAMESアダプタを使用しました。
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = service_name)))
OK (110ミリ秒)


OKなので大丈夫だそうです。
NGだと記述が間違ってるかDBがおかしいかです。





最終更新:2014年02月07日 11:10