0

Oracleデータベースに接続するスタンドアロンのワークステーションが稼働しています。それは何年もの間正常に機能していて、それから突然私はエラーを受け取ります:

[INTERSOLV][ODBCOracleドライバー][Oracle]ORA-12545:TNS:名前検索に失敗しました

コマンドプロンプトから接続しようとしているサーバーにpingを実行すると、正しいIPアドレスで応答します。私がTNSPINGを行う場合、それも問題ないようです。

コンピューターネットワーク上に別のPCがあり、サーバーに正常に接続しています。上記の太字のエラーはありません。

そのスタンドアロンPCに接続する別の異なるOracleデータベースがありますが、それでも正常に機能しています。したがって、Oracleデータベースの一部またはすべてに接続する機能を失ったわけではありません。これは、このデータベースに関するものです。

なぜそれが機能しないのか混乱していて、それを修正しようとしても運がなかった。どうすればいいのかわかりません。

どんな助けでもいただければ幸いです。

4

2 に答える 2

1

TNSNAMES.ORA ファイルが存在する場所を指すように環境変数 TNS_ADMIN を定義してみてください。

編集:

SQL*Plus に直接接続できますか?

インストールされている場合、これは機能するはずです (user と db を、接続するユーザー ID とデータベースに置き換えます)。

sqlplus user@db

それができない場合は、 EZCONNECTで接続してみてください:

sqlnet.ora ファイルを変更します。

NAMES.DIRECTORY_PATH=(TNSNAMES,EZCONNECT)

EZCONNECT 文字列を使用するように、Oracle ODBC Driver Configuration ウィザードで ODBC 接続を変更します。

TNS サービス名を次のように置き換えます。

<db_host>:port/<db_name>

例えば、

MYHOST:1521/MYDB

これは、ホスト MYHOST 上のデータベース MYDB をポート 1521 (デフォルト ポート) で指しています。

接続をテストしてみてください。失敗した場合は、ホスト名の代わりに IP アドレスを使用してみてください。

コメントから TNSNAMES エントリを指定すると、次のようになります。

ESTRNP = (DESCRIPTION = 
           (ADDRESS_LIST = 
             (ADDRESS = (PROTOCOL = TCP)(HOST = ESTRNP)(PORT = 1521)) 
           ) 
         (CONNECT_DATA = (SID = ESTRNP)) 
        )

CONNECT_DATA 行を次のように変更してみてください。

(CONNECT_DATA = (SERVICE = ESTRNP)) 

データベースの SID が変更された可能性があります。このエントリは、動作するマシンのエントリと同じですか?

于 2012-08-20T15:06:10.127 に答える
0

最近、他のオラクル ソフトウェアをインストールしましたか?

異なる場所に複数のtnsnames.oraファイルがあり、odbc ドライバーが間違ったファイルを検出する可能性があります。

正しいパスへのパスが最初にあるかどうか、パス環境変数を調べます。

于 2012-08-20T14:42:39.220 に答える