求助:Oracle11g(linux) 本地一切正常;远程访问
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务。
求助:Oracle11g(linux) 本地一切正常;远程访问ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务。
配置如下:
【oracle服务器listener.ora】
[oracle@localhost admin]$ more listener.ora
# listener.ora Network Configuration File: /opt/ora11g/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /opt/ora11g
【oracle服务器tnsnames.ora】
[oracle@localhost admin]$ more tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/ora11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
MASS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME =MASS)
)
)
[oracle@localhost admin]$
[oracle@localhost admin]$ sqlplus mass/timesnet@mass
SQL*Plus: Release 11.2.0.1.0 Production on 5 11:44:15 2012
Copyright (c) 1982, 2009, Oracle. All rights reserved.
【oracle服务器本地连接访问正常】
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning and Real Application Testing options
SQL> select sysdate from dual;
SYSDATE
--------------
15-3月 -12
【远程tnsping oracle服务器】
C:\>tnsping 192.168.1.4
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 15-3月 -
2012 11:37:59
Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
D:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora
已使用 HOSTNAME 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=192.168.1.4))(ADD
RESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
OK (20 毫秒)
【远程连接 oracle服务器的配置】
【远程测试 oracle服务器的结果】
------解决方案--------------------参考:http://blog.csdn.net/luiseradl/article/details/7064916
------解决方案--------------------试一下,把HOST改为IP地址!
------解决方案--------------------你服务器端的listener使用的是动态注册,但你服务器实例已经启动应该不是这个问题。
还有这里
已使用 HOSTNAME 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=192.168.1.4))(ADD
RESS=(PROTOCOL=TCP)(HOST=192.168.1.4)(PORT=1521)))
OK (20 毫秒)
这个service_name怎么是IP地址 应该是MASS
把你客户端的tnsname.ora的SERVICE_NAME=192.168.1.4改成SERVICE_NAME=mass 在试
------解决方案--------------------sqlnet.ora 的内容打印出来看看
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
跟这个一样么,不一样改成一样的
------解决方案--------------------数据库服务是否启动~~
------解决方案--------------------
这种问题,上次我解决的办法是你数据库不能绑定127.0.0.1或者是HOST,要绑定你这台服务器在局域网中的地址。我想是和底层Socket通信机制有关,监听器是在这个127.0.0.1监听,只能本地连接上。如果换成改服务器的局域网地址就行了。我就是这样解决的,希望能帮助楼主。