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

ORA-12505

エラーメッセージ  

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

基本的なエラーの内容  

接続先のリスナーにクライアントからの接続情報に含まれるSIDと結びつくインスタンスが登録されていない場合に出力されます

 
 

確認事項および対応  

  1. クライアント側 tnsnames.oraファイルのネット・サービス名の接続情報に含まれるSIDの値を確認します。
  2. DBサーバ側でlsnrctlユーティリティのservicesコマンドを使用し、SIDに一致するデータベース・サービス登録されていることを確認してください。
  3. lsnrctl services コマンドでデータベース・サービスがクライアント側tnsnames.oraに設定したSIDと異なる場合、まずDBサーバ側listener.oraファイルのSID_NAMEを確認します。SID_NAMEが設定されている場合は、クライアント側tnsnames.ora内のSIDをSID_NAMEに変更し、再接続します。または、リスナー側SID_NAMEをクライアント側のSIDと同じ値に設定し、リスナーを再起動します(この場合、他のクライアントマシンのtnsnames.oraも変更する必要があります)。
  4. DBサーバ側listener.oraファイルのSID_NAMEが設定されていない場合は、データベースのSIDがリスナーに動的に登録される必要があります。登録される方法については以下の詳細を確認してください。

クライアント側のみで対応する場合にはtnsnames.ora内の 該当接続文字列の情報の内容から (SID = <sid_name>) の部分を (SERVICE_NAME = <service_name>) に変更することで対応する方法も考えられます。(この場合、同等なエラーとして ORA-12514 が発生する可能性があります)

 
 

詳細  

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

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

関連エラー  

ORA-12514

 
 

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

最新の更新 RSS  Valid XHTML 1.0 Transitional