株式会社コーソル

KNOWLEDGE

コーソルの技術情報

コーソルでは経験豊かなエンジニアが、Oracle Databaseに関するお役立ち情報を発信しています。
データベースのチューニングや設定にお役立ていただけます。

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

ORA-12224: TNS: リスナーがありません。 (TNS-12224)

01.ORA-12224 (TNS-12224)エラーとはどのようなエラーか?

クライアントからネットワークを介して Oracle Databaseにアクセスする際、クライアントは tnsnames.ora 内の接続記述子の ADDRESS 部で指定されたネットワークアドレスに接続を要求します。
要求したリスナーが起動されていないなどの理由で接続に失敗した場合、ORA-12224 エラーが発生します。

02.ORA-12224 エラーのエラー出力例

ORA-12224: TNS: リスナーがありません

※同様の状況で ORA-12541 (TNS-12541) として出力される場合もありますが、エラーの内容はいずれも同じです。

03.ORA-12224 の一般的な発生要因と対処

ORA-12224は一般に以下の要因で発生します。

  • リスナーが起動していない
  • tnsnames.ora と listener.ora 内のアドレスが一致していない

 

リスナーが起動していない

lsnrctl ユーティリティを使用してリスナーが正常に起動しているか確認します。

lsnrctl status [リスナー名]

起動されていない場合は、以下コマンドで起動します。

lsnrctl start [リスナー名]
tnsnames.ora と listener.ora 内のアドレスが一致していない

tnsnames.ora と listener.ora ファイルの ADDRESS セクション内のパラメータが一致しているか確認し、一致していない場合には修正します。
例えばリスナーが正常に起動している場合でも、以下のように tnsnames.ora とlistener.ora の ADDRESS 部の情報に不一致がある場合にはORA-12224エラーが発生します。

エラーが発生する例

ADDRESS 部で指定したポート番号(PORT= の値)が一致していないため、orcl というサービス名を使用して接続を行おうとすると本エラーが発生します。

+---- listener.ora 内のリスナー定義 ----------+
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))
)
)
)
+---- tnsnames.ora 内のリスナー定義 ----------+
orcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
G:¥>sqlplus scott/tiger@orcl
SQL*Plus: Release 11.1.0.7.0 - Production on 金 1月 20 13:21:27 2012
Copyright (c) 1982, 2008, Oracle.  All rights reserved.
ERROR:
ORA-12541: TNS: リスナーがありません

04.キーワード

ORA-12224 TNS-12224 ORA-12541 TNS-12541 リスナーがありません