最近在使用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 =
(SERVICE_NAME = ORCL)
)

)

orcl.16.56.232 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.56.232)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl.16.56.232)
)
)

大致说明为:我配置了连接本地oracle服务端的localhost
以及连接远程oracle服务端的172.16.56.232

总结:
1、出现类似问题,首先检查确认oracle服务是否正常启动
2、客户端环境变量配置是否正确(参考文中内容)
3、同时安装了服务端以及客户端时,配置尤为需要注意。

----------------------2014-11-19 22:41:30 更新----------------------------

在windows7 64位环境下执行问题二解决方法的 cmd注册命令时出现错误,是由于64位系统引起的,可以尝试在dos命令行,cd到目录 C:\Windows\SysWOW64下,

再执行 regsvr32 E:\app32\Administrator\product\11.2.0\dbhome_1\BIN\OraOLEDB11.dll

oracle_协议适配器错误_协议适配器不可加载_TNS监听程序在connect-data中未获得service-name的更多相关文章

  1. 安装完ODAC,出现ORA-12560:TNS:协议适配器错误 12541 无监听程序的解决

    进入系统环境变量设置,查看Path路径,发现D:\oracle\product\11.2.0\client_1等路径放到了oracle11g数据库路径前面,将新加入的路径置后即可解决ORA-12560 ...

  2. TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误 TNS-00511: 无监听程序

    文章转自:http://www.luocs.com/archives/464.html 此文版权归作者 – yaogang所有,转载请注明yaogang©www.luocs.com. Luocs说:这 ...

  3. oracle 12541,12560,00511无监听程序, 协议适配器错误问题分析及解决方案

    oracle 12541,12560,00511无监听程序, 协议适配器错误问题分析及解决方案   问题描述: 1. lsnrctl start.stop.非常慢,出现卡顿现象: 2. 执行lsnrc ...

  4. oracle监听程序无法启动(TNS-12560: TNS: 协议适配器错误,TNS-00530: 协议适配器错误)

    问题描述1:   C:\Users\Administrator>lsnrctl start LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Pr ...

  5. Oracle几个基础配置问题:ORA-12154: TNS: 无法解析指定的连接标识符、ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务、ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    问题1:ORA-12154: TNS: 无法解析指定的连接标识符 在一台服务器上部署了Oracle客户端,使用IP/SID的方式访问,老是报ORA-12154错误,而使用tnsnames访问却没有问题 ...

  6. ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序

    服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小. 使用 ...

  7. ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程”的异常

    简单说明:我们开发时多人开发,会频繁访问服务器数据库,结果当连接数大的时候,就会报ora-12516的错误,ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程"的异常 ...

  8. 转载:ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序” 解决方案

    ORA-12516 “TNS监听程序找不到符合协议堆栈要求的可用处理程序” 解决方案   简单描述一下场景,总共两台应用服务器,每台安装3个tomcat进行集群,并通过nginx做了负载均衡,今天在生 ...

  9. 【ORA-12516 TNS监听程序找不到符合协议堆栈要求的可用处理程序】

    服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小. 取得 ...

随机推荐

  1. pssh一个微量级自动化工具

    一.pssh简介 pssh是一个python编写可以在多台服务器上执行命令的工具,也可实现文件复制.pssh需要通过ssh的key验证来管理主机,其不能很好的支持密码验证.用过epel源的pssh包来 ...

  2. React组件:Dragact 0.1.4发布

    Dragact 是一款React组件,他能够使你简单.快速的构建出一款强大的 拖拽式网格(grid)布局. 仓库地址:Dragact 经过几天的迭代时间Dragact已经能够支持自由缩放功能了(res ...

  3. (转载) Consul 使用手册(感觉比较全了)

    使用consul 介绍 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现 Consul的客户端可用提供一个服务,比如 api 或者 ...

  4. HDU 6050 - Funny Function | 2017 Multi-University Training Contest 2

    /* HDU 6050 - Funny Function [ 公式推导,矩阵快速幂 ] 题意: F(1,1) = F(1, 2) = 1 F(1,i) = F(1, i-1) + 2 * F(1, i ...

  5. 利用栈实现字符串中三种括号的匹配问题c++语言实现

    编写一个算法,检查一个程序中的花括号,方括号和圆括号是否配对,若能够全部配对则返回1,否则返回0. Head.h: #ifndef HEAD_H_INCLUDED #define HEAD_H_INC ...

  6. docker打包flask简单程序

    简单代码: from flask import Flask app=Flask(__name__) @app.route('/') def hello(): return 'hello world' ...

  7. sublime 配置sftp代码自动上传(原)

    1.首先安装Package Control 使用 ctrl+`快捷键 或者 菜单项View > Show Console 来调出命令界面 然后复制粘贴下面的Python代码到命令输入框中: im ...

  8. yum update 更新失败

    1.yum安装东西的时候,老是报:There are unfinished transactions remaining. You might consider running yum-complet ...

  9. smarty中ifelse、foreach以及获取数组中键值名的一个实例

    <{if empty($history)}> <tr> <td colspan="6">Not any records!</td> ...

  10. redis的incr和incrby命令

    Redis Incr 命令将 key 中储存的数字值增一,如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作. Redis Incrby 命令将 key 中储存的 ...