oracle SQL Developer连接问题

oprakyz7  于 2022-12-26  发布在  Oracle
关注(0)|答案(1)|浏览(233)

我已经安装了jdk 1.6.0_45和Oracle 11g。我可以使用sqlplus和sqldba凭据正确连接到Oracle数据库,但是当我尝试使用SQL Developer连接到这个数据库时,我收到一个错误“Listener does not currently know of SID given in connect descriptor”。我尝试将“SERVICE_NAME“更改为“SERVICE_NAME as SYSDBA“和其他一些内容,但没有帮助。如何让SQL开发者连接到服务器?这里有tnsname.ora文件,img和init.ora文件,以及从sqlplus连接的cmd提示

# tnsnames.ora Network Configuration File: C:\app\Andriy\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 = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME as SYSDBA = orcl.adobe.com)
    )
  )

x一个一个一个一个x一个一个二个一个x一个一个三个一个

mwkjh3gx

mwkjh3gx1#

监听程序配置为仅监听localhost127.0.0.1)。默认情况下,数据库将尝试注册服务器的外部主机名(the default when local_listener is blank),因此注册似乎失败。
可以修改listener.ora,改为侦听外部地址:

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

...或IP地址而不是主机名(如果无法解析),例如192.168.1.134;但是如果你使用DHCP来获取你的IP地址,当你被赋予一个不同的IP时,这个地址会被破坏。如果你使用静态地址,那么使用那个IP就可以了。
或者,如果您只从这台PC访问这个DB,并且不需要它在网络上可见,您可以将侦听器保留在localhost上,并告诉DB在那里注册:

alter system set local_listener = '127.0.0.1:1521' scope=both;
alter system register;

无论哪种方式,lsnrctl services现在都应该显示orcl.adobe.com。从SQL Developer连接时,可以选择“服务名”单选按钮而不是SID,并将orcl.adobe.com也放在其中。
如果您以SYS身份连接,则需要从下拉列表中选择SYSDBA角色;但您真正应该做的第一件事是为自己创建一个新用户,然后只使用该用户。只将SYS(和SYSTEM,以及其他内置帐户)用于实际的DBA任务,而不是用于创建自己的表等。

相关问题