web-dev-qa-db-ja.com

SQL DeveloperはOracleデータベースに接続できませんが、sqlplusはできます!

SQL開発者とOracle 10gデータベースの接続に問題があります。 sqlplusは正常に接続できますが、sql開発者で接続を開こうとすると、「ORA-12514 TNSはサービスを認識していません」というエラーが表示されます。 tnsnames.oraファイルを変更しようとしました。以下があります。

COTT3 = 
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
  (CONNECT_DATA = 
   (SERVER = DEDICATED)
   (SERVER_NAME = COTT3)
  )
)

誰かが私が変更する必要があるかもしれない他のファイルを手伝ったり、私が間違っているところを知らせたりできますか?

ありがとう

[〜#〜] update [〜#〜] lsnrctlステータスの出力

 [Oracle@VM-COT-DEV1 ~]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 02-FEB-2012 13:57:20

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                02-FEB-2012 13:01:25
Uptime                    0 days 0 hr. 55 min. 54 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/Oracle/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File         /opt/Oracle/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=127.0.0.1)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

enter code here
2
BON

これを試して:

COTT3 = 
 (DESCRIPTION =
  (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
  (CONNECT_DATA = 
   (SERVER = DEDICATED)
   (SERVICE_NAME = COTT3)
  )
)

それが機能しない場合は、「SERVICE_NAME」を「SID」に置き換えます。

これを$ Oracle_HOME/network/admin/listener.oraに配置します。

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =
(SID_LIST =
    (SID_DESC =
      (SID_NAME = COTT3)
          (Oracle_HOME = /opt/Oracle/oracle/product/10.2.0/db_1 )
    )
  )

次に、リスナーを再起動します。

lsnrctl reload

データベースが起動したことを100%確信していますか?

します:

ps auxww | grep pmon | grep -i cott3

...出力を生成しますか?

3
Philᵀᴹ

ここに私のlistener.oraがあります:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = XE)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

追加後

    (SID_DESC =
      (SID_NAME = XE)
      (Oracle_HOME = C:\oraclexe\app\Oracle\product\11.2.0\server)
    )

SID_LIST_LISTENERにアクセスして「OracleXETNSListener」Windowsサービスを再起動すると、SQLDeveloperでservice_name=XEを使用して接続できました

0
user1019903