谈到ora-网上有很多解决方案,原因基本统一:tns或listener配置不正确。对于listener配置不正确一般很少发生,大多数人都是按照默认配置一路下一步orcl如果说本地服务名可以连接orcl,其他机器连接不了,应该跟着listener关系不大。大部分都是tns配置不正确。我遇到的现象是,我在这台机器上建了一台2003的虚拟机,里面安装了虚拟机oracle10g,默认配置。本机只装了oracle10g客户端,当我以前用本机连接局域网数据库时orcl服务(数据库与局域网内的数据库相同)没有问题,但在连接虚拟机时orcl但是服务连不上,总是报告ora-12154错误。在虚拟机中,plsql但是虚拟机可以连接oracle,但不能连接本机所在的局域网oracle。
一般可以解决以下过程:
打开虚拟机cmd,用lsnrctl status检查监听器监控服务
如果监听服务如看监听服务orcl那在本机tns配置中(SERVICE_NAME = orcl)必须写orcl;如果你想定制自己,在虚拟机中listener将自定义服务名添加到配置中,记得重启监控服务:lsnrctl reload
最终形成的配置文件如下
虚拟机listener:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test) 定制服务名称
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1) db_home
(SID_NAME = test)
)
(SID_DESC =
(PROGRAM = extproc)
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1) ##这个服务保证你可以使用外部过程,如C程序
)
)
本机tns:
ORCL_XNJ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 182.12.15.232)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test) 对应于自定义服务名
)
)
再连接,解决问题!
记住,一定要从最简单的原因开始,不要一上去就在网上看到什么变化process数字、注册表等,想想为什么这个功能甚至不能通过网络,或定位问题。
时间: 2017-03-12