Oracle11g 如何在Oracle SQL Developer中创建新连接?

Oracle11g 如何在Oracle SQL Developer中创建新连接?,oracle11g,Oracle11g,我刚刚在Windows7上安装了Oracle Database 11g Release 2 我在Oracle SQL Developer中,我正在尝试创建一个新连接,但当我单击“连接”时,我收到消息:“状态:失败-测试失败:网络适配器无法建立连接” 在connection窗口中,我尝试将角色更改为SYSDBA、OS身份验证、端口和SID,但即使更改这些值,我也得到了相同的消息 tnsnames.ora目录: # tnsnames.ora Network Configuration File: F

我刚刚在Windows7上安装了Oracle Database 11g Release 2

我在Oracle SQL Developer中,我正在尝试创建一个新连接,但当我单击“连接”时,我收到消息:“状态:失败-测试失败:网络适配器无法建立连接”

在connection窗口中,我尝试将角色更改为SYSDBA、OS身份验证、端口和SID,但即使更改这些值,我也得到了相同的消息

tnsnames.ora目录:

# tnsnames.ora Network Configuration File: F:\Oracle\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.104)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.168.0.104)
    )
  )
listener.ora:

# listener.ora Network Configuration File: F:\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = F:\Oracle\product\11.2.0\dbhome_1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.104)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = F:\Oracle
警报日志:

<msg time='2015-06-02T19:28:12.428-05:00' org_id='oracle' comp_id='tnslsnr'
 type='UNKNOWN' level='16' host_id='KK-PC'
 host_addr='fe80::986b:9a38:5c9f:fc06%10' version='1'>
 <txt>02-JUN-2015 19:28:12 * (CONNECT_DATA=(SID=CLRExtProc)(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=KK))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.104)(PORT=51332)) * establish * CLRExtProc * 0
 </txt>
</msg>
我怎样才能解决这个问题


谢谢。

所以我会回答我自己的问题,呵呵

我所做的是停止listener服务,然后从ADMIN文件夹中删除listener.ora,然后再次启动该服务


然后,我在命令提示符下执行了一个lsnrctlstatus,得到了服务名称和SID。因此,现在我可以使用orclSID和orcl.168.0.104服务名称进行连接,一切都很完美。非常感谢。

您是否将主机和端口设置为与数据库的侦听器匹配?侦听器是否正在实际运行,并且在您认为的地址/端口上(
lsnrctlstatus
将告诉您)。如果不是同一个盒子,数据库和电脑之间是否有防火墙?不确定;这听起来像是防火墙的问题。但是,请检查警报日志,查看数据库端是否有故障-不太可能,但您永远不知道。您是否正在测试/创建连接,或者连接已建立并且正在尝试运行语句?为什么在tnsnames.ora中ORCL别名的SID设置为CLRExtProc?这几乎肯定也是ORCL,以匹配实际的数据库SID。您是否使用来自SQL Developer的TNS连接?使用基本连接并直接提供信息可能更容易;并使用服务名称(如果您知道的话-tnsnames.ora中的值看起来也很奇怪)。tnsnames.ora与基本连接无关,但可以用于检查您正在使用的连接设置。我不清楚你是如何从与ORCL的基本连接中获取警报日志条目的。这是一个非常旧的版本,但-不知道为什么他们仍然船无论如何,它可能值得升级到当前的版本4.1。如果服务名称成功,为什么要使用SID?SID必须在listener.ora中显式引用才能使用。
Services Summary...
Service "orcl.168.0.104" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.168.0.104" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully