web-dev-qa-db-ja.com

エラーORA-12541:TNS:リスナーがありません

リスナーを起動しようとすると(Oracleデータベースが1つしかない場合)、次のようになります。

LSNRCTL> status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=admin-41f89f35d)(PORT=1521)))
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adapter error
TNS-00511: No listener
32-bit Windows Error: 61: Unknown error

tnsnames.ora

 # TNSNAMES.ORA Network Configuration File: F:\Oracle\network\admin\tnsnames.ora  
    # Generated by Oracle configuration tools.  

    PROJECT =  
      (DESCRIPTION =  
        (ADDRESS_LIST =  
          (ADDRESS = (PROTOCOL = TCP)(Host = admin-xxxxxx)(PORT = 1521))  
        )  
        (CONNECT_DATA =  
          (SERVICE_NAME = PROJECT)  
        )  
      )  

    INST1_HTTP =  
      (DESCRIPTION =  
        (ADDRESS_LIST =  
          (ADDRESS = (PROTOCOL = TCP)(Host = admin-xxxxxx)(PORT = 1521))  
        )  
        (CONNECT_DATA =  
          (SERVER = SHARED)  
          (SERVICE_NAME = MODOSE)  
          (PRESENTATION = http://HRService)  
        )  
      )  

    EXTPROC_CONNECTION_DATA =  
      (DESCRIPTION =  
        (ADDRESS_LIST =  
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))  
        )  
        (CONNECT_DATA =  
          (SID = PLSExtProc)  
          (PRESENTATION = RO)  
        )  
      )  

listerner.ora

# LISTENER.ORA Network Configuration File: F:\Oracle\network\admin\listener.ora  
# Generated by Oracle configuration tools.  

LISTENER =  
  (DESCRIPTION_LIST =  
    (DESCRIPTION =  
      (ADDRESS_LIST =  
        (ADDRESS = (PROTOCOL = TCP)(Host = admin-xxxxxx)(PORT = 1521))  
      )  
    )  
  )  

SID_LIST_LISTENER =  
  (SID_LIST =  
    (SID_DESC =  
      (SID_NAME = PLSExtProc)  
      (Oracle_HOME = F:\Oracle)  
      (PROGRAM = extproc)  
    )  
    (SID_DESC =  
      (GLOBAL_DBNAME = PROJECT)  
      (Oracle_HOME = F:\Oracle)  
      (SID_NAME = PROJECT)  
    )  
  ) 

何が問題なのか本当にわかりません。私のtnsnames.oraファイルとlistener.oraファイルは私には問題ありません。

3
linkin

簡単な修正として、tnsnames.oraとlisterner.oraの両方から(データベースに関して)エントリを削除できます。シナリオでは、これをtnsnames.oraから削除します

 PROJECT =  
      (DESCRIPTION =  
        (ADDRESS_LIST =  
          (ADDRESS = (PROTOCOL = TCP)(Host = admin-xxxxxx)(PORT = 1521))  
        )  
        (CONNECT_DATA =  
          (SERVICE_NAME = PROJECT)  
        )  
      )

そしてこれはlisterner.oraから

SID_LIST_LISTENER =  
  (SID_LIST =  
    (SID_DESC =  
      (SID_NAME = PLSExtProc)  
      (Oracle_HOME = F:\Oracle)  
      (PROGRAM = extproc)  
    )  
    (SID_DESC =  
      (GLOBAL_DBNAME = PROJECT)  
      (Oracle_HOME = F:\Oracle)  
      (SID_NAME = PROJECT)  
    )  
  ) 

その後、データベースを開いてみることができます。これらのエントリは自動的に作成されます。そして今回はリスナーの声を聞いてもらいたい。

2
Vimalnath

oracleソフトウェアがF:\ Oracleにインストールされていると仮定します。

set Oracle_HOME=F:\Oracle
set PATH=%Oracle_HOME%\bin;%PATH%

lsnrctl start

トリックを行う必要があります。 Oracleを使用する場合は、環境が正しくセットアップされていることを確認してください。また、同じWindowsマシン上に複数のOracleインストールがある場合、PATHは、最後にインストールされたOracleインストールが最初にPATHから選択されるように変更されます。それはかなりの数の副作用を与えます。

1
ik_zelf