仮想マシンOracleへの接続ora-12154の問題の解決方法

1631 ワード

or121 a-54の問題については、tnsまたはlistenerの構成が正しくないため、ネット上には多くの解決方法があります.Listenerの構成が正しくないのは一般的には少なく、多くの人がデフォルトの構成に従って「次へ」来ており、基本的にはorclのサービス名であり、ローカルでorclに接続できるといえば、他の機が通じないのはlistenerとは関係ないはずです.ほとんどがtns構成が正しくありません.私が出会った現象は、本機に2003年の仮想機が建設され、仮想機にoracle 10 gがインストールされ、デフォルト構成されています.ネイティブにはoracle 10 gのクライアントしかインストールされていません.以前、ローカルエリアネットワーク内のデータベースのorclサービス(データベースはローカルエリアネットワーク内のデータベースと同じ)にネイティブで接続していたときは問題ありませんでしたが、仮想マシンに接続しているorclサービスは通じず、ora-12154エラーが発生します.仮想マシン内ではplsqlは仮想マシンoracleに接続できますが、ローカルエリアネットワーク内のoracleには接続できません.
以下の手順に従って、一般的に解決できます.
  • 仮想マシン内でcmdを開き、lsnrctl statusでリスナーが傍受するサービス
  • を表示する
  • は、リスナーサービス「orcl」を見るように、ホストのtns構成(SERVICE_NAME=orcl)にorclを書かなければならない.カスタマイズする場合は、仮想マシン内のlistener構成にカスタムサービス名を追加し、リスニングサービスを再起動することを忘れないでください:lsnrctl reload
  • 最後に形成されたプロファイルは、以下の
  • である.
    仮想マシンlistener:
    
    SID_LIST_LISTENER = 
     (SID_LIST = 
      (SID_DESC = 
       (GLOBAL_DBNAME = test)          
       (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) db_home 
       (SID_NAME = test)    
    
      ) 
      (SID_DESC = 
       (PROGRAM = extproc) 
       (SID_NAME = PLSExtProc) 
       (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) ##               , C   
      ) 
     )
    

    ネイティブtns:
    
    ORCL_XNJ = 
     (DESCRIPTION = 
      (ADDRESS_LIST = 
       (ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521)) 
      ) 
      (CONNECT_DATA = 
       (SERVICE_NAME = test)           
      ) 
     )

    再接続、問題解決!
    覚えておいてください.必ず最も簡単な原因から探して、ネット上の何がprocess数、レジストリを変えるのかを見るのではなく、本機能がなぜネットを通じてだめなのか、位置決めの問題なのかを考えなければなりません.