• ベストアンサー

ORACLE9i Clientのエラーについて

初めまして。 今、oracle9iのDBサーバーと、同じセグメントにあるclientをインストしたマシンで接続しようと頑張っているのですが、うまくいきません・・・。 設定としては、tnspingもOK出ているのですが、clientから sqlplus ID/PW@service_name で入ると 「ORA-12541 TNS リスナーがありません」 が出てしまって接続できません。 接続先のDBサーバーのリスナーも上がっているのは確認しています。 clientで接続する際には、DBサーバー側のlistener.oraも設定し直す必要があるのでしょうか?それとも他の設定ファイルを編集する必要があるのでしょうか? それとも、client側もリスナーあげなきゃいけないのでしょうか?? ちなみに今回設定をしたのは、client側のtnsnames.oraだけです。足りないのがあれば教えてください。よろしくお願いします! (↑すみません勉強不足で。。)

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 最も手っ取り早いのは、クライアントのservice_nameで指定している接続サーバとポートを、サーバマシンのnetstat -a(またはクライアントからtelnet server 1521)で見てLISTENしているかどうか確かめる事でしょう。LISTENしていればクライアントがおかしい、していなければサーバがおかしい。  DBサーバのlistener.oraは標準でインストールすればそのマシンの*:1521を待ち受けると思いますが、カスタムで入れているとしたらちょっと分かりませんね。ちなみにクライアントのリスナーを起動する必要はありません。  一歩一歩切り分けをしていきましょう。  現在の問題は間違いなくクライアントがリスナーを見つけられない事です(例えばリスナー位置が正しくてグローバルデータベース名が間違っていると、同じように繋がらないけどエラーメッセージが違う(多分))。

PEACH-PIT
質問者

補足

>anmochiさん アドバイスありがとうございます。 サーバーのnetstatは問題なかったです。 tcp 0 0 *:1521 *:* LISTEN ということは、やはりクライアントの設定ということになるのでしょうか? tnspingがOKと言っていましたが、 「TNS-12541: TNS: リスナーがありません。」 が出現していました。すみません。。 とにかく、クライアントのtnsnames.oraが違うってことが切り分けできたのかと思います。 でも、tnsnames.oraにリスナーの位置など記述する個所ってありましたでしょうか? クライアントのtnsnames.oraはこれだけしか書いていません。 %クライアント側のSERVICE_NAME = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 19.168.***.**)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = %DBサーバーのサービス名) ) )

その他の回答 (1)

回答No.2

こんにちは。 TNSNAMES.ORAの中の記述 (ホストのIP、ポート、サービス名) は、絶対に間違いないですか? (^^ゞ

PEACH-PIT
質問者

補足

アドバイス、どうもありがとうございます。 やはり初心者では敷居が高すぎますね。 結局解決できました。 理由といたしまして、同階層にあるsqlnet.oraというファイルに意味不明の記述(ゴミ)があったみたいで、それをパラメータとして読み込んでいた為エラーが発生したみたいです。お騒がせいたしました。。 私と同じ様な箇所で苦しむ人へ・・・基本的にクライアントはtnsnames.oraと環境変数だけの書き換えだけです。

関連するQ&A