株式会社コーソル

KNOWLEDGE

コーソルの技術情報

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

KNOWLEDGE検索人気のキーワード

Oracle DB Tips

ORA-12514: TNS: リスナーは現在、接続識別子でリクエストされているサービスを認識していません(TNS-12514)

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

リスナーがクライアントからの接続要求を受け付けた時に、接続先となるサービスを認識していない時に発生するエラーです。

02.ORA-12514 の一般的な発生要因と対処

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

  • リスナーにサービスが登録されていない
  • クライアントの接続定義が誤っている

 

リスナーにサービスが登録されていない

lsnrctl servicesコマンドを用いて、リスナーに登録されているサービスを確認します。

c:¥>lsnrctl services
LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production on 02-2月 -2012 17:20:22
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=C10203477)(PORT=1521)))に接続中
サービスのサマリー...
サービス"ora112.c10203477"には、1件のインスタンスがあります。
インスタンス"ora112"、状態READYには、このサービスに対する1件のハンドラがあります...
ハンドラ:
"DEDICATED" 確立:2 拒否:0 状態:ready
LOCAL SERVER

上記例では、サービス名「ora112.c10203477」として、インスタンス「ora112」
がサービス登録されています。
サービスがリスナーに登録されていない一般的な原因として以下があります。

インスタンスが起動していない

インスタンスが起動していない場合は、インスタンスからリスナーに対してサービスが登録されません。この場合は、インスタンスを起動してください。

リスナーの起動直後である

リスナー起動後、インスタンスからサービスが登録されるまで最大1分かかることがあります。この場合は、しばらく待つか、インスタンスでalter system register;コマンドを実行します。

クライアントの接続定義が誤っている

リスナーが起動しているノードに、クライアントの接続先となるサービス(インスタンス)が存在せず、クライアントの接続定義が誤っている場合があります。
この場合は、$ORACLE_HOME/network/admin/tnsnames.ora を参照し、接続定義を確認します。

ora112 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ora112.C10203477)
)
)

SERVICE_NAME 句で指定されている値がリスナーに登録されているサービス名と一致しているか確認します。

03.キーワード

ORA-12514 TNS-12514 サービス tnsnames.ora