Oracle エラーの対応方法・解決方法を解説します

ORA-12514

エラーメッセージ  

 ORA-12514: TNS: リスナーは接続記述子にあるSERVICE_NAMEを解決できませんでした。
 ORA-12514: TNS: リスナーは接続記述子で要求されたサービスを現在認識していません
 ORA-12514: TNS: listener could not resolve SERVICE_NAME given in connect descriptor
 ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
 
 

基本的なエラーの内容  

接続先のリスナーが接続情報に含まれるSERVICE_NAMEに対応するサービスを識別できない場合に出力されます。

 
 

確認事項および対応  

  1. クライアント側 tnsnames.oraファイルのネットサービス名の接続情報に含まれるSERVICE_NAMEの値を確認します。
  2. DBサーバ側でlsnrctl servicesコマンドを使用し、SERVICE_NAMEに一致するデータベース・サービス登録されていることを確認してください。
  3. lsnrctl services コマンドでデータベース・サービスがクライアント側SERVICE_NAMEと異なる場合、まずDBサーバ側listener.oraファイルのGLOBAL_DBNAMEを確認します。GLOBAL_DBNAMEが設定されている場合は、クライアント側のSERVICE_NAMEをGLOBAL_DBNAMEに変更し、再接続します。または、リスナー側GLOBAL_DBNAMEをクライアント側のSERVICE_NAMEと同じ値に設定し、リスナーを再起動します(この場合、他のクライアントマシンのtnsnames.oraも変更する必要があります)。
  4. DBサーバ側listener.oraファイルのGLOBAL_DBNAMEが設定されていない場合は、データベースの初期化パラメータファイルのSERVICE_NAMESがデータベース・サービス名としてリスナーに登録されるため、SERVICE_NAMESパラメータを確認します。
  5. どうしてもこのエラーが回避できない場合は、tnsnames.oraファイルのSERVICE_NAME=<db_service_name> で定義している部分を SID=<db_sid> に変更して回避することもご検討ください。
     
     

詳細  

クライアント側 tnsnames.oraファイルのネット・サービス名の接続情報でSERVICE_NAMEが設定されている場合、クライアントはリスナーに登録されているデータベース・サービスの中からSERVICE_NAMEと一致したデータベースに接続します。
リスナーに登録されるデータベース・サービスは以下のタイミングで登録されます。

  1. DBサーバ側リスナー起動時に、リスナーがlistener.oraファイルのGLOBAL_DBNAMEを読み込んで登録する
  2. DBサーバ起動時にDBサーバ側がデータベースの初期化パラメータファイルのSERVICE_NAMESをデータベースサービスとしてリスナーに登録する。この時登録対象となるリスナーは初期化パラメータ LOCAL_LISTENERで設定されたものとなる。LOCAL_LISTENERが設定されていない場合はデフォルトでPort 1521のリスナーに登録を行う。
  3. DBサーバ起動時にリスナーが起動していない場合、ある一定の間隔でDBサーバがリスナーに登録の再試行を行う。
     
     

関連エラー  

ORA-12154: TNS: サービス名を解決できませんでした。
ORA-12541: TNS: リスナーがありません。
ORA-12505: TNS: リスナーは接続記述子で指定されたSIDを現在認識していません

 
 

powered by Quick Homepage Maker 3.66
based on PukiWiki 1.4.7 License is GPL. QHM

最新の更新 RSS  Valid XHTML 1.0 Transitional