这里有新鲜出炉的精品教程,程序狗速度看过来!
Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。
这篇文章主要介绍了与虚拟机 Oracle 连接出现 ora-12154 问题的解决方法, 需要的朋友可以参考下
谈到 ora-12154 问题,网上有一大堆解决方法,原因基本统一:tns 或 listener 配置不正确。对于 listener 配置不正确的一般较少发生,大多数人都是按照默认配置一路 "下一步" 过来的,基本都是 orcl 的服务名,如果说本地可以连通 orcl,别的机子就连不通那应该跟 listener 关系不大。大部分都是 tns 配置不正确。我遇到的现象是:在本机建了一个 2003 的虚拟机,虚拟机里面装了 oracle10g,默认配置。本机只装了 oracle10g 的客户端,当我以前用本机连接局域网内数据库的 orcl 服务(数据库与局域网内数据库一样)时没有问题,但是在连接虚拟机中的 orcl 服务却连不通,总是报 ora-12154 错误。而虚拟机内,plsql 却可以连接虚拟机 oracle,但是不能连接本机所在局域网内的 oracle。
按照如下过程,一般都能解决:
虚拟机 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 数、注册表之类的,要想想本机能连为什么通过网络就不行,还是定位问题。
来源: http://www.phperz.com/article/17/0520/332810.html