Oracle ORA-12541 TNS no listenerの解決方法【2025年最新版】
エラーの概要・症状
Oracleデータベースを使用しているときに、接続を試みると「ORA-12541: TNS:no listener」というエラーメッセージが表示されることがあります。このエラーは、データベースへの接続を試みた際に、リスナーが起動していない、または正しく設定されていないことを示しています。具体的には、以下のような状況で発生します。
- データベースに接続しようとしたが、リスナーが応答しない。
- SQL*Plusや他のOracleクライアントから接続を試みた際に、このエラーメッセージが表示される。
このエラーが発生すると、データベースにアクセスできなくなり、アプリケーションの機能が制限されるため、迅速な解決が求められます。
このエラーが発生する原因
「ORA-12541: TNS:no listener」エラーが発生する原因は複数あります。以下に主要な原因を挙げ、それぞれについて詳細に説明します。
- リスナーが起動していない: Oracleデータベースは、クライアントからの接続要求を処理するためにリスナーというプロセスを使用します。リスナーが起動していない場合、クライアントはデータベースに接続できません。
リスナーの設定ミス:
listener.ora
ファイルやtnsnames.ora
ファイルに誤った設定があると、リスナーが正しく機能しないことがあります。特に、ホスト名やポート番号が誤っている場合、このエラーが発生します。ファイアウォールやネットワークの問題: リスナーが正しく設定されていても、ファイアウォールやネットワーク設定によって接続がブロックされることがあります。この場合、特定のポートへのアクセスを許可する必要があります。
Oracleインスタンスが停止している: Oracleデータベースのインスタンスが異常停止している場合、リスナーは新しい接続を受け付けることができません。
環境変数の設定ミス: Windows環境では、
ORACLE_HOME
やTNS_ADMIN
などの環境変数が正しく設定されていない場合、接続に失敗することがあります。これは特に複数のOracleクライアントがインストールされている場合に起こります。
解決方法1(最も効果的)
手順1-1(リスナーの起動)
まず最初に、リスナーが起動しているか確認し、必要に応じてリスナーを起動します。以下の手順に従ってください。
コメント