Gee*_*ega 9 oracle database-connection oracle11g oracle-sqldeveloper
请注意,我出于安全目的更改了详细信息.但问题仍然存在.
我在位置上的服务器上安装了Oracle 11g数据库,例如herp-devDV.derp.edu.现在我在位置的服务器上有另一个Oracle 11g数据库,比如derp-db.derp.edu.
我在Oracle SQL开发人员中为herp-devDV.derp.edu和derp-db.derp.edu输入了连接名称,用户名,密码,主机名和服务名称.我可以连接到derp-db.derp.edu中的模式,但不能连接到herp-devDV.derp.edu.它给了我这样的信息:
Failure - Test failed: The Network Adapter could not establish the connection
Run Code Online (Sandbox Code Playgroud)
我有以下信息:
lsnrctl status
我收到了以下输出
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date 03-JUN-2014 13:37:22
Uptime 6 days 0 hr. 53 min. 4 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File D:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File d:\oracle\diag\tnslsnr\HERP-DEVDB\listener\alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HERP-DEVDB.derp.edu)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "HERPDEVDBXDB" has 1 instance(s).
Instance "herpdevdb", status READY, has 1 handler(s) for this service...
Service "herpdevdb" has 1 instance(s).
Instance "herpdevdb", status READY, has 1 handler(s) for this service...
The command completed successfully
Run Code Online (Sandbox Code Playgroud)
然后我看看我的listener.ora并找到
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = HERP-DEVDB.derp.edu)(PORT = 1521))
)
)
Run Code Online (Sandbox Code Playgroud)
在这一点上,我承认我正在挠头,因为我没有看到任何突出的东西告诉我为什么这不应该起作用.
唯一的线索就是当我检查derp-db.derp.edu并运行命令时lsnrctl status
.请参阅下面的摘录:
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DERP-DB.edu)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date 18-MAY-2014 02:19:01
Uptime 22 days 12 hr. 23 min. 18 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
---etc----
Run Code Online (Sandbox Code Playgroud)
所以我仍在挠头.为什么derp-db会连接到DERP-DB.edu但是herp-devDB连接到EXTPROC1521?我该如何解决?除了实例的名称之外,这两个服务器之间的listener.ora和其他文件几乎相同.嗯.
EDIT1:我改变了herp中的listener.ora.这没有解决它.
EDIT2:我无法在端口1521上telnet到derp-db.derp.edu但是我仍然可以用SQL Developer连接到它?WTH?
无论如何,非常感谢帮助.谢谢
问候,令人讨厌
Gee*_*ega 14
我正在回答这个问题,以造福未来的社区用户.有很多问题.如果您遇到此问题,我建议您查找以下内容:
一旦我做了这三件事,我解决了我的问题.
我有一个类似的问题,我也不断得到同样的错误.我尝试了很多东西,如更改侦听器端口号,关闭防火墙等.最后我通过更改listener.ora文件来解决问题.我更改了以下行:
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
Run Code Online (Sandbox Code Playgroud)
至
(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
Run Code Online (Sandbox Code Playgroud)
我还在/etc/hosts
文件中添加了一个条目.
您可以使用Oracle网络管理器更改listener.ora文件中的上述行.有关如何使用网络管理器执行此操作的详细信息,请参阅"Oracle网络服务管理员指南".
此外,您可以database_name.domain_name
在建立连接时使用服务名称()而不是SID.
我希望它有所帮助.
小智 5
当我安装 oracle 11g 然后创建数据库时,我遇到了同样的问题。
我什至不知道监听器必须手动创建。因此,我打开网络配置助手并手动创建侦听器。
而且我可以通过sql developer连接我在本地创建的数据库。
listener.ora
您可以在安装文件夹下找到一个名为的文件,oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
它包含以下条目
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)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Codemaker-PC)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
Run Code Online (Sandbox Code Playgroud)
您应该验证 HOST(这里是 Codemaker-PC)应该是计算机名称。如果不正确,请将其更改为计算机名称。
然后在以管理员身份运行的命令提示符下尝试以下命令,
lsnrctl start
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
223853 次 |
最近记录: |