首页 > 代码库 > oracle_协议适配器错误_协议适配器不可加载_TNS监听程序在connect-data中未获得service-name
oracle_协议适配器错误_协议适配器不可加载_TNS监听程序在connect-data中未获得service-name
最近在使用powerdesigner连接远程oracle进行反向工程操作时,出现了一些问题,这些问题很普遍,大多是由于配置引起的
说明:
(1)远程数据库版本问 oracle11g 64bit
(2)本地同时安装 :
oracle11g client 32bit
oracle11g 64bit
(3)本机安装powerdesigner 15.2
(3)前期准备:
直接拷贝oracle服务端的%ORACLE_HOME%\network\admin\tnsnames.ora文件
到oracle客户端%ORACLE_Client%\network\admin\ 目录中
问题:
问题一、ORA-12560: TNS: 协议适配器错误
问题二、ORA-12557: TNS: 协议适配器不可加载
问题三、ORA-12504:TNS监听程序在connect-data中未获得service-name
参考文章
http://coffeehot.iteye.com/blog/2151955
http://blog.sina.com.cn/s/blog_677d8b260100w0vg.html
http://worms.blog.51cto.com/969144/1293265
http://quentinxu.iteye.com/blog/1988107
http://www.xuebuyuan.com/1026765.html
使用powerdesigner连接远程oracle进行反向工程时每一步出现的问题以及处理总结:
问题一:
启动反向工程连接远程oracle数据库,报第一个错误
ORA-12560: TNS: 协议适配器错误
经确认问题所在为本地同时安装了oracle服务端,以及oracle客户端,
且本地PATH环境变量同时写入的 oracle服务端以及oracle客户端的bin目录,
本人处理方法为,PATH环境变量中的本地oracle服务端bin目录字符串,仅保留本地oracle客户端的bin目录路径字符串。
注:
以上的参考链接中包含的方法有
(1) 去除PATH环境变量的client的bin目录,
(2) 切换PATH环境变量中的本地oracle服务端bin目录路径字符串 到 本地oracle客户端的bin目录路径字符串之前,
(3) 设置ORACLE_SID
本人尝试以上方式后未能成功
问题二:
在完成以上配置处理后,重新执行反向工程,连接远程oracle,此时又报出另一个错误
ORA-12557: TNS: 协议适配器不可加载
在参看了 http://blog.sina.com.cn/s/blog_677d8b260100w0vg.html
处理步骤为
(1)执行以下命令注册oracle客户端的 oracle ole 驱动,例如本机目录如下
regsvr32 E:\app32\Administrator\product\11.2.0\dbhome_1\BIN\OraOLEDB11.dll
这样就完成了注册,
注:
由于这里只涉及powerdesigner连接oracle进行反向工程,因此关于plsql的操作不在处理范围之内。
问题三:
完成以上两个问题的处理,再次执行powerdesigner的反向工程,连接远程oracle,继续报错
ORA-12504:TNS监听程序在connect-data中未获得service-name
该问题可以确认是客户端 %oracle_client%\network\admin\目录 tnsnames.ora 文件的配置问题
以下是配置的例子
localhost =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =http://www.mamicode.com/
(SERVICE_NAME = ORCL)
)
)
orcl.16.56.232 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.56.232)(PORT = 1521))
)
(CONNECT_DATA =http://www.mamicode.com/
(SERVICE_NAME = orcl.16.56.232)
)
)
大致说明为:我配置了连接本地oracle服务端的localhost
以及连接远程oracle服务端的172.16.56.232
总结:
1、出现类似问题,首先检查确认oracle服务是否正常启动
2、客户端环境变量配置是否正确(参考文中内容)
3、同时安装了服务端以及客户端时,配置尤为需要注意。
oracle_协议适配器错误_协议适配器不可加载_TNS监听程序在connect-data中未获得service-name