スポンサードリンク

Oracleで「リスナーがありません」なエラーの対処法いろいろ

久しぶりに Oracle を使ったシステムのテスト環境を作ろうとしたら、「リスナーがありません」というエラーでハマったので、忘れないためにも解決策をメモメモです φ(..)。

ちなみに状況によって「ORA-12224: TNS: リスナーがありません」と「ORA-12541: TNS: リスナーがありません」という、エラーコードの違う2パターンのメッセージが出るようですが、内容的にはどちらも同じっぽいです。

このエラーの原因としてまず一番単純なのはリスナーが落ちているパターンで、この場合はホストPCでリスナーを起動してやれば解決するハズです。

そうでなければホストPCが非常に高負荷になっていたり、リスナーの同時接続要求数の上限を超えて接続しようとした場合にも発生するようです。

こうなってしまうと、やっぱり負荷が下がるとか接続数が減るのを待つしかないと思われます。

あとはクライアントPCの tnsnames.ora の記載に誤りがあるパターンです。HOST に指定したPCが実際に接続しようとしていたPCと違っていたとか、PORT が違っていたりとか。

とはいえ、これはクライアントPCの tnsnames.ora の記載を直してやればOKなんですが・・・

このパターンの亜種としてホストPCの listener.ora の記載と、クライアントPCの tnsnames.ora の記載に齟齬がある場合がありまして、これが実に厄介なんですよ。

よくハマるのが HOST の指定でして、片方がホスト名で片方がIPアドレスという記載の場合だとエラーになります。

以下はうまく繋がるパターンの listener.ora と tnsnames.ora なのですが、それでもエラーになってしまうパターンがあるんです。

今回ハマったのはまさにそれで、HOST の記載は同じでも、ホストPCとクライアントPCで指定したホスト名が返すIPアドレスが違ってたんですね・・・orz

どうなっていたかというと、ホストPCではループバックアドレス(127.0.0.1)を取得していて、クライアントPCではホストPCのIPアドレス(192.168.0.3 とか)を取得していたんです。

なんとなくそれでも良いような気がするのですが、ダメなんですねぇ。

というわけで、ホストPCの hostsファイルをいじってホストPCでも自分の(ループバックでない)IPアドレスを取得できるようにして、ようやくクライアントから接続できました。

参照リンク
 ・ORA-12541 - オラクル・Oracle エラー FAQ
 ・ORA-12224: TNS: リスナーがありません。 (TNS-12224) | 技術情報 | 株式会社コーソル

スポンサードリンク
コメント
Verify your Comment
Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

コメントを投稿

プロフィール


  • 書いてる人:夢界 陸

    名古屋在住のおっさん。
    プログラミングやガジェットの話など、 日々の興味を徒然と綴っています。



    Twitterやってます @mukairiku



    運営サイト
    www.mukairiku.net

アクセスランキング


ブログ内検索

Licenses

  • Creative Commons License

OTHER


  • このブログのはてなブックマーク数

    ブログパーツ
Blog powered by TypePad

スポンサードリンク